# overflow

overflow 是 CSS 的简写属性,其设置了元素溢出时所需的行为——即当元素的内容太大而无法适应它的块级格式化上下文时。

# uni-app x 兼容性

Android iOS web
3.9 4.11 4.0

# 语法

overflow: [ visible | hidden | clip | scroll | auto ]{1,2};

# overflow 的属性值

visible 暂时仅view组件支持visible,其他组件支持不支持

hidden 如果需要,内容将被裁减以适应边距(padding)盒。不提供滚动条,也不支持允许用户滚动(例如通过拖拽或者使用滚轮)。内容可以以编程的方式滚动(例如,通过设置 scrollLeft 等属性的值或 scrollTo() 方法), 因此该元素仍然是一个滚动的容器。

scroll 如果需要,内容将被裁减以适应边距(padding)盒。无论是否实际裁剪了任何内容,浏览器总是显示滚动条,以防止滚动条在内容改变时出现或者消失。打印机可能会打印溢出的内容。

auto 取决于用户代理。如果内容适应边距(padding)盒,它看起来与 visible 相同,但是仍然建立了一个新的块级格式化上下文。如果内容溢出,则浏览器提供滚动条。

clip 类似于 hidden,内容将以元素的边距(padding)盒进行裁剪。clip 和 hidden 之间的区别是 clip 关键字禁止所有滚动,包括以编程方式的滚动。该盒子不是一个滚动的容器,并且不会启动新的格式化上下文。如果你希望开启一个新的格式化上下文,你可以使用 display: flow-root 来这样做。

# 默认值

平台 默认值
uvue hidden

注意:W3C 默认值为:visible

# 兼容性

# overflow 的属性值兼容性

Android iOS web
visible 3.9 4.11 4.0
hidden 3.9 4.11 4.0
scroll x x 4.0
auto x x 4.0
clip x x 4.0

# 浏览器兼容性

Chrome Edge Firefox Opera Safari IE
overflow √( 1 ) √( 12 ) √( 1 ) √( 7 ) √( 1 ) √( 4 )

# 参见

# Bug & Tips

  • Android平台 当元素设置 overflow = visible 后会扩大元素的渲染区域,元素渲染及内存占用存在性能消耗,应尽量避免设置 overflow = visible
  • Android平台 uni-app x 父元素设置 overflow = visible,子元素超出父元素的区域,无法正常响应touch、click事件
  • iOS平台 当元素四个边设置了不同值的圆角,overflow = visible 会无效,超过父元素会被裁剪