注、object-fit
は良いブラウザのサポートを欠いて、ここで私はcontain
がで適用され、W/O transform
方法を示したいと思いますけれども超えることを来るためのオプションがあります。
が
img
要素ノーカットで画像を表示するには、あなたが
object-fit: contain
使用し、
100%
に
width
および/または
height
を設定し、それが両方の垂直方向と水平方向の画像がありませんオーバーフローに合うようになります。
.wrapper {
display: inline-block;
height: 150px;
width: 250px;
padding: 5px;
margin: 5px;
background: lightgray;
}
.wrapper img {
height: 100%;
width: 100%;
object-fit: contain;
}
<div class="wrapper">
<img src="http://placehold.it/150x300/f00"/>
</div>
<div class="wrapper">
<img src="http://placehold.it/300x150/00f"/>
</div>
さて、あなたはtransform: rotate(90deg)
を適用すると、それは上記のサンプルのように配置/ドキュメントフローの観点からして、それはまだ大きさである、ことを行いますのみ視覚です。
これはwrapper
もimg
どちらも任意の変更を認識しており、垂直に、水平img
を回転させたときので、1水平wrapper
で、オーバーフローを得ることを意味します。
ようimg
を回転させ、それがオーバーフローを補償できるように、手前wrapper
のアスペクト比を知るために、垂直transform
ニーズに合わせすることができるように、このサンプルでは、= 150ピクセル/ 250ピクセル(知られています0.6)、変換にscale
を追加することでオーバーフローを回避できます。同じ修正プログラムを適用するには、垂直wrapper
1を必要としている垂直img
については
.wrapper {
display: inline-block;
height: 150px;
width: 250px;
padding: 5px;
margin: 5px;
background: lightgray;
}
.wrapper img {
height: 100%;
width: 100%;
object-fit: contain;
transform: rotate(90deg) scale(0.6);
}
<div class="wrapper">
<img src="http://placehold.it/300x150/00f"/>
</div>
。
set css ** overflow:hidden ** on div –
あなたが内部に収まるようにするには、あなたのイメージを背景イメージとして置き、background-size:coverまたはbackground-size:containsという属性を追加してみてください。 – Kiwad