我的问题与此问题非常相似:CSS: 100% width or height while keeping aspect ratio?
我有一个div,其位置是固定的。 div的 width 必须为100%且 height 恰好是 width 的1/6。是否有 -webkit-calc()这样做?
注意: JS解决方案不是首选,因为缩放/方向更改会影响宽度/高度。
答案 0 :(得分:10)
这就是你追求的吗?我根本没有使用-webkit-calc()
。我已将1px
6px
图像插入到已应用div
的外部position: fixed
中,并将图片设置为width
{ {1}}和100%
。然后我添加了一个内部position: relative
,它绝对定位为与其祖先一样高和宽。
现在,您可以更改外部div
的宽度,图片“div
设置将确保外部和内部width: 100%
都保证始终具有高度等于其宽度的1/6(或至少接近完全相等的高度,高度将四舍五入到最接近的整数像素)。任何内容都可以进入内部div
。
<强> HTML 强>
div
<强> CSS 强>
<div>
<div></div>
<img src="https://dl.dropboxusercontent.com/u/6928212/sixbyone.png" />
</div>
这是显示请求行为的 jsFiddle 。
答案 1 :(得分:6)
您还可以使用我在Responsive square columns中描述的解决方案。
这是基于以下事实:%padding-top/bottom
和margin-top/bottom
是根据父元素的宽度计算的。
根据您的情况,它看起来像这样:
<强> FIDDLE 强>
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;
}
答案 2 :(得分:-1)
你可以像这样设置div宽度:
$('#div1').css("width", $('#div1').height()/6);
编辑:
或者你可以使用这样的东西:
/* Firefox */
width: -moz-calc(100% / 6);
/* WebKit */
width: -webkit-calc(100% / 6);
/* Opera */
width: -o-calc(100% / 6);
/* Standard */
width: calc(100% / 6);
这只是一个例子 - ..但是不可能在css文件的像素中获得div的高度..你需要使用jquery
编辑:
高度的1/6
$('#div1').css("height", window.width()/6);
答案 3 :(得分:-1)
你可以使用jquery,例如$('.someclass').css('width', 180);
$('.someclass').css('height', $('.someclass').width() / 6);
从评论的可读性中移出了第二个建议
$('.btnResize').click(function() { $('.div').css('height', $('.div').width()/6);});