CSS 属性 overscroll-behavior 是一个简写属性,用于确定到达滚动区域边界时浏览器执行的操作。
该属性的组成属性为 overscroll-behavior-x 和 overscroll-behavior-y .
滚动链接是当用户滚动超过可滚动元素的边界(顶部、底部、左侧或右侧)时观察到的一种行为,导致在祖先元素上滚动。这会在滚动中产生连锁效应。
例如,如果网页上有一个模式对话框,其中包含可以垂直滚动的内容。当您到达此模式的可滚动区域的末尾时,滚动会继续在模式对话框后面的主页内容上进行。这种连续滚动体验称为滚动链接。
这种行为可能是理想的,也可能不是理想的,为了避免这种情况,需要使用属性 overscroll-behavior。该属性仅应用于可滚动容器。在 <iframe> 上设置此属性没有任何效果,因此需要在 iframe 文档的 <html> 和 <body> 元素上设置该属性。
属性值
CSS 属性 overscroll-behavior定义为一个或两个关键字,如下所示。这两个关键字分别指定 x 轴和 y 轴上的值。当仅指定一个值时,x 轴和 y 轴具有相同的值。
auto: 默认滚动行为是正常的。
contain: 滚动行为仅在设置值的元素中可见。相邻元素上没有设置滚动。
none: 没有看到滚动链接行为。避免默认的滚动溢出行为。
适用范围
所有非替换的块级元素和非替换的内联块元素。
语法
overscroll-behavior = [ contain | auto | none ]{1,2}
CSS overscroll-behavior: auto
以下示例演示了使用 overscroll-behavior: auto 设置滚动效果连续。因此,当到达可滚动元素的边界时,滚动时,父元素也会滚动。
<html>
<head>
<style>
div {
margin: 5px 15px;
padding: 3px;
border: solid black 1px;
overflow: auto;
border: 2px solid black;
}
#main-box {
display: flex;
flex-wrap: wrap;
background-color: cornsilk;
height: 800px;
}
#box-1 {
background-color: lightblue;
overscroll-behavior: auto;
}
#main-box > div {
flex: 1;
height: 150px;
}
</style>
</head>
<body>
<h1>overscroll-behavior 属性</h1>
<p>下面显示的框将该属性设置为auto 默认属性</p>
<p>使用鼠标滚动蓝色框,一旦完全滚动,继续滚动并看到父元素滚动。.</p>
<div id="main-box">
<div id="box-1">
<h2>overscroll-behavior: auto</h2>
<p>CSS 是“层叠样式表”的缩写。 它是一种样式表语言,用于描述用 HTML 等标记语言编写的文档的表示形式。 CSS 帮助 Web 开发人员控制网页的布局和其他视觉方面。 CSS 在现代 Web 开发中发挥着至关重要的作用,它提供了创建具有视觉吸引力、可访问性和响应式网站所需的工具。</p>
</div>
</div>
</body>
</html>
CSS overscroll-behavior: 值比较
以下示例演示了 overscroll 的使用-behavior: contains 设置其所应用的元素包含的滚动效果。因此,当到达可滚动元素的边界时,滚动时,父元素不会滚动。
<html>
<head>
<style>
div {
margin: 5px 15px;
padding: 3px;
border: solid black 1px;
overflow: auto;
border: 2px solid black;
}
#main-box {
display: flex;
flex-wrap: wrap;
background-color: darkcyan;
height: 800px;
}
#box-1 {
background-color: pink;
}
#box-2 {
background-color: aliceblue;
overscroll-behavior: contain;
}
#main-box > div {
flex: 1;
height: 150px;
}
</style>
</head>
<body>
<h1>overscroll-behavior 属性</h1>
<p>下面显示的两个框的overscroll-behavior分别设置为auto和contain。</p>
<p>使用鼠标滚动第一个粉红色框,一旦完全滚动,继续滚动并看到父元素滚动。</p>
<p>使用鼠标滚动第二个白色框,一旦完全滚动,继续滚动并看到父元素没有滚动。</p>
<div id="main-box">
<div id="box-1">
<h3>overscroll-behavior: auto</p>
<p>CSS 是“层叠样式表”的缩写。 它是一种样式表语言,用于描述用 HTML 等标记语言编写的文档的表示形式。 CSS 帮助 Web 开发人员控制网页的布局和其他视觉方面。 CSS 在现代 Web 开发中发挥着至关重要的作用,它提供了创建具有视觉吸引力、可访问性和响应式网站所需的工具。
</p>
</div>
<div id="box-2">
<h3>overscroll-behavior: contain</p>
<p>CSS 是“层叠样式表”的缩写。 它是一种样式表语言,用于描述用 HTML 等标记语言编写的文档的表示形式。 CSS 帮助 Web 开发人员控制网页的布局和其他视觉方面。 CSS 在现代 Web 开发中发挥着至关重要的作用,它提供了创建具有视觉吸引力、可访问性和响应式网站所需的工具。
</p>
</div>
</div>
</body>
</html>
CSS overscroll-behavior: 两个关键字值
以下示例演示了用法overscroll-behavior: auto contains (两个值),设置滚动效果在x轴上自动并在y轴上包含。因此,当到达可滚动元素的垂直边界时,在滚动时,父元素不会滚动(如包含的那样),但水平边界设置为自动,这会导致父元素在 x 轴上滚动。
<html>
<head>
<style>
#main-box, #box-2 {
margin: 15px;
padding: 3px;
border: solid black 1px;
overflow: auto;
}
#main-box p {
width: 200%;
}
#main-box {
background-color: rgb(197, 255, 236);
height: 1300px;
width: 2000px;
}
#box-2 {
float: left;
height: 250px;
width: 30%;
background-color: rgb(255, 205, 213);
overscroll-behavior: auto none;
}
</style>
</head>
<body>
<h1>overscroll-behavior: 两个值的语法</h1>
<p>两个值语法与过度滚动行为一起使用,在 x 轴上为 auto,在 y 轴上为 none。</p>
<div id="main-box">
<div id="box-2">
<h3>overscroll-behavior: auto none</p>
<p>CSS 是“层叠样式表”的缩写。 它是一种样式表语言,用于描述用 HTML 等标记语言编写的文档的表示形式。 CSS 帮助 Web 开发人员控制网页的布局和其他视觉方面。 CSS 在现代 Web 开发中发挥着至关重要的作用,它提供了创建具有视觉吸引力、可访问性和响应式网站所需的工具。
</p>
</div>
</div>
</body>
</html>
CSS overscroll-behavior: 关联属性
下表列出了与过度滚动行为属性关联的 CSS 属性:
属性 | 说明 |
---|---|
overscroll-behavior-x | 设置到达滚动区域的水平边界时浏览器的行为。 |
overscroll-behavior-y | 设置到达滚动区域垂直边界时浏览器的行为。 |
overscroll-behavior-block | 设置到达滚动区域的块方向边界时浏览器的行为。 |
overscroll-behavior-inline | 集到达滚动区域的内联方向边界时浏览器的行为。 |