私はWebサイトを作成していますが、画像の向きに基づいて画像を正方形の画像にトリミングします。私はCSSにあまり詳しくないので、この問題への対処方法がわかりません。
横長の画像(800x500)の場合、トリミングした画像を次のようにしたい(500x500):
ポートレート(400x600)の場合、画像のこの部分(400x400)を切り取る必要があります。
これを達成するにはどうすればよいですか?できれば、Bootstrapの「img-sensitive」と一緒に使用できる方法を使用すると、必要に応じてクロップされたサイズを変更できます。
おかげで、
@ FljpFl0p修正[jsfiddle] [1]
[1]: https://www.bootply.com/92024 そして、ここに別の答えがあります 画像を自動的にトリミングして中央に配置する方法 。 Tks!
bootstrap 4.を使用して応答性を高めたい場合は、4。これを試してください:
[〜#〜] css [〜#〜]
.thumb-post img {
object-fit: none; /* Do not scale the image */
object-position: center; /* Center the image within the element */
width: 100%;
max-height: 250px;
margin-bottom: 1rem;
}
CSSアプローチのみにかなり制限されているかどうかはわかりませんが、JavaScriptアプローチは、画像のサイズを取得し、overflow:hidden
を使用してdivでラップすることで役立ちます。
$width = $(".box img").css('width');
$height = $(".box img").css('height');
$max = (($width < $height) ? $width : $height);
$(".box").css("width", $max);
$(".box").css("height", $max);
.box {
margin: 5px;
overflow: hidden;
display: flex;
justify-content: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box">
<img src="https://placehold.it/300x200">
</div>
画像を拡大縮小し、幅/高さの比率を維持するimgタグにクラスimg-sensitiveを追加します。結果に満足できない場合は、Javascriptを使用してみます。