CSS中的overflow属性
- overflow属性
如果元素中的内容超出了给定的宽度和高度属性,overflow 属性可以确定是否显示滚动条,是否隐藏溢出部分等行为,规定当内容溢出元素框时发生的事情。
- 可能的值有:
visible:默认值。内容不会被修剪,会呈现在元素框之外。
hidden:内容会被修剪,并且其余内容是不可见的。
scroll:内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto:内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
inherit:规定应该从父元素继承 overflow 属性的值。
- overflow-x与overflow-y
overflow-x主要用来定义对水平方向内容溢出的剪切,而overflow-y主要用来定义对垂直方向内容溢出的剪切,如果overflow-x和overflow-y值相同则等同于overflow。如果overflow-x和overflow-y值不同,且其中一个值显式设置为visible或者默认为visible,而另外一个值是非visible的值。则visible值会被重置为auto。
我们看下面这个小例子,div2在水平方向超出了容器div1,我们将div1的overflow-x设置为visible,overflow-y设置为scroll,但是发现水平方向并没有显示多余的部分,而是出现了水平滚动条,可见overflow-x被重置为auto了。同样,div2中文字在竖直方向超出了容器,我们将div2的overflow-y设置为visible,overflow-x设置为hidden,但是发现竖直方向并没有隐藏多余的部分,而是出现了竖直方向的滚动条,可见overflow-y也被重置为auto了。
如果子元素为绝对定位元素,而父元素没有定位时,给父元素设置overflow并不起作用。就像下图,div2为绝对定位元素,给div1设置了overflow:hidden之后它超出div1的部分并没有被裁掉。只要给父元素设置定位position:absolute,fixed或relative之后就可以了。