2015-01-09 202 views
2

是否可以动态设置div宽度,然后将其高度设置为该宽度的某个百分比。这样的事情:根据宽度设置div高度

#myDiv{ 
    width:%100; 
    height: {35% of width}; 
} 

我想保留一个div的宽度与高度的比率,无论宽度可能是什么。

回答

0

HTML:

<div class='box'> 
    <div class='content'>All your content are belong to us</div> 
</div> 

我们用两个块元素,以达到所期望的行为,宽度框,高度内容框。

CSS:

.box{ 
    position: relative; 
    width: 50%;  /* desired width */ 
} 
.box:before{ 
    content: ""; 
    display: block; 
    padding-top: 100%; /*What you want the height to be in relation to the width*/ 
} 

内容:
然后将内容设置为覆盖整个盒子绝对所以无论大小,它适合!

.content{ 
    position: absolute; 
    top: 0; 
    left: 0; 
    bottom: 0; 
    right: 0; 
} 

田田你做......

来源:Pure CSS

+0

我的答案是纯粹的CSS,并张贴在你的之前,所以不知道你为什么说....“或” –

+0

我的道歉,你的答案不存在,因为我开始打字,我没有做一个检查之前点击按钮。现在将改变那个“或者”。 –

0

尝试一个简单的JavaScript:

document.getElementById("elemID").style.height = 
Math.round((document.getElementById("elemID").style.width * 100)/35) + "px"; 

这将得到的用百分比(四舍五入),并将其分配给高度。

+0

你需要这个斜线'/'分(我总是忘记这就叫它=)) – hellatan

+0

感谢。我在平板电脑上,并感到困惑:) – DripDrop

+0

或只是乘以0.35 ... –

2

您可以通过将高度设置为零,然后向padding-bottom添加百分比来完成此操作。您可能需要调整它一点点地得到想要的结果,但这里有一个拨弄一个例子 http://jsfiddle.net/wbq8o3s7/

#myDiv{ 
    width:%100; 
    height:0; 
    padding-bottom:35%; 
    background-color:#333; 
} 
+0

呵呵。它的工作原理 - 但为什么? –

+0

简单的语义我亲爱的沃森:)填充实际上成为div的高度,并随着屏幕大小的变化,填充。 –

+0

嗯,我还是不明白。 35%计算的是什么,为什么?通常情况下,身高相关百分比会根据身高计算?为什么在这里计算宽度? –

相关问题