web上で画像の一覧を表示する時な、画像のサイズが同じの場合、並べても整ってくれますが、
それぞれの画像のサイズが同じではない場合、崩れたりしてしまいます。
ですが、すべての画像をリサイズする場合は時間がかかるということもあります。
そんな時はCSSでトリミングが可能です。
「object-fit」というプロパティーを使って、画像の縦横比を維持しながらトリミングする方法を紹介します。
横幅が400px、縦幅が300pxの画像の場合、下記のように指定すると縦につぶれたように表示されてしまします。
1 2 3 4 5 |
img { width: 200px; height: 200px; object-fit: cover; } |
しかし、画像に対して object-fit: cover; を指定すると
1 2 3 4 5 |
img { width: 200px; height: 200px; object-fit: cover; } |
縦横ともに200pxの画像としてトリミングして表示されます。
便利なプロパティですが、
object-fit、object-position プロパティーはIEやEdgeに対応していません。
対応させるには、object-fit-imagesを読み込ませる必要があります。
https://github.com/bfred-it/object-fit-images
1 2 3 4 5 |
<script src="js/ofi.min.js"></script> <script> objectFitImages('img'); </script> |
1 |
<p class="img"><img src="https://oo.com/img/img_01.jpg" alt="画像"></p> |
CSSで object-fit の記述とfont-family を指定します。
そして、IEに対応させるためのfont-familyに’object-fit: contain;’ を記述します。
1 2 3 4 5 6 |
.img { width: 200px; height: 200px; object-fit: contain; font-family: 'object-fit: contain;' } |
上記でIEやEdgeで対応させることができます。
コメント