私がここでやろうとしていることをもう一度説明しようとしています。div
/のimg
例の周りに少し混乱があるようです。要するに、私がやろうとしているのは、正方形のままであるが、ブラウザウィンドウが調整されるとそれに応じてサイズが拡大する画像の周りにラッパーを作成することです. 正方形の内側の画像も、正方形のラッパー ( div
) 内でサイズを調整してスペースを埋めます。画像はすべてほぼ同じ幅ですが、高さはさまざまです。正方形のラッパーよりも大きいものについては、上に配置して下を非表示にしたいと考えています。正方形のラッパーはウィンドウに合わせてサイズが変更されるため、これに実際のサイズを設定することはできませんが、div
自動的に調整したいと考えています。
お役に立てれば。
だからここに私が思いついたものがあります。これはほとんどの場合うまくいくようです。
var divWidth = $('.photo').width();
$('.photo').height(divWidth);
$(window).resize(function () {
var divWidth = $('.photo').width();
$('.photo').height(divWidth);
});
追加する提案はありますか?
--- 元の説明 ----
画像付きのレスポンシブ Web ページを作成しようとしています。残念ながら、すべての画像の高さと幅の比率が同じというわけではありません。そのため、画像の現在の幅で高さを設定するラッパーを画像の周りに作成し、残りを非表示にすることを考えていました。これを行うための最良かつ最も簡単な方法をお探しですか?
これにより、ブラウザの幅に合わせて拡張される項目の 2 列のリストが作成されます。しかし残念なことに、画像のサイズの関係で、一部のアイテムは他のアイテムよりも背が高くなっています。そして、画像を正方形のボックスの幅と同じ幅にして、適合性を確保したいと考えています。しかし、画像の高さをサイズ変更したくありません。幅を 100% 塗りつぶし、下にオーバーフローさせます。
CSS:
.listing ul {
position: relative;
display: block;
padding: 0;
margin: 0;
}
.listPeople li {
list-style: none;
float: left;
position: relative;
display: block;
width: 48.93617020799999%;
height: auto;
background: #FFF;
border: 1px solid #D0D5D8;
padding: 12px;
margin: 0 15px 15px 0;
}
.listPeople li .user .photo {
position: relative;
display: block;
background: #FFF;
box-shadow: 0 1px 2px rgba(0,0,0,0.09);
border: 1px solid #DDD;
padding: 8px;
margin: 0;
}
.listing li .user .photo img {
width: 100%;
height: auto;
max-width: 100%;
vertical-align: middle;
border: 0;
-ms-interpolation-mode: bicubic;
padding: 0;
margin: 0;
}
.listing li .content {
float: left;
position: relative;
display: block;
width: 74.468085099%;
height: 100%;
padding: 0;
margin: 0;
}
HTML:
<div class="listing">
<ul>
<li>
<div class="user">
<div class="photo">
<a href="#"><img src="URL" /></a>
</div>
<a class="button">Follow</a>
</div>
<div class="content">
-- normal html formatting --
</div>
</li>
</ul>
</div>