【CSS】object-positionが効かない時の対処法

村上 著者:村上

【CSS】object-positionが効かない時の対処法

今回は、CSSのプロパティ object-position について。
object-fit: cover で画像をトリミングした際に、トリミングする位置を画像中央から任意の位置に変更するためのプロパティです。
今までは画像中央の切り抜きで問題なかったのですが、今回は画像の下の方を切り抜きたかったので、使ってみました。

が、img タグにプロパティを追加したのに、反映されず…!
なので、調べてみたところ、下記の記事がヒットしました。

CSS だけで画像の切り抜きをうまくやる – Qiita
https://qiita.com/tmorikawam/items/9947a22e9a5e1183502d

 

なんでも、object-fit を指定した img に、高さが指定されていないと object-fit:cover が効かないのだそうです。
その場合は、object-fit ではなく、divoverflow で見切れているだけの場合があるようで、そうすると切り抜き位置を変更できないとのこと。

そのため、object-fit を追加したい img タグには、高さもしくは幅を指定すればOKです。
色々いじって追加してしまったので、一旦 CSS を元に戻してから、下記のように img タグに幅・高さを指定したところ、ようやく切り抜き位置を変更できました。

img {
    width: 100%;
    height: calc(100vh - 30px);
    object-fit: cover;
    object-position: 50% 100%;
}

なお、上記のコードでは、左右中央で下部分を切り抜いています。
表示したい画像の下の方にメッセージがあったので、下部分が欠けるのはNGだったので、このようにしました。

 

以上、object-fitobject-position で画像を切り抜いた際、切り抜き位置を変更する方法でした。
意外と見落とすかもしれないので、お気を付けください。

  • この記事いいね! (0)

著者について

村上

村上 administrator