# overflow

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

# # Syntax

overflow: visible | hidden;

# # Values

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

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

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

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

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

# # default

Platform default
app-uvue hidden
web visible

# # Compatibility

# # uni-app compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
overflow 5.0 3.9+ 9.0 -
scroll 5.0 x 9.0 x
auto 5.0 x 9.0 x
clip 5.0 x 9.0 x

# # See also

# Bug & Tips

  • Android平台 当元素设置 overflow = visible 后会扩大元素的渲染区域,元素渲染及内存占用存在性能消耗,应尽量避免设置 overflow = visible
  • Android平台 uni-app x 父元素设置 overflow = visible,子元素超出父元素的区域,无法正常响应touch、click事件