Height equal to dynamic width (CSS fluid layout)
This question already has an answer here:
Using jQuery you can achieve this by doing
var cw = $('.child').width();
$('.child').css({'height':cw+'px'});
Check working example at http://jsfiddle.net/n6DAu/1/
[Update: Although I discovered this trick independently, I've since learned that Thierry Koblentz beat me to it. You can find his 2009 article on A List Apart. Credit where credit is due.]
I know this is an old question, but I encountered a similar problem that I did solve only with CSS. Here is my blog post that discusses the solution. Included in the post is a live example. Code is reposted below.
HTML:
<div id="container">
    <div id="dummy"></div>
    <div id="element">
        some text
    </div>
</div>
CSS:
#container {
    display: inline-block;
    position: relative;
    width: 50%;
}
#dummy {
    margin-top: 75%; /* 4:3 aspect ratio */
}
#element {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: silver /* show me! */
}
#container {
  display: inline-block;
  position: relative;
  width: 50%;
}
#dummy {
  margin-top: 75%;
  /* 4:3 aspect ratio */
}
#element {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: silver/* show me! */
}<div id="container">
  <div id="dummy"></div>
  <div id="element">
    some text
  </div>
</div>There is a way using CSS!
If you set your width depending on the parent container you can set the height to 0 and set padding-bottom to the percentage which will be calculated depending on the current width:
.some_element {
    position: relative;
    width: 20%;
    height: 0;
    padding-bottom: 20%;
}
This works well in all major browsers.
JSFiddle: https://jsfiddle.net/ayb9nzj3/
链接地址: http://www.djcxy.com/p/15814.html上一篇: 上下三角形的HTML实体是什么?
下一篇: 高度等于动态宽度(CSS流体布局)
