scroll-target-group
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: ããã¯å®é¨çãªæ©è½ã§ãã
æ¬çªã§ä½¿ç¨ããåã«ãã©ã¦ã¶ã¼äºææ§ä¸è¦§è¡¨ããã§ãã¯ãã¦ãã ããã
scroll-target-group 㯠CSS ã®ããããã£ã§ãè¦ç´ ãã¹ã¯ãã¼ã«ãã¼ã«ã¼ã°ã«ã¼ãã³ã³ããã¼ã§ãããã©ãããæå®ãã¾ãã
æ§æ
/* ãã¼ã¯ã¼ãå¤ */
scroll-target-group: none;
scroll-target-group: auto;
/* ã°ãã¼ãã«å¤ */
scroll-target-group: inherit;
scroll-target-group: initial;
scroll-target-group: revert;
scroll-target-group: revert-layer;
scroll-target-group: unset;
scroll-target-group ããããã£ã¯ã以ä¸ã®ãã¼ã¯ã¼ãå¤ã®ããããã§æå®ãã¾ãã
å¤
解説
è¦ç´ ã« scroll-target-group: auto ãè¨å®ããã¨ããã®è¦ç´ ã¯ã¹ã¯ãã¼ã«ãã¼ã«ã¼ã°ã«ã¼ãã³ã³ããã¼ã¨ãã¦æå®ããã¾ããããã«ããããã¼ã¸ä¸ã®è¦ç´ éï¼ã«ã«ã¼ã»ã«ã¢ã¤ãã ãè¨äºã»ã¯ã·ã§ã³ãªã©ï¼ãç§»åã§ããä¸é£ã®ããã²ã¼ã·ã§ã³é
ç®ãã°ã«ã¼ãåãããç¾å¨è¡¨ç¤ºããã¦ããè¦ç´ ã強調表示ããã¾ãã
ã³ã³ããã¼å
ã®ãã©ã°ã¡ã³ãèå¥åãæã¤ <a> è¦ç´ ã¯ãèªåçã«ã¹ã¯ãã¼ã«ãã¼ã«ã¼ã¨ãã¦è¨å®ããã¾ããç¾å¨è¡¨ç¤ºããã¦ããã¹ã¯ãã¼ã«ã¿ã¼ã²ãããæã¤ã¢ã³ã«ã¼è¦ç´ ã¯ã:target-current æ¬ä¼¼ã¯ã©ã¹ãä»ãã¦ã¹ã¿ã¤ã«è¨å®ãå¯è½ã§ãã
scroll-target-group 㨠scroll-marker-group ã®éã
scroll-target-group ã使ç¨ãã¦ä½æãããã¹ã¯ãã¼ã«ãã¼ã«ã¼ã°ã«ã¼ãã³ã³ããã¼ã¯ãscroll-marker-group ããããã£ã使ç¨ãã¦ä½æããããã®ã¨ããä¼¼ã¦ããåä½ããã¾ãããããã¤ãã®éããããã¾ãã
scroll-target-groupã§ã¯ãç¬èªã®ãã¼ã¯ã¢ããã使ãã¦ã¹ã¯ãã¼ã«ãã¼ã«ã¼ã°ã«ã¼ãã³ã³ããã¼ã¨ã¹ã¯ãã¼ã«ãã¼ã«ã¼ã表ãå¿ è¦ãããã®ã«å¯¾ããscroll-marker-groupã¯ã³ã³ããã¼ (::scroll-marker-group) ã¨ãã¼ã«ã¼ï¼::scroll-markerã® 1 ã¤ä»¥ä¸ã®ã¤ã³ã¹ã¿ã³ã¹ï¼ã表ç¾ããä¸é£ã®æ¬ä¼¼è¦ç´ ãèªåçã«ä½æãã¾ãã ãããã¯èªåçã«ãæå¾ ãããããã²ã¼ã·ã§ã³ãçæãããã¹ã¯ãã¼ã«ã³ã³ããã¼ã«é¢é£ä»ãã¾ããscroll-marker-groupã使ç¨ããã¨ãèªåèªèº«ã§ãã¼ã¯ã¢ããã使ããå¿ è¦ããªããããããè¿ éã«è¨å®ã§ãã¾ãããã ããç¬èªã®ãã¼ã¯ã¢ããã使ããscroll-target-groupãä»ãã¦ã¹ã¯ãã¼ã«ãã¼ã«ã¼ã°ã«ã¼ãã®ã³ã³ããã¼ã¨ãã¦è¨å®ãããã¨ã§ãããé«åº¦ãªå¶å¾¡ã¨æè»æ§ãå¾ããã¾ããscroll-target-groupã§æå®ãããã¹ã¯ãã¼ã«ãã¼ã«ã¼ã¯ç¹å¥ãªããã²ã¼ã·ã§ã³åä½ãæã¡ã¾ããããscroll-marker-groupã§çæããããã¼ã«ã¼ã«ã¯èªåçã«tablist/tabã®æå³ã¥ããé©ç¨ããã¾ããããã¯ãã¿ãé åºã«ããã¦åä¸ã®ã¢ã¤ãã ã¨åæ§ã«æ¯ãèããã¦ã¼ã¶ã¼ãç¢å°ãã¼ã§ã¹ã¯ãã¼ã«ãã¼ã«ã¼éãç§»åãããã¨ãå¯è½ã§ãããã¨ãæå³ãã¾ããç¹°ãè¿ãã«ãªãã¾ãããscroll-marker-groupã¯æç¨ãªããã©ã«ãåä½ãæä¾ãã¾ãããscroll-target-groupã§æå®ããããã¼ã«ã¼ã«å¯¾ãã¦ã¯ã代æ¿ã®æå³ãåä½ãæè»ã«æä¾ãããã¨ãå¯è½ã§ãã
å ¬å¼å®ç¾©
| åæå¤ | none |
|---|---|
| é©ç¨å¯¾è±¡ | ãã¹ã¦ã®è¦ç´ |
| ç¶æ¿ | ãªã |
| è¨ç®å¤ | æå®éã |
| ã¢ãã¡ã¼ã·ã§ã³ã®ç¨®é¡ | 颿£å¤ |
形弿æ³
scroll-target-group =
none |
auto
ä¾
>åºæ¬ç㪠scroll-target-group ã®ä½¿ç¨
ãã®ä¾ã¯ããã¾ãã¾ãªã»ã¯ã·ã§ã³ã«ãªã³ã¯ããç®æ¬¡ãå«ããã¼ã¸ã表示ããã¦ãã¾ãã
HTML
ãã®ãã¼ã¯ã¢ããã¯ãã³ã³ãã³ããå«ãä¸é£ã® <section> è¦ç´ ã¨ããããé åºä»ããªã¹ã (<ol>/<li>) ããã³ <a> è¦ç´ ãç¨ãã¦ä½æããç®æ¬¡ãè¨å®ãã¦ãã¾ãã
<nav id="toc">
<ol>
<li><a href="#intro">ã¾ããã</a></li>
<li><a href="#ch1">第 1 ç« </a></li>
<li><a href="#ch2">第 2 ç« </a></li>
<li><a href="#ch3">第 3 ç« </a></li>
<li><a href="#ch4">第 4 ç« </a></li>
</ol>
</nav>
<section id="intro" class="chapter">
<h1>Prose of the century</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus
aliquam dolor, eu lacinia lorem placerat vulputate. Duis felis orci,
pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at
ultricies tellus laoreet sit amet.
</p>
</section>
<section id="ch1" class="chapter">
<h2>第 1 ç« </h2>
<!-- ... -->
</section>
<section id="ch2" class="chapter">
<h2>第 2 ç« </h2>
<!-- ... -->
</section>
<!-- ... -->
CSS
ç°¡æ½ããéè¦ããã¹ã¿ã¤ã«è¨å®ã®å¤§é¨åã¯çç¥ãã¦ãã¾ãããã®ä¾ã§æãéè¦ãªã®ã¯ãscroll-target-group: auto ã <ol> ã«è¨å®ããã¹ã¯ãã¼ã«ãã¼ã«ã¼ã°ã«ã¼ãã³ã³ããã¼ã¨ãã¦æ©è½ããããã©ã¦ã¶ã¼ã®ã¢ã«ã´ãªãºã ãèµ·åãã¦ããç¹ã§ããããã«ãããã©ã® <a> è¦ç´ ã :target-currentï¼ã¤ã¾ããæå®ããããªã³ã¯ã®ã¿ã¼ã²ããï¼ã§ããããéæè¨ç®ãã¾ããæ¬¡ã«ã:target-current æ¬ä¼¼ã¯ã©ã¹ã red ã® color ã§ã¹ã¿ã¤ã«è¨å®ãã¦ãæç¢ºã«ç®ç«ã¤ããã«ãã¦ãã¾ãã
ol {
scroll-target-group: auto;
}
:target-current {
color: red;
}
ä¾
ãªã³ã¯ãã¢ã¯ãã£ãã«ãããã¹ã¯ãã¼ã«ããããã¦æä½ãã¦ã¿ã¦ãã ãããããããã®å ´åã赤ããã¤ã©ã¤ãããªã³ã¯éãç§»åãããç¾å¨ç¤ºããã¦ããç¯ã¨ä¸è´ããæ§åã確èªã§ãã¾ãã
scroll-target-group ã®ã¹ã¯ãã¼ã«ãã¼ã«ã¼ã®ãã CSS ã«ã«ã¼ã»ã«
ãã®ä¾ã§ã¯ãscroll-target-group ã使ç¨ã㦠CSS ã«ã«ã¼ã»ã«ã®ã¹ã¯ãã¼ã«ãã¼ã«ã¼ã使ããæ¹æ³ã示ãã¦ãã¾ãããã®ä¾ã®ã³ã¼ãã¯ãåä¸ãã¼ã¸ã®ã«ã«ã¼ã»ã«ã®ä¾ã¨ä¼¼ã¦ãã¾ããä¸è¨ã§ã¯ããã®éãã«ã¤ãã¦èª¬æãã¾ãã
HTML
ãã®ãã¼ã¯ã¢ããã§ã¯ãããããã®ãã¼ã¸ãå®ç¾©ãããªã¹ãã¢ã¤ãã ã«IDãè¨å®ããã¦ãããé åºä»ããªã¹ãã追å ããã¦ãã¾ãããã®ãªã¹ãã CSS ã使ç¨ãã¦ã¹ã¯ãã¼ã«ãã¼ã«ã¼ã°ã«ã¼ãã³ã³ããã¼ã«å¤æãã¾ãã
<h1>åä¸ãã¼ã¸è¡¨ç¤ºã®ã«ã«ã¼ã»ã«</h1>
<ul>
<li id="page1">
<h2>ãã¼ã¸ 1</h2>
</li>
<li id="page2">
<h2>ãã¼ã¸ 2</h2>
</li>
<li id="page3">
<h2>ãã¼ã¸ 3</h2>
</li>
<li id="page4">
<h2>ãã¼ã¸ 4</h2>
</li>
</ul>
<ol>
<li><a href="#page1">1</a></li>
<li><a href="#page2">2</a></li>
<li><a href="#page3">3</a></li>
<li><a href="#page4">4</a></li>
</ol>
CSS
ã¹ã¯ãã¼ã«ãã¼ã«ã¼ã°ã«ã¼ãã³ã³ããã¼ã¨ã¹ã¯ãã¼ã«ãã¼ã«ã¼ã¯ãscroll-target-group ã <ol> è¦ç´ ã«è¨å®ãããã¨ã§ä½æãã¾ãããããã®ã¹ã¿ã¤ã«è¨å®ã«é¢ããæ®ãã®ã³ã¼ãã¯ã::scroll-marker-group ããã³ ::scroll-marker æ¬ä¼¼è¦ç´ ã§ã¯ãªããèªèº«ã®é¸æè¦ç´ ï¼<ol> ã <a>ï¼ã対象ã¨ãã¦ããç¹ãé¤ããããä¼¼ã¦ããã
:target-currentãa:hoverãa:focus ã®åç¶æ
ã«ã¹ã¿ã¤ã«ãè¨å®ããç¾å¨ç¤ºããã¦ãããã¼ã¸ãããã¼/ãã©ã¼ã«ã¹ããã¦ãããªã³ã¯ã示ãã¨ã³ã¼ãã¯å®æã§ãã
ol {
position: absolute;
position-anchor: --my-carousel;
top: calc(anchor(bottom) - 90px);
justify-self: anchor-center;
display: flex;
justify-content: center;
gap: 20px;
list-style-type: none;
padding: 0;
scroll-target-group: auto;
}
ol a {
width: 28px;
height: 28px;
display: inline-block;
text-align: center;
text-decoration: none;
padding-top: 4px;
color: black;
background-color: transparent;
border: 2px solid black;
border-radius: 50%;
}
ol a:hover,
ol a:focus,
:target-current {
background-color: black;
color: white;
}
çµæ
3 ã¤ã®æ¹æ³ã§ããã²ã¼ã·ã§ã³ã試ãã¦ã¿ã¦ãã ãããã¹ã¯ãã¼ã«ãã¼ã«ã¼ãªã³ã¯ã®èµ·åãæ°´å¹³ã¹ã¯ãã¼ã«ã両å´ã®ã¹ã¯ãã¼ã«ãã¿ã³ãæ¼ããã¨ã§ãããããã®å ´åãããã¤ã©ã¤ãããªã³ã¯éãç§»åããç¾å¨ç¤ºããã¦ããã»ã¯ã·ã§ã³ã¨ä¸è´ãããã©ããã確èªã§ããã§ãããã
仿§æ¸
| Specification |
|---|
| CSS Overflow Module Level 5> # scroll-target-group> |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
scroll-marker-group::scroll-marker-groupã¨::scroll-markeræ¬ä¼¼è¦ç´:target-current,:target-before,:target-afteræ¬ä¼¼ã¯ã©ã¹- CSS ã«ããã«ã«ã¼ã»ã«ã®ä½æ
- CSS ãªã¼ãã¼ããã¼ã¢ã¸ã¥ã¼ã«