私の質問はこの質問と非常によく似ています: CSS:アスペクト比を維持しながら幅または高さを100%?
位置が固定されているdivがあります。 divのwidthは100%で、heightはwidthのちょうど1/6でなければなりません。これを行う-webkit-calc()方法はありますか?
注:ズーム/方向の変更が幅/高さに影響を与える可能性があるため、JSソリューションは推奨されません。
これはあなたが求めているものですか? -webkit-calc()
はまったく使用していません。 _1px
_ by _6px
_画像を_position: fixed
_が適用された外側のdiv
に挿入し、画像にwidth
を設定しました。 _100%
_および_position: relative
_の。次に、祖先と同じ高さと幅になるように絶対的に配置された内部div
を追加しました。
これで、外側のdiv
の幅を変更でき、画像の_width: 100%
_設定により、外側と内側の両方のdiv
の高さが常に等しいことが保証されます。それらの幅の1/6(または、少なくとも可能な限り正確に等しくなると、高さは最も近い整数のピクセルに丸められます)。すべてのコンテンツは、内部のdiv
内に入る可能性があります。
[〜#〜] html [〜#〜]
_<div>
<div></div>
<img src="https://dl.dropboxusercontent.com/u/6928212/sixbyone.png" />
</div>
_
[〜#〜] css [〜#〜]
_html, body {
margin: 0px;
padding: 0px;
}
div {
position: fixed;
width: 100%;
}
div > div {
position: absolute;
top: 0px;
right: 0px;
bottom: 0px;
left: 0px;
}
img {
width: 100%;
display: block;
position: relative;
}
_
これが jsFiddle 要求された動作を示します。
レスポンシブ四角柱 で説明したソリューションを使用することもできます。
これは、%padding-top/bottom
およびmargin-top/bottom
が親要素のwhidthに従って計算されるという事実に基づいています。
あなたの状況に適応すると、次のようになります:
HTML:
<div class="wrap">
<div class="content">
</div>
</div>
CSS:
.wrap{
position:fixed;
width:100%;
padding-bottom:16.666%; /* 100x1/6 = 16.666...*/
}
.content{
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
}