CSS设置height:100%
2017-07-22 10:41
441 查看
当你设置一个页面元素的高度(height)为100%时,期望这样元素能撑满整个浏览器窗口的高度,但大多数情况下,这样的做法没有任何效果。你知道为什么
根据W3C的规范,百分比的高度在设定时需要根据这个元素的父元素容器的高度。所以,如果你把一个div的高度设定为
那为什么 height:100%; 不起作用?
如果你要是设置宽度为
所以当你设计一个页面时,你在里面放置了一个div元素,你希望它占满整个窗口高度,最自然的做法,你会给这个div添加
Web浏览器在计算有效宽度时会考虑浏览器窗口的打开宽度。如果你不给宽度设定任何缺省值,那浏览器会自动将页面内容平铺填满整个横向宽度。
但是高度的计算方式完全不一样。事实上,浏览器根本就不计算内容的高度,除非内容超出了视窗范围(导致滚动条出现)。或者你给整个页面设置一个绝对高度。否则,浏览器就会简单的让内容往下堆砌,页面的高度根本就无需考虑。
因为页面并没有缺省的高度值,所以,当你让一个元素的高度设定为百分比高度时,无法根据获取父元素的高度,也就无法计算自己的高度。换句话说,父元素的高度只是一个缺省值:height: auto;。当你要求浏览器根据这样一个缺省值来计算百分比高度时,只能得到undefined的结果。也就是一个null值,浏览器不会对这个值有任何的反应。
那么,如果想让一个元素的百分比高度height:100%;起作用,你需要给这个元素的所有父元素的高度设定一个有效值。换句话说,你需要这样做:
现在你给了这个div的高度为100%,它有两个父元素和。为了让你的div的百分比高度能起作用,你必须设定和的高度。
从这个演示中你可以看出,height:100%;起作用了。
在使用height:100%;时需要注意的一些事项:
1、Margins 和 padding 会让你的页面出现滚动条,也许这是你不希望的。
2、如果你的元素实际高度大于你设定的百分比高度,那元素的高度会自动扩展。
height:100%不起作用吗?
根据W3C的规范,百分比的高度在设定时需要根据这个元素的父元素容器的高度。所以,如果你把一个div的高度设定为
height:50%;,而它的父元素的高度是100px,那么,这个div的高度应该是50px。
那为什么 height:100%; 不起作用?
如果你要是设置宽度为
width:100%;,那这个元素的宽度会立刻扩展到窗口的整个横向宽度。
所以当你设计一个页面时,你在里面放置了一个div元素,你希望它占满整个窗口高度,最自然的做法,你会给这个div添加
height:100%;的css属性。但是此时height:100%并不起作用。
Web浏览器在计算有效宽度时会考虑浏览器窗口的打开宽度。如果你不给宽度设定任何缺省值,那浏览器会自动将页面内容平铺填满整个横向宽度。
但是高度的计算方式完全不一样。事实上,浏览器根本就不计算内容的高度,除非内容超出了视窗范围(导致滚动条出现)。或者你给整个页面设置一个绝对高度。否则,浏览器就会简单的让内容往下堆砌,页面的高度根本就无需考虑。
因为页面并没有缺省的高度值,所以,当你让一个元素的高度设定为百分比高度时,无法根据获取父元素的高度,也就无法计算自己的高度。换句话说,父元素的高度只是一个缺省值:height: auto;。当你要求浏览器根据这样一个缺省值来计算百分比高度时,只能得到undefined的结果。也就是一个null值,浏览器不会对这个值有任何的反应。
那么,如果想让一个元素的百分比高度height:100%;起作用,你需要给这个元素的所有父元素的高度设定一个有效值。换句话说,你需要这样做:
<html> <body> <div style="height: 100%;"> <p> 想让这个div高度为 100% 。 </p> </div> </body> </html>
现在你给了这个div的高度为100%,它有两个父元素和。为了让你的div的百分比高度能起作用,你必须设定和的高度。
<html style="height: 100%;"> <body style="height: 100%;"> <div style="height: 100%;"> <p> 这样这个div的高度就会100%了 </p> </div> </body> </html>
从这个演示中你可以看出,height:100%;起作用了。
在使用height:100%;时需要注意的一些事项:
1、Margins 和 padding 会让你的页面出现滚动条,也许这是你不希望的。
2、如果你的元素实际高度大于你设定的百分比高度,那元素的高度会自动扩展。
相关文章推荐
- 标准模式中的 IE width 100% bug CSS设置height:"100%" CSS处理圆角
- css 设置height:100%问题
- css如何用height:100%设置全屏
- css设置height:100%,用js获取不到高度值问题
- 兼容模式下IFRAME_height=100%无效时CSS设置
- css菜鸟之HTML 中块级元素设置 height:100% 的实现
- CSS中设置height:100%无效的解决方案
- 【CSS系列】height:100%设置div的高度
- 在IE6下用css设置div的高度为100%时失效的问题!
- html,body设置{height:100%}
- CSS中height:100%和height:inherit的异同
- table和div设置height:100%无效的完美解决方法
- CSS布局与定位——height百分比设置无效/背景色不显示
- css设置height 由0到auto的动画效果
- css中height:100%不起作用的解决方法
- [转]table和div设置height:100%无效的完美解决方法
- height设置100%失效
- table和div设置height:100%无效的完美解决方法
- css中height:100%不起作用的解决方法
- css中height:100%不起作用的解决方法