横300×縦400ピクセルの画像を、横200×縦200ピクセルのボックス枠でトリミングしてみましょう。
CSSのobject-fitプロパティを使用します。
img.sample1 { width:200px; height:200px; object-fit:cover; }
<img class="sample1" src="https://www.htmq.com/wp-content/themes/htmq/htmq-images/bluemoon.jpg">
上記の使用例1では、CSSで画像のボックスサイズを width:200px; height:200px; と指定して、さらに object-fit: cover; を指定しています。
object-fitプロパティの値にcoverを指定すると、縦横の小さい方に合わせて画像がリサイズされて、ボックスからはみ出した部分はトリミングされます。
(上記の使用例1では、実際の画像の横幅300pxが200pxに縮小されています。縦幅400pxが200pxに縮小されたわけではありません。)
次に、画像の元のサイズを維持したままトリミングしてみましょう。
img.sample2 { width:200px; height:200px; object-fit:none; }
<img class="sample3" src="https://www.htmq.com/wp-content/themes/htmq/htmq-images/bluemoon.jpg">
上記の使用例2では、CSSで画像のボックスサイズを width:200px; height:200px; と指定して、さらに object-fit: none; を指定しています。
object-fitプロパティの値に none を指定すると、画像の元のサイズを維持したまま指定したボックスサイズでトリミングされます。
上記の使用例1と使用例2では、トリミングされた後の画像はともにセンター配置となっています。
これはボックスに対する画像の配置位置が、初期値では 50% 50% でセンター配置となっているためです。
そこで、次にボックスに対する画像の配置位置を指定してみましょう。
ボックスに対する画像の配置位置は、CSSのobject-positionプロパティで指定します。
img.sample3 { width:200px; height:200px; object-fit:none; object-position:50% 100%; }
<img class="sample3" src="https://www.htmq.com/wp-content/themes/htmq/htmq-images/bluemoon.jpg">
上記の使用例3では、object-position: 50% 100%; の指定を追加しています。
これは、ボックス枠に対する画像の配置位置を、横方向50%(センター配置)、縦方向100%(下端配置)と指定しています。
尚、object-fitプロパティとobject-positionプロパティは、Internet Explorerではサポートされていないので注意してください。