CSS - scroll-margin 属性



CSS scroll-margin 属性

CSS scroll-margin 是一个简写属性,用于定义元素在捕捉区域内的边距。

滚动捕捉区域是滚动容器中元素会在用户滚动时捕捉到的区域。

可能的值

  • <length> − 相对于滚动容器相应边缘的偏移量。长度值是一个数值,例如 px、em。

应用于

所有 HTML 元素。

DOM 语法

object.style.scrollMargin = "length";

下图演示了 scroll margin 结构,仅供参考

scroll margin structure

CSS Scroll Margin - 零值

以下示例演示了如何通过将 scroll-margin 属性设置为 0 来移除滚动部分周围的空格:

<html>
<head>
<style>
   .scroll-container {
      width: 300px;
      height: 200px;
      overflow-x: hidden;
      overflow-y: scroll;
      scroll-snap-type: y mandatory;
   }
   .scrolling-section1,
   .scrolling-section2,
   .scrolling-section3 {
      width: 300px;
      height: 200px;
      scroll-snap-align: start;
   }
   .scrolling-section1 {
      background-color: rgb(220, 235, 153);
      scroll-margin: 0;
   }
   .scrolling-section2 {
      background-color: rgb(230, 173, 218);
      scroll-margin: 0;
   }
   .scrolling-section3 {
      background-color: rgb(119, 224, 210);
      scroll-margin: 0;
   }
</style>
</head>
<body>
   <h3>Scroll the content using the scrollbar arrows to see the effect.</h3>
   <div class="scroll-container">
      <div class="scrolling-section1">scroll-margin: 0</div>
      <div class="scrolling-section2">scroll-margin: 0</div>
      <div class="scrolling-section3">scroll-margin: 0</div>
   </div>
</body>
</html>

CSS Scroll Margin - 长度值

以下示例演示了如何使用 CSS scroll-margin 属性。滚动内容时,您会注意到元素之间的间距发生了变化:

<html>
<head>
<style>
   .scroll-container {
      width: 300px;
      height: 200px;
      overflow-x: hidden;
      overflow-y: scroll;
      scroll-snap-type: y mandatory;
   }
   .scrolling-section1,
   .scrolling-section2,
   .scrolling-section3 {
      width: 300px;
      height: 200px;
      scroll-snap-align: start;
   }
   .scrolling-section1 {
      background-color: rgb(220, 235, 153);
      scroll-margin: 20px;
   }
   .scrolling-section2 {
      background-color: rgb(230, 173, 218);
      scroll-margin: 2em;
   }
   .scrolling-section3 {
      background-color: rgb(119, 224, 210);
      scroll-margin: 10px;
   }
</style>
</head>
<body>
   <h3>Scroll the content using the scrollbar arrows to see the effect.</h3>
   <div class="scroll-container">
      <div class="scrolling-section1">scroll-margin: 20px</div>
      <div class="scrolling-section2">scroll-margin: 2em</div>
      <div class="scrolling-section3">scroll-margin: 10px</div>
   </div>
</body>
</html>

CSS scroll-margin - 相关属性

以下是 scroll-margin 的 CSS 属性列表

属性
scroll-margin-top 设置元素滚动捕捉区域的顶部边距。
scroll-margin-bottom 设置元素滚动捕捉区域的底部边距。
scroll-margin-left 设置元素滚动捕捉区域的左边距。
scroll-margin-right 设置元素滚动捕捉区域的右边距。
scroll-margin-block 指定元素在垂直滚动方向上的边距。
scroll-margin-inline 指定元素在内联维度上的滚动边距。
广告