ãã¼ã¸åãæ¿ã
ãã®æç帳ã®ãã¿ã¼ã³ã¯ããã¼ã¸åãæ¿ã (pagination) ã表示ããããã«ä½¿ç¨ãããããã²ã¼ã·ã§ã³ã®ãã¿ã¼ã³ã示ããã¦ã¼ã¶ã¼ã¯æ¤ç´¢çµæãªã©ã®ã³ã³ãã³ãã®ãã¼ã¸éãç§»åã§ãã¾ãã

è¦ä»¶
ã¹ã¯ãªã¼ã³ãªã¼ãã¼ã使ç¨ãã¦ãã人ããã¼ã¸åãæ¿ãã§ãããã¨ãçè§£ã§ããããã«ããããã«ãé
ç®ã <nav> è¦ç´ å
ã®ãªã¹ãã¨ãã¦ãã¼ã¯ã¢ããããCSS ã使ç¨ãã¦ã¬ã¤ã¢ã¦ããè¦è¦çã« 1 è¡ã§è¡¨ç¤ºãã¾ãã
é常ããã¼ã¸åãæ¿ãã®ã³ã³ãã¼ãã³ãã¯ã³ã³ãã³ãã®ä¸å´ã«ãããæ°´å¹³æ¹åã®ä¸å¤®ã«é ç½®ããã¾ãã
ã¬ã·ã
以ä¸ã®ã³ã¼ããããã¯ã® "Play" ãã¯ãªãã¯ããã¨ããã®ä¾ã MDN Playground ã§éãã¾ãã
<nav aria-label="pagination">
<ul class="pagination">
<li>
<a href="">
<span aria-hidden="true">«</span>
<span class="visuallyhidden">åã®ãã¼ã¸</span>
</a>
</li>
<li>
<a href=""><span class="visuallyhidden">ãã¼ã¸ </span>1</a>
</li>
<li>
<a href="" aria-current="page">
<span class="visuallyhidden">ãã¼ã¸ </span>2
</a>
</li>
<li>
<a href=""> <span class="visuallyhidden">ãã¼ã¸ </span>3 </a>
</li>
<li>
<a href=""> <span class="visuallyhidden">ãã¼ã¸ </span>4 </a>
</li>
<li>
<a href="">
<span class="visuallyhidden">å¾ã®ãã¼ã¸</span
><span aria-hidden="true">»</span>
</a>
</li>
</ul>
</nav>
.visuallyhidden {
border: 0;
clip: rect(0 0 0 0);
height: auto;
margin: 0;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
white-space: nowrap;
}
nav {
border-top: 1px solid #eeeeee;
margin-top: 1em;
padding-top: 0.5em;
font: 1.2em sans-serif;
display: flex;
justify-content: center;
}
.pagination {
list-style: none;
margin: 0;
padding: 0;
display: flex;
}
.pagination li {
margin: 0 1px;
}
.pagination a {
display: block;
padding: 0.5em 1em;
border: 1px solid #999999;
border-radius: 0.2em;
text-decoration: none;
}
.pagination a[aria-current="page"] {
background-color: #333333;
color: white;
}
鏿ãããã®
ãã®ãã¿ã¼ã³ã¯ããã¬ãã¯ã¹ããã¯ã¹ã使ç¨ãã¦ã¬ã¤ã¢ã¦ãããã¦ãã¾ã â 䏿¹ã®ãã¬ãã¯ã¹ã³ã³ããã¼ã¯å¥ã®ãã¬ãã¯ã¹ã³ã³ããã¼ã®ä¸ã«ãã¹ãããã¦ãã¾ãã <nav> è¦ç´ ã¯ãjustify-content ããããã£ã使ç¨ãã¦ãªã¹ããä¸å¤®ã«é
ç½®ã§ããããã«ããã¬ãã¯ã¹ã³ã³ããã¼ã¨ãã¦æå®ããã¦ãã¾ãã
ãªã¹ããã®ãã®ããã¬ãã¯ã¹ã³ã³ããã¼ã¨ãªã£ã¦ãã¢ã¤ãã ãä¸åã«ä¸¦ã¹ã¾ããã¢ã¤ãã ã®ç©ºéã空ããã«ã¯ããã¬ãã¯ã¹ã¢ã¤ãã ã« margin ã使ç¨ãããããã¬ãã¯ã¹ã³ã³ããã¼ã« gap ã追å ããããã¦ãã ããã
.pagination {
list-style: none;
margin: 0;
padding: 0;
display: flex;
gap: 2px;
}
ã¢ã¯ã»ã·ããªãã£ã®èæ ®
ã¹ã¯ãªã¼ã³ãªã¼ãã¼ã使ç¨ãã¦ãã人ãããã®ããã²ã¼ã·ã§ã³ãä½ãããã®ããããã¦ãªã³ã¯ãã¯ãªãã¯ããã¨ãã«ã©ãã«è¡ãã®ãã確å®ã«çè§£ã§ããããã«ãããã§ãã ãããæå©ãããããã«ã aria-label="pagination" ã <nav> è¦ç´ ã«è¿½å ãã¾ããã
ã¹ã¯ãªã¼ã³ãªã¼ãã¼ã«ãã£ã¦èªã¿åããããè¦è¦çã«é ããã¦ãã追å ã®ã³ã³ãã³ãã追å ãããã¼ã¸ã³ã°ç¢å°ã« aria-hidden 屿§ãè¨å®ãã¾ããã
ãã®ããã¥ã¡ã³ãã®æå¾ã«ãããé¢é£æ å ±ãã®ç¯ã«ã¯ãé¢é£ããã¢ã¯ã»ã·ããªãã£ã®ãããã¯ã¸ã®ãªã³ã¯ãããã¾ãã
é¢é£æ å ±
justify-contentãgap- ARIA ãç¥ã: 'Hidden' 対 'None'ï¼è±èªï¼ (2018)
- ã¹ã¯ãªã¼ã³ãªã¼ãã¼ã®ã¦ã¼ã¶ã¼ã«ã¯è¦ããªãã³ã³ãã³ãï¼è±èªï¼ (2020)
- ã¢ã¯ã»ã·ããªãã£ãæèãã CSS ã®æ¸ãæ¹ï¼è±èªï¼ (2017)ï¼æ¥æ¬èªè¨³ï¼
- ã¢ã¯ã»ã·ããªãã£ï¼a11yï¼ã¹ã¿ã¤ã«ã¬ã¤ã: ãã¼ã¸åãæ¿ãï¼è±èªï¼