大きなサイズの写真がいくつかあります。それらを親の寸法サイズに設定したいと思います。親の寸法が 1200x800 の場合、写真の寸法を 1200x800 に設定したいのですが、画像全体も表示したいと思います。親のサイズが 500x300 の場合、画像を 500x300 にしたいと考えています。
これは可能ですか?親の寸法に合わせて画像を縮小または拡大したい。
ありがとう!
必要な css プロパティは次のmax-width
とおりです。
CSS
img {
max-width:100%;
}
画像の周りにコンテナを追加して、画像overflow:hidden
が定義された幅/高さよりも大きくならないように設定できます。
次の css を使用して、画像をスケーリングします。
img {
max-width: 100%;
max-height: 100%;
}
私は素朴かもしれませんが、これはこれほど単純ではありませんか?
img {
width:100%;
height:100%;
}
画像タグでこれを試してください
<img src="url.jpg" width="100%" height="100%" />
または、要素の背景を画像として設定し、同じことを行います。
max-width プロパティを使用してみてください。以前のバージョンの IE ではバグが発生する可能性がありますが、
#custom img {
max-width: 100%;
max-height: 100%;
}
一般に、次のことを覚えておくと役立ちます。
1: トラックはコンテナーではありません。
2: グリッド領域はコンテナーではありません。
3: ネストされた要素は、コンテナとして宣言しない限り、コンテナではありません。
max-width: 100%、object-fit: containなどの宣言は、要素 (img など) がコンテナ内でどのように動作するかを記述します- たまたま配置されたトラックや領域内ではありません。コンテナ内にネストされたタグ。例:後
HTML:
<div class="myContainer">
<div class="myTopRow">
<img src="myPic.jpg">
</div>
<div class="myBottomRow">
<span class="mySubText">Your subtext here.</span>
</div>
</div>
CSS:
.myContainer {
display: grid;
grid-template-rows: [row1Start] 1fr [row1End row2Start] 1fr [row2End];
grid-template-columns: [col1Start] 1fr [col1End];
}
.myTopRow {
grid-rows: row1Start / row1End;
grid-columns: col1Start / col1End;
}
.myBottomRow {
grid-rows: row2Start / row2End;
grid-columns: col1Start / col2End;
}
.myTopRow img {
max-width: 100%;
max-height: 100%;
object-fit: cover;
}
1 つの列と 2 つの行で構成されるグリッドを作成しました。一番上の行の画像が 2 行目にはみ出して、その行のスパンされたテキストと衝突するように見えます。実際には、オーバーフローはありません。画像は一番上の行に含まれていません (これはコンテナーとして宣言されていませんが、「単に」トラックにまたがる領域です)。実際のコンテナー (2 行のボックス全体) 内に、イメージが完全に含まれています。