私の最終目標は、流動的な<img>
は、CSSのみを使用して親/祖父母要素の明示的に設定された高さを超えて展開しません。
現在、私はこれを通常の(max-width:100; height:auto;
)imgタグから高さ/幅の属性を読み取り、アスペクト比を計算し、目的の高さ制限で画像の正しい幅を計算し、その幅をmax-width
画像のコンテナ要素。非常に簡単ですが、javascriptなしでできるようになりたいです。
height:100%; width:auto;
はその横方向と同じようには機能せず、Unc Daveのol 'パッド付きボックスとその機能の絶対配置を試みましたが、画像の縦横比を事前に知っている必要があるため、異なる割合。そのため、最終的な要件は、CSSが比例に依存しないことです。
この質問に対する答えはおそらくユニコーン農場の隣に座っていることを知っていますが、とにかくそこに捨てるつもりだったと思います。
トリックは、max-height: 100%;
とmax-width: 100%;
の両方を.container img
に追加することです。 CSSの例:
.container {
width: 300px;
border: dashed blue 1px;
}
.container img {
max-height: 100%;
max-width: 100%;
}
この方法で、.container
の指定された幅を任意の方法(200pxや10%など)で変えることができ、画像はその自然な寸法より大きくなりません。 (画像の自然なサイズに依存したくない場合は、100%ではなくピクセルを指定できます。)
ここに全体のフィドルがあります: http://jsfiddle.net/KatieK/Su28P/1/
以下の3つのスタイルをimg
タグに設定します
max-height: 500px;
height: 70%;
width: auto;
デスクトップ画面のimgは500px
しかし、小さなモバイル画面の場合、外側のコンテナの70%に縮小します。魅力のように機能します。
width
プロパティでも機能します。