我的问题与这个问题非常相似:CSS: 100% width or height while keep aspect ratio?
我有一个位置固定的 div。div的宽度必须为 100%,高度正好是其宽度的 1/6 。有没有这样做的-webkit-calc()方式?
注意: JS 解决方案不是首选,因为缩放/方向更改会影响宽度/高度。
我的问题与这个问题非常相似:CSS: 100% width or height while keep aspect ratio?
我有一个位置固定的 div。div的宽度必须为 100%,高度正好是其宽度的 1/6 。有没有这样做的-webkit-calc()方式?
注意: JS 解决方案不是首选,因为缩放/方向更改会影响宽度/高度。
这就是你所追求的吗?我根本没用-webkit-calc()
。我已将1px
by图像插入到已应用于它6px
的外部,并将图像设置为具有and 。然后我添加了一个绝对定位为与其祖先一样高和宽的内部。div
position: fixed
width
100%
position: relative
div
现在您可以更改 external 的宽度div
,并且图像的width: 100%
设置将确保 external 和 innerdiv
的高度始终等于其宽度的 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显示请求的行为。
您也可以使用我在Responsive square columns中描述的解决方案。
它基于 %padding-top/bottom
和margin-top/bottom
根据父元素的宽度计算的事实。
适应您的情况,它看起来像这样:
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;
}
你总是可以像这样设置 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);
你可以使用 jquery,例如$('.someclass').css('width', 180);
$('.someclass').css('height', $('.someclass').width() / 6);
从评论中移出第二条建议以提高可读性
$('.btnResize').click(function() { $('.div').css('height', $('.div').width()/6);});