CSSは画像のサイズ変更を強制し、アスペクト比を維持します
Css Force Image Resize
解決:
img {表示:ブロック;最大幅:230px; max-height:95px;幅:自動;高さ:自動; }この画像は元々400x400ピクセルですが、CSSによってサイズが変更される必要があります。
これにより、指定した領域に対して大きすぎる場合に画像が縮小されます(欠点として、画像は拡大されません)。
私はこの問題に非常に苦労し、最終的にこの単純な解決策にたどり着きました。
オブジェクトフィット:カバー;幅:100%;高さ:250px;必要に応じて幅と高さを調整でき、object-fitプロパティがトリミングを行います。
の可能な値に関する詳細情報object-fitプロパティと互換性テーブルはこちらから入手できます:https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit
乾杯。
以下のソリューションにより、画像のスケールアップとスケールダウンが可能になります 、親ボックスの幅によって異なります。
すべての画像には、固定幅の親コンテナがあります デモンストレーションのみを目的としています 。本番環境では、これが親ボックスの幅になります。
ベストプラクティス(2018):
このソリューションは、使用可能な最大幅で画像をレンダリングし、その幅のパーセンテージとして高さを調整するようにブラウザーに指示します。
.parent {幅:100px; } img {表示:ブロック;幅:100%;高さ:自動; }この画像は元々400x400ピクセルですが、CSSによってサイズが変更される必要があります。
ファンシーソリューション:
より洗練されたソリューションを使用すると、サイズに関係なく画像をトリミングし、トリミングを補正するために背景色を追加することができます。
.parent {幅:100px; } .container {display:block;幅:100%;高さ:自動;位置:相対;オーバーフロー:非表示;パディング:34.37%0 0 0; / * 34.37%= 100 /(w / h)= 100 /(640/220)* /} .container img {display:block;最大幅:100%;最大高さ:100%;位置:絶対;上:0;下:0;左:0;右:0; }この画像は元々640x220ですが、CSSによってサイズが変更される必要があります。
パディングを指定する行の場合、画像のアスペクト比を計算する必要があります。次に例を示します。
640px(w)= 100%220px(h)=? 640/220 = 2.909 100 / 2.909 = 34.37%したがって、上部のパディング= 34.37%です。