新手求问width:100%;是相对于父元素还是相对于Body,为什么一定要设置width100%;?还有width:100%; overflow:hidden;的原理是什么?
看了好多问题答案各有千秋 始终不太明白
看了好多问题答案各有千秋 始终不太明白
2016-08-18
width:100%是相对于父元素的,没有说一定要设置width:100%,
overflow:hidden 的意思是超出的部分要裁切隐藏掉.
overflow:hidden是为了帮助父元素清除浮动的影响,
关于overflow:hidden的
第一种理解: float 的元素不占普通流位置,普通流的包含块要根据内容高度裁切隐藏,如果高度是默认值auto,那么不计算其内浮动元素高度就裁切,就有可能会裁掉float。所以如果没有明确设定容器高情况下,它要计算内容全部高度才能确定在什么位置hidden,浮动的高度就要被计算进去,顺带达成了清理浮动的目标.
第二种理解:设置overflow:hidden的目的是为了使父容器形成BFC。
BFC有三个特性, 1. BFC会阻止垂直外边距(margin-top、margin-bottom)折叠
2.BFC不会重叠浮动元素
3.BFC可以包含浮动
如何简单地形成BFC
float为 left|right
overflow为 hidden|auto|scroll
display为 table-cell|table-caption|inline-block
position为 absolute|fixed
使用BFC有一定的局限性:
使用float的时候会使父容器长度缩短,而且还有个重要缺陷——父容器float解决了其塌陷问题,那么父容器的父容器怎么办?难道要全部使用folat吗(确实有这种布局方式倒是)。BFC的几种方式都有各自的问题,overflow属性会影响滚动条和绝对定位的元素;position会改变元素的定位方式,这是我们不希望的,display这几种方式依然没有解决低版本IE问题。。。
举报