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之后就可以了。

 
 
原文地址:https://www.cnblogs.com/aaaaniu/p/8288001.html