Html设置html与body元素高度问题

为什么要设置HTML和body的高度?

  在一些比较正规的网站经常见到会设置html与body的高度。是为了后面的div高度正确的显示。

  div的100%是从其上一级div的宽高继承来的,有一点很关键,就是要设置div100%显示,必须设置其上一级div的宽度或高度,否则无效。

  前面总得有个容器说明他的高度是多少。这样的话div才能按比例100%继承上一级的高度可惜的是浏览器一般默认解释为内容的高度,而不是100%。
解决方法:

  只要为html和body设置高度为100%就可以了html,body{height:100%;}这样之后div会按比例来继承上一级的高度了.仅仅设置的DIV元素的height属性貌似没有什么效果。

  另外,你问“html{height:100%}是什么意思呀,难道高度是相对浏览器的?”的确,这里的height:100%是相对于浏览器高度来说的。浏览器高度不是页面的高度!

--------------------例1:(只给div设置高度,页面高度30%无效)--------------------

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <div id="" style="border: 1px solid green;height: 30%;">
            div1
        </div>
        <div id="" style="border: 1px solid green;height: 30%;">
            div2
        </div>
        <div id="" style="border: 1px solid green;height: 30%;">
            div3
        </div>
    </body>
</html>

 结果:

----------------------只给body设置高度100%仍然无效----------------

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            body{
                height:100%;
            }
        </style>
    </head>
    <body>
        <div id="" style="border: 1px solid green;height: 30%;">
            div1
        </div>
        <div id="" style="border: 1px solid green;height: 30%;">
            div2
        </div>
        <div id="" style="border: 1px solid green;height: 30%;">
            div3
        </div>
    </body>
</html>

结果:

-----------------------同时给html与body设置100%----------------------

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            html,body{
                height:100%;
            }
        </style>
    </head>
    <body>
        <div id="" style="border: 1px solid green;height: 30%;">
            div1
        </div>
        <div id="" style="border: 1px solid green;height: 30%;">
            div2
        </div>
        <div id="" style="border: 1px solid green;height: 30%;">
            div3
        </div>
    </body>
</html>

结果:

总结:

  百分比的宽度是相对于其父元素而言,一种方法用单位明确指定父元素的高度,另一种办法就是上面介绍的从html,body开始用百分比继承。html的百分比是相对于浏览器而言,其他是相对于其父元素而言。也就是说应该养成一个好的习惯,写html网页时候上来就把html,body{height:100%}写上去。这样后面的div就可以用百分比起作用了。

时间: 2024-11-10 18:03:48

Html设置html与body元素高度问题的相关文章

CSS关于子元素设置了float属性后父元素高度为0的解释和解决方法

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 2 <html lang="en"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8&q

css 子元素设置float,父元素高度塌陷

以div元素为例.div元素的高度会通过内容自动撑开.也就是说,内容有多少,高度就有多高.但是当内部元素设置了float属性之后,会是父元素高度塌陷 <div class="container"> <p>Hello World!Hello World!</p> <div class="clearfix"></div> </div> 清除浮动的方法 父元素底部添加空div,然后在添加属性clear

子元素设置浮动样式,父元素高度为0

子元素如果设置了浮动样式,那么它就会脱离文档流,从而导致父元素高度变成0,当然不能说这是一个Bug,float的出现的初衷就是为了实现文字环绕图片来实现图文混排和流式布局,所以只能说这种情况只能是由于浮动样式的特性决定的. 测试用例: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd

内层元素设置浮动,外层元素不设置浮动和高度,内层元素不能撑开外层元素高度问题

<style> .par {    border: 5px solid #fcc;    width: 300px;    /*height:110px;  注意这里给外层元素设置相应高度,外层元素会包裹内层元素,并占用文档流*/    /*float:left;   或者给外层元素设置浮动,外层元素也会包裹内层元素,但不会占用文档流空间*/} .child {    border: 5px solid #f66;    width:100px;    height: 100px;    fl

设置div 居中 和得到dom元素高度

javascript中获取dom元素高度和宽度的方法如下: 网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.body.offsetWidth (包括边线的宽)网页可见区域高: document.body.offsetHeight (包括边线的高)网页正文全文宽: document.body.scrollWidth网页正文全文高: document.body.scrollH

垂直居中——父元素高度确定的单行文本、父元素高度确定的多行文本

声明:来自http://www.imooc.com/learn/9 学习 父元素高度确定的单行文本的竖直居中 是通过设置父元素的 height 和 line-height 高度一致来实现的. .container{ height:100px; line-height:100px; background:#999; } 父元素高度确定的多行文本 使用插入 table (包括tbody.tr.td)标签,同时设置 vertical-align:middle. <body> <table>

解决父级元素高度塌陷问题的方法

如果父元素只包含浮动元素,且父元素未设置高度和宽度的时候.那么它的高度就会塌缩为零,也就是所谓的“高度塌陷”,如果父级元素包含背景或者边框,那么溢出的元素就不像父级元素的一部分了.解决“高度塌陷”的问题很简单: 1.浮动父级元素 如果让父级元素浮动,父级元素的高度就会扩大,直到完全包含它里面的浮动元素,虽然这个方法很奇怪,但是很有效.如果选择这种方法,一定要在该元素的下个元素添加clear:both,确保浮动元素落到父级元素的下方. 2.利用overflow:hidden,zoom:1 { ov

关于多子级元素充满父级元素高度的布局方式

关于多子级元素充满父级元素高度的布局方式,听着有些绕口,上个图应该就能很清楚的理解这标题的意思了: 如图:左右分栏的情况下,有顶部和底部导航,且在屏幕高度不定的时候(移动端,多设备适配),如何不适用js来让内容区自适应扩展,填满父级剩下的高度呢? 首先分两种情况: 一.顶部和底部导航为固定高度时,这种情况挺常见的,也是相对比较简单的一种情况: 方法1:使用box-sizing: border-box; 配合 height: 100%; 和上下padding来达到全屏侧边的效果: <!DOCTYP

为什么没法设置span的宽度和高度

为什么没法设置span的宽度和高度: 很多刚开始学习div+css布局的时候可能会碰到这样的问题,使用CSS代码无法设置span的高度和宽度,尽管CSS代码没有错误,却无法生效.例如 <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.51texiao.cn/"