简体中文
overflow 是 CSS 的简写属性,其设置了元素溢出时所需的行为——即当元素的内容太大而无法适应它的块级格式化上下文时。
Web | Android | iOS |
---|---|---|
4.0 | 3.9 | 4.11 |
Chrome | Edge | Firefox | Opera | Safari | IE |
---|---|---|---|---|---|
√( 1 ) | √( 12 ) | √( 1 ) | √( 7 ) | √( 1 ) | √( 4 ) |
overflow: [ visible | hidden | clip | scroll | auto ]{1,2};
名称 | 兼容性 | 描述 |
---|---|---|
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
Template
Script
<template>
<!-- #ifdef APP -->
<scroll-view style="flex:1;">
<!-- #endif -->
<text style="font-size: 15px;">overflow=hidden效果子元素是view border圆角</text>
<view class="backgroundview">
<view class="box-hidden-border-radius">
<view style="width: 50px; height: 150px; background-color: greenyellow;"></view>
</view>
</view>
<text style="font-size: 15px;">overflow=hidden效果 子元素是view border边框</text>
<view class="backgroundview">
<view class="box-hidden-border-width">
<view style="width: 50px; height: 150px; background-color: greenyellow;"></view>
</view>
</view>
<text style="font-size: 15px;">overflow=visible效果 子元素是view border圆角</text>
<view class="backgroundview">
<view class="box-visible-border-radius">
<view style="width: 50px; height: 150px; background-color: greenyellow;"></view>
</view>
</view>
<text style="font-size: 15px;">overflow=visible效果 子元素是view border边框</text>
<view class="backgroundview">
<view class="box-visible-border-width">
<view style="width: 50px; height: 150px; background-color: greenyellow;"></view>
</view>
</view>
<view style="flex-grow: 1">
<text style="font-size: 15px;">overflow=hidden效果 子元素是text</text>
<view class="backgroundview">
<view class="box-hidden-border-radius">
<text class="text1">ABCDEFG</text>
</view>
</view>
<text style="font-size: 15px;">overflow=visible效果 子元素是text</text>
<view class="backgroundview">
<view class="box-visible-border-radius">
<text class="text1">ABCDEFG</text>
</view>
</view>
<text style="font-size: 15px;">overflow=hidden效果 子元素是image</text>
<view class="backgroundview">
<view class="box-hidden-border-radius">
<image style="width: 150px; height: 150px;" src="/static/uni.png"></image>
</view>
</view>
<text style="font-size: 15px;">overflow=visible效果 子元素是image</text>
<view class="backgroundview">
<view class="box-visible-border-radius">
<image style="width: 150px; height: 150px;" src="/static/uni.png"></image>
</view>
</view>
<text style="font-size: 15px;">overflow=visible效果 子元素是view 父是scroll-view</text>
<scroll-view class="backgroundview">
<view class="box-visible-border-radius">
<view style="width: 50px; height: 150px; background-color: greenyellow;"></view>
</view>
</scroll-view>
</view>
<!-- #ifdef APP -->
</scroll-view>
<!-- #endif -->
</template>
<style>
.backgroundview {
width: 300px;
height: 300px;
margin-bottom: 20px;
background-color: white;
justify-content: center;
align-items: center;
}
.box-hidden-border-radius {
width: 100px;
height: 100px;
border-radius: 20px;
overflow: hidden;
background-color: green;
}
.box-hidden-border-width {
width: 100px;
height: 100px;
border-width: 2px;
border-style: solid;
background-color: green;
}
.box-visible-border-radius {
width: 100px;
height: 100px;
border-radius: 20px;
overflow: visible;
background-color: green;
}
.box-visible-border-width {
width: 100px;
height: 100px;
border-width: 2px;
border-style: solid;
overflow: visible;
background-color: green;
}
.text1 {
font-size: 50px;
lines: 1;
}
</style>
android-layer-type
为hardware
或software
时,overflow: visible
不生效。