scroll-marker-group
scroll-marker-group CSS 屬性控制 滾動容器 元素是否生成 ::scroll-marker-group 偽元素。如果存在,該屬性還指定滾動標記組在預設視覺和 Tab 鍵順序中應放置在滾動組容器內容的 before(之前)或 after(之後)。
注意:要從一個包含一組 <a> 元素的現有元素建立滾動標記組容器,請使用 scroll-target-group 屬性。閱讀有關這兩種屬性的行為差異。
語法
/* Single values */
scroll-marker-group: before;
scroll-marker-group: after;
scroll-marker-group: none;
/* Global values */
scroll-marker-group: inherit;
scroll-marker-group: initial;
scroll-marker-group: revert;
scroll-marker-group: revert-layer;
scroll-marker-group: unset;
值
after-
一個
::scroll-marker-group偽元素作為滾動容器子 DOM 元素的同級元素生成,緊接在它們和任何生成的::scroll-button()偽元素之前。它出現在容器的 Tab 鍵順序和佈局框順序的末尾(但不是 DOM 結構)。 before-
一個
::scroll-marker-group偽元素作為滾動容器子 DOM 元素的同級元素生成,緊接在它們和任何生成的::scroll-button()偽元素之前。滾動標記組出現在容器的 Tab 鍵順序和佈局框順序的開頭。 none-
元素上不會生成
::scroll-marker-group偽元素。這是預設值。
注意:作為可訪問性最佳實踐,將滾動標記組容器的視覺渲染位置與 Tab 鍵順序匹配。當使用應用於 ::scroll-marker-group 的樣式將標記組定位在內容開頭時,使用 before 將其放在 Tab 鍵順序的開頭。當將組定位在內容的末尾時,使用 after 將其放在 Tab 鍵順序的末尾。
正式定義
在資料庫中未找到值!正式語法
scroll-marker-group =
none |
before |
after
示例
請參閱建立 CSS 輪播,瞭解使用 scroll-marker-group 屬性的完整示例。
滾動標記的放置
在此示例中,我們演示了 scroll-marker-group 屬性的三個值。
HTML
我們有一個基本的 HTML <ul> 列表,包含幾個 <li> 列表項。
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
<li>Item 6</li>
<li>Item 7</li>
<li>Item 8</li>
</ul>
CSS
我們透過將 display 設定為 flex,將我們的 <ul> 轉換為輪播,建立一行不換行的 <li> 元素。overflow-x 屬性設定為 auto,這意味著如果專案在 x 軸上溢位其容器,內容將水平滾動。然後我們將 <ul> 轉換為一個 滾動捕捉容器,確保當容器使用 mandatory 的 scroll-snap-type 值滾動時,專案總是捕捉到位。
我們使用 scroll-marker-group 屬性建立一個滾動標記組容器,將組放置在所有內容之後。
ul {
display: flex;
gap: 4vw;
padding-left: 0;
margin: 32px 0;
overflow-x: auto;
overscroll-behavior-x: contain;
scroll-snap-type: x mandatory;
scroll-marker-group: after;
}
接下來,我們使用 flex 屬性將 <li> 元素樣式化為容器寬度的 33%。scroll-snap-align 的 start 值使得當內容滾動時,最左側可見項的左側邊緣捕捉到容器的左邊緣。
li {
list-style-type: none;
background-color: #eeeeee;
flex: 0 0 33%;
scroll-snap-align: start;
text-align: center;
line-height: 5;
}
然後我們使用 ::scroll-marker 偽元素為每個列表項建立一個帶有紅色邊框的正方形標記,並對 ::scroll-marker-group 偽元素應用樣式,以將滾動標記排成一行,每個標記之間有 0.2em 的間隙。
li::scroll-marker {
content: " ";
border: 1px solid red;
height: 1em;
width: 1em;
}
::scroll-marker-group {
display: flex;
gap: 0.2em;
}
最後,為確保良好的使用者體驗,我們使用 :target-current 偽類定位當前滾動元素的標記,並將其樣式與其他標記不同。
::scroll-marker:target-current {
background: red;
}
結果
注意滾動標記組容器的放置位置。檢視 before 與 after 的鍵盤 Tab 鍵順序有何不同,並注意當值設定為 none 時組如何消失。
規範
| 規範 |
|---|
| CSS Overflow Module Level 5 # scroll-marker-group-property |
瀏覽器相容性
載入中…
另見
scroll-target-group::scroll-button()::scroll-marker-group::scroll-marker:target-current- 建立 CSS 輪播
- CSS overflow 模組
- CSS 輪播庫 via chrome.dev (2025)