-
ID:aj.lAO さんの質問

max-heightを指定したボックスの中に、縦長の画像を入れると高さを突き破って表示されるのですが、どうしたらmax-heightの高さに画像の縦を自動であわせられるでしょうか…。

.box {
display:block;
max-height:450px;
width:100%;
position:relative;
}
.box img {
width: auto;
height: auto;
max-width: 100%;
max-height: 100%;
}

overflow:hiddenじゃなくて比率は維持したいです。
どうぞよろしくお願いいたします。

みんなの回答 7 件

ID:x3nbXY さんの回答

max-width: 100%;を外す

ID:aj.lAO

ありがとうございます。
変わらずmax-heightを突き破るようです…。

ID:x3oNSD さんの回答

.box {
max-height:450px;
display:block;
position:relative;
font-size:450px;
}
.box img {
max-height:1em;
display:block;
}

とか

ID:aj.lAO

ありがとうございます。
変わらずmax-heightを突き破るようで…。

ID:aj.lAO さんの回答

スマホの写真の縦にも横にも対応したいのが理由なのですが、CSSだけだと難しいのでしょうか…?
縦長の場合と横長の場合それぞれ別のクラスをつければ良いとは思うのですが、毎回つけるのもなぁ…と。
jQueryで判別して振り分けるのが現実的ですか?

ID:4Q1qDf さんの回答

背景にしてヤンナイトダメだよ

ID:4Q1qDf

もしくはcalcを使えばいい

ID:aj.lAO

背景の方法も考えたのですが、全部背景扱いになってしまうのもちょっと気になってしまって…。
縦長と横長同時に満たせるcalcの使い方考えてみたのですが、力及ばずで…もしよろしければご教授いただけないでしょうか?

ID:cT4iUE さんの回答

画像にmax-height入れちゃだめなの?
.box {
display:block;
position:relative;
}
.box img {
width: auto;
height: auto;
max-width: 100%;
max-height: 450px;
}

ID:aj.lAO

ありがとうございます、(変化的に)ダメそうです…・

ID:yrVVmB さんの回答

.box img {
height: 100%;
width: auto;
}
じゃないの?

ID:zpBQKd

比率は維持したいって書いてるんだから、それでははみ出る方向が変わるだけでしょ。

ID:aj.lAO

お二人ともありがとうございます!

ID:LFw1An さんの回答

.box {
}
.box img {
object-fit: contain;
width: 100%;
max-height:450px;
}
これ以上はCSSでムリじゃないかな。これ使うならブラウザ対応気をつけてね。あとはBackstretchみたいなjsでなんとかするしかない。

最終更新日:2017-03-13 (6,104 views)

関連するトピックス

ページ上部に戻る