当前位置:Web前端 > css> 正文

CSS百分比定义高度的问题

时间:2015-4-26类别:Web前端

CSS百分比定义高度的问题

CSS百分比定义高度的问题

css中,百分比的高度在设定时需要根据这个元素的父元素容器的高度。所以,如果你把一个li的高度设定为height: 50%;,而它的父元素的高度是100px,那么,这个li的高度应该是50px。

Web浏览器在计算有效高度时,浏览器根本就不计算内容的高度,除非内容超出了视窗范围(导致滚动条出现)。或者你给整个页面设置一个绝对高度。否则,浏览器就会简单的让内容往下堆砌,页面的高度根本就无需考虑。

因为页面并没有缺省的高度值,所以,当你让一个元素的高度设定为百分比高度时,无法根据获取父元素的高度,也就无法计算自己的高度。换句话说,父元素的高度只是一个缺省值:height: auto;。当你要求浏览器根据这样一个缺省值来计算百分比高度时,只能得到undefined的结果。也就是一个null值,浏览器不会对这个值有任何的反应。

例如

  •  
  • HTML 代码   复制
  • 
     <style type="text/css">
            body {
                margin: 0;
                padding: 0;
                border: 0;
                background-color: #EFECE6;
            }
            #content {
                width: 958px;
                height: 100%;
                border-left: solid 1px #c00;
                border-right: solid 1px #c00;
                background-color: #fff;
                margin: 0 auto;
                padding: 0 1em 0 1em;
                font: 12px/1.5 Verdana;
            }
            #content h1 {
                color: #3e3e3e;
                font: 22px/1.2 Georgia;
                margin: 0;
                padding: 0;
            }
            #content h2 {
                color: #4d4a42;
                font: 14px/1.3 Verdana;
                margin: 0;
                padding: 0;
            }
        </style>
    <body>
        <li id="content">
            <h1>Height 100%—Not Working</h1>
            <h2>Example</h2>
            <p id="by">
            </p>
            <p>
                The CSS <code>height</code> property can be frustrating to use, because, especially if you are setting heights as a percentage of the browser window, they don't always work.
            </p>
            <p>
                For example, this page you are on currently has a height set to this main content <code>li</code> of 100%, but as you can see, it is not filling up the entire page. Instead it is filling up only the amount of space that this text takes up.
            </p>
            <p>
               learn how to get your elements to fill up the full height of a browser window.
            </p>
        </li>
    
    </body>
    
    		
  • 上面的例子是父元素没有设定固定高度,于是子元素的高度height: 100% 也不会起作用。

    标签:
    上一篇下一篇

    猜您喜欢

    热门推荐