Height equal to dynamic width (CSS fluid layout)

This question already has an answer here:

  • Maintain the aspect ratio of a div with CSS 18 answers

  • 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流体布局)