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

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

是为了后面的div的百分比高度正确的显示。
  div的100%是从其上一级div的宽高继承来的,要设置div 百分比显示,必须设置其上一级div的宽度或高度,否则无效。前面总得有个容器说明他的高度是多少,这样的话div才能按比例 number% 继承上一级的高度。可惜的是浏览器一般默认解释div为内容的高度,而不是100%。

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

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

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



    
        
        
    
    
        
div1
div2
div3

效果:

image.png

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



    
        
        
        
    
    
        
div1
div2
div3

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



    
        
        
        
    
    
        
div1
div2
div3

效果:

image.png

总结:

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

你可能感兴趣的:(Html设置html与body元素高度问题)