2列の画像グリッドを作成しました。これは、すべての風景画像で正常に機能します: Link 。ただし、レイアウトが崩れるような縦長の画像を追加したので、高さを他の高さに合わせるために画像を「トリミング」できるようにしたいと考えています。 マイナスのマージンを使用してみました 、しかしそれは効果がありませんでした:
.portrait-crop
{
overflow: hidden;
}
img.portrait-crop
{
margin-bottom: -30px;
}
何が悪いのかわかりません。任意の助けいただければ幸いです。
参考までに、 これは私のコードです です。
また、コンテナに高さを設定する必要があります。そうでない場合、コンテナの内部がどの程度表示されるかわかりません。
このようなものを試すことができます。
.portrait-crop{
display: inline-block;
height: 215px;
width: 50%;
overflow: hidden;
}
.portrait-crop img{
width: 100%;
}
次のようにimg
sをトリミングできます:
CSS:
.crop-container {
width: 200px;
height: 300px;
overflow: hidden;
}
.crop-container img {
margin-top: -100px;
margin-left: -200px;
}
コンテナのheight
とwidth
を調整して、トリミングされたimg
のサイズを調整し、マイナスのmargin-top
とmargin-left
の量を調整しますimg
要素自体を使用して、画像のトリミングする部分を選択します。
HTML:
<div class="crop-container">
<img src="some-img"/>
</div>
EDIT:高さが固定された行を持つ2列グリッドの代替ソリューション:
CSS:
body {
margin: 0;
}
div.img {
float: left;
width: 49%;
margin: 0.5%;
height: 100%;
background-size: cover!important;
background-repeat: no-repeat!important;
}
div.row {
height: 300px;
}
HTML:
<div class='row'>
<div class='img' style='background: url("some-image");'> </div>
<div class='img' style='background: url("some-other-image");'> </div>
</div>
<div class='row'>
<div class='img' style='background: url("foo-image");'> </div>
<div class='img' style='background: url("bar-image");'> </div>
</div>
何が悪いのかわかりません。任意の助けいただければ幸いです。
あなたの問題はCSSセレクターにあります。
img.portrait-crop
{
margin-bottom: -30px;
}
画像をportrait-cropクラスと一致させます。
しかしこれは
.portrait-crop img
{
margin-bottom: -30px;
}
Protrait-cropコンテナー内の画像に一致します。
CSS3を使用して、追加のコンテナーなしで単一のdivでこれを非常にエレガントに処理できます。
_.portrait-crop {
width: 300px;
height: 100px;
background-size: cover;
background-position: center;
}
_
<div class="portrait-crop" style="background: url(https://www.google.ca/images/srpr/logo11w.png);"></div>
このCSSはどうですか:
img { height: 280px; }
.portrait-crop { height: 560px; }
これを試してみてください。幅と高さを固定したオーバーフローでダイビングのimgタグを囲み、その向きに応じて幅または高さを適用しますこれを試してください
.overflow{
overflow: hidden;
width: 400px;
height: 271px;
}
.overflow img{
overflow: hidden;
width: 400px;
}
HTMLコードに影響を与えずにCSSのみを使用する1つの可能な解決策はこれです:
/* Fix for portrait */
.portrait-crop {
width:50%;
overflow:hidden;
height:179px;
display:inline-block;
}
.portrait-crop img {
width:100%;
height:auto;
}
または、いくつかのdivを追加します(より良いソリューション): http://jsfiddle.net/yoyb9jn7/
私、ここにa 完全な投稿How top top images