CSS scroll-margin-inline 属性

定义和用法

scroll-margin-inline 属性指定在行内方向上,吸附位置与容器之间的距离。

这意味着,当你停止滚动时,滚动会快速调整并在行内方向上停在指定的距离处,该距离位于吸附位置与容器之间。

行内方向是指下一字符相对于现有字符在行中的位置放置的方向,这也是具有 CSS display: inline; 的标签(如 <a> 和 <strong> 标签)在文本中的布局方式。行内方向取决于书写语言,例如阿拉伯语的新字符是从右到左排列的,因此行内方向是从右到左的,而英文页面的行内方向是从左到右的。行内方向可以通过 CSS 属性 directionwriting-mode 定义。

吸附位置是指子元素在停止滚动时吸附到容器中的位置。

scroll-margin-inline 属性是以下属性的简写属性:

scroll-margin-inline 属性的值可以通过不同方式设置:

如果 scroll-margin-inline 属性有两个值:

scroll-margin-inline: 20px 70px;
  • 开始处的距离为 20px
  • 结束处的距离为 70px

如果 scroll-margin-inline 属性有一个值:

scroll-margin-inline: 20px;
  • 开始处和结束处的距离均为 20px

要看到 scroll-margin-inline 属性的效果,必须在子元素上设置 scroll-margin-inlinescroll-snap-align 属性,并在父元素上设置 scroll-snap-type 属性。

CSS 的 scroll-margin-inlinescroll-margin-block 属性与 CSS 属性 CSS scroll-margin-top 属性scroll-margin-bottomscroll-margin-leftscroll-margin-right 非常相似,但 scroll-margin-blockscroll-margin-inline 属性依赖于块方向和行内方向。

实例

例子 1

设置在行内方向上,从吸附位置到可滚动容器的距离:

div {
  scroll-margin-inline: 20px;
}

亲自试一试

例子 2

当 <div> 元素的 writing-mode 属性值设置为 vertical-rl 时,行内方向是向下。结果是元素的起始位置从左侧移动到顶部,元素的结束位置从右侧移动到底部。这也影响了 scroll-margin-inline 属性:

div {
  scroll-margin-inline: 20px 0;
  writing-mode: vertical-rl;
}

亲自试一试

例子 3

当 <div> 元素的 direction 属性值设置为 rtl 时,行内方向是从右到左。结果是元素的起始位置从左侧移动到右侧,元素的结束位置从右侧移动到左侧。这也影响了 scroll-margin-inline 属性:

div {
  scroll-margin-inline: 0 20px;
  direction: rtl;
}

亲自试一试

CSS 语法

scroll-margin-inline: 0|value|initial|inherit;

属性值

描述
0 默认。元素的默认 scroll-margin-inline 距离。
length

指定以 px、pt、cm 等单位的距离。允许使用负值。

请参阅:CSS 单位

initial 将此属性设置为其默认值。参阅 initial
inherit 从其父元素继承此属性。参阅 inherit

技术细节

默认值: 0
继承性:
动画制作: 不支持。请参阅:动画相关属性
版本: CSS3
JavaScript 语法: object.style.scrollMarginInline="20px"

浏览器支持

表格中的数字表示首个完全支持该属性的浏览器版本。

Chrome Edge Firefox Safari Opera
69.0 79.0 68.0 14.1 56.0

相关页面

参考:CSS direction 属性

参考:CSS scroll-margin-inline-end 属性

参考:CSS scroll-margin-inline-start 属性

参考:CSS scroll-snap-align 属性

参考:CSS scroll-snap-type 属性

参考:CSS writing-mode 属性