CSS scroll-margin 属性
定义和用法
scroll-margin
属性指定了吸附位置与容器之间的距离。
这意味着当你停止滚动时,滚动会快速调整并停止在吸附位置(snap position)与容器之间指定的距离处。
吸附位置是指子元素在停止滚动时,在容器中吸附到位的位置。
scroll-margin
属性是以下属性的简写属性:
scroll-margin
属性的值可以通过不同的方式设置:
如果 scroll-margin 属性有四个值:
scroll-margin: 15px 30px 60px 90px;
- 顶部距离为 15px
- 右侧距离为 30px
- 底部距离为 60px
- 左侧距离为 90px
如果 scroll-margin 属性有三个值:
scroll-margin: 15px 30px 60px;
- 顶部距离为 15px
- 左右两侧距离为 30px
- 底部距离为 60px
如果 scroll-margin 属性有两个值:
scroll-margin: 15px 30px;
- 顶部和底部距离为 15px
- 左右两侧距离为 30px
如果 scroll-margin 属性有一个值:
scroll-margin: 10px;
- 四个方向的距离均为 10px
要看到 scroll-margin
属性的效果,必须在子元素上设置 scroll-margin
和 scroll-snap-align
属性,并在父元素上设置 scroll-snap-type
属性。
注意:在下面的例子中,为所有边设置了滚动外边距,但由于 scroll-snap-align
属性设置为 "start",因此只有顶部的滚动外边距改变了滚动行为。
实例
例子 1
设置吸附位置与容器之间的滚动外边距为 20px:
div { scroll-margin: 20px; }
例子 2:图片库
scroll-margin
属性可以用在具有吸附行为的图片库中。在这里,scroll-margin
让用户可以看到左侧还有一张图片。滚动过第一张图片可查看效果:
#container > img { scroll-margin: 0 0 0 30px; }





例子 3:设置底部和右侧的滚动外边距
可以在元素的底部和右侧设置 scroll-margin
属性。水平和垂直滚动到下一个元素可查看效果:
#container > div { scroll-margin: 0 10px 30px 0; }
CSS 语法
scroll-margin: 0|value|initial|inherit;
属性值
值 | 描述 |
---|---|
0 | 滚动外边距为零。默认值。 |
length |
指定以 px、pt、cm 等为单位的滚动外边距。允许使用负值。 请参阅:CSS 单位。 |
initial | 将此属性设置为其默认值。参阅 initial。 |
inherit | 从其父元素继承此属性。参阅 inherit。 |
技术细节
默认值: | 0 |
---|---|
继承性: | 否 |
动画制作: | 不支持。请参阅:动画相关属性。 |
版本: | CSS3 |
JavaScript 语法: | object.style.scrollMargin="20px" |
浏览器支持
表格中的数字表示首个完全支持该属性的浏览器版本。
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
69.0 | 79.0 | 90.0 | 14.1 | 56.0 |