ã°ãªããã¬ã¤ã¢ã¦ãã¨ã¢ã¯ã»ã·ããªãã£
HTML ã¯ãæå³ã¥ããæç¢ºã§ãããæ§é åãããææ¸ã使ãããã¦ã§ããµã¤ãã®ã³ã³ãã³ã層ã§ããCSS ã¯ãã¬ã¼ã³ãã¼ã·ã§ã³å±¤ã§ãããCSS ãé©ç¨ãã¦ãã³ã³ãã³ãã®ã¬ã¤ã¢ã¦ããªã©ã使ãã¾ãã2 次å ã°ãªããæ§é ã¯ãCSS ã°ãªããã¬ã¤ã¢ã¦ã ã使ç¨ãã¦å®ç¾©ããã¾ãã
ç¾è¡ã® HTML 㨠CSS ã¯ãæå³ã¥ããæç¢ºã§ã¢ã¯ã»ã·ããªãã£ã®é«ãã³ã³ãã³ãããã¶ã¤ã³ã使ã§ããããã«è¨è¨ããã¦ãã¾ãããã°ãªããã使ç¨ããã¨ãã¢ã¯ã»ã·ããªãã£ã«é¢ãã使ä¸ã®åé¡ãçºçããå¯è½æ§ãããã¾ãããã®è¨äºã§ã¯ãçºçããå¯è½æ§ã®ããåé¡ã¨ããããåé¿ããæ¹æ³ãè¦ã¦ããã¾ãã
CSS ã°ãªããã¬ã¤ã¢ã¦ãã«ãããä¸¦ã¹æ¿ã
ãããã®ã¬ã¤ãã§ã¯ãCSS ã°ãªããã¬ã¤ã¢ã¦ãã使ç¨ããã¨ãã°ãªãããã³ãã¬ã¼ãé åã®ç·ãã¼ã¹ã®é
ç½®ã使ç¨ãã¦ã¢ã¤ãã ã®ä½ç½®ãæå®ãããã¼ã¸ã³ã³ãã³ãã®é åºã夿´ã§ãããã¨ããã§ã«èª¬æãã¾ããããã®é
ç½®ã¯ãã½ã¼ã¹å
ã®ã¢ã¤ãã ã®ä½ç½®ãèæ
®ãããã¨ãªãè¡ããã¨ãã§ãã¾ããã¾ããã¢ã¤ãã ã®èªåé
ç½®ã夿´ã§ãã order ããããã£ãããã¾ããgrid-auto-flow ããããã£ã«ã¯ dense å¤ããããDOM ã®é åºããã¢ã¤ãã ãè¦è¦çã«åãåºããã¨ãã§ãã¾ãã
CSS ã°ãªããã¬ã¤ã¢ã¦ãã®ä»æ§æ¸ã«ã¯ãä¸¦ã¹æ¿ãã¨ã¢ã¯ã»ã·ããªãã£ã®ç« ãå«ã¾ãã¦ãã¾ãããã®ç« ã®åé ã§ã¯ãã°ãªããã¬ã¤ã¢ã¦ãã使ç¨ãã¦ã³ã³ãã³ããè¦è¦çã«ä¸¦ã¹æ¿ããããå ´åã«ããã©ã¦ã¶ã¼ãã©ã®ããã«åä½ãã¹ããã«ã¤ãã¦è©³ãã説æãã¦ãã¾ãã
ã°ãªããã¬ã¤ã¢ã¦ãã¯ãææ¸ã«ããã¦ä¸¦ã¹æ¿ããè¡ãããã®å¤§ããªåã«ãªãã¾ãããããããããã¯ææ¸ã®ã½ã¼ã¹ã®æ£ããé åºä»ãã®ä»£ç¨ã«ã¯ãªãã¾ããã order ããããã£ã¨ã°ãªããã®é ç½®ã¯ãè¦è¦çã§ãªãã¡ãã£ã¢ï¼é³å£°ãªã©ï¼ã®é åºã«ã¯å½±é¿ãã¾ãããåæ§ã«ãã°ãªããã¢ã¤ãã ãè¦è¦çã«åé ç½®ãã¦ããç´ç·çãªããã²ã¼ã·ã§ã³ã¢ã¼ãï¼ãªã³ã¯ã®å¾ªç°ãªã©ã HTML5 ã® tabindex ãªã©ãåç §ï¼ã®æ¢å®ã®å·¡åé åºã«ã¯å½±é¿ãã¾ããã
ã°ãªããã¬ã¤ã¢ã¦ãã使ç¨ãã¦è¦è¦çã«é åºã夿´ãã¦ããã¹ã¯ãªã¼ã³ãªã¼ãã¼ãªã©ã®é³å£°èªã¿ä¸ãã½ããã§ã³ã³ãã³ããèªã¿ä¸ãã¦ããå ´åã¯ãé ç®ã®é åºã¯å¤ããã¾ãããã¾ããä¸¦ã¹æ¿ãã¦ãã¿ãã®é çªã¯å¤ããã¾ãããã¤ã¾ãããã¼ãã¼ãã使ç¨ãã¦ç§»åãã¦ããã¦ã¼ã¶ã¼ã¯ããµã¤ãå ã®ãªã³ã¯ãã¿ãã§ç§»åãã¦ããæä¸ã«ãã¿ãã®é åºã夿´ãããã¢ã¤ãã ãæ¬¡ã«è¡¨ç¤ºããããããçªç¶ãææ¸ã®ä¸é¨ããä¸é¨ã¸ã¸ã£ã³ããã¦ãã¾ãå¯è½æ§ãããã¨ãããã¨ã§ãã
仿§æ¸ã§ã¯ãä½è ï¼CSSWG ã®ç¨èªã§ã¦ã§ãéçºè ã®ãã¨ï¼ã«å¯¾ãã¦ããã®ãããªä¸¦ã³æ¿ããè¡ããªãããã«è¦åãã¦ãã¾ãã
ä½è ã¯ã
order㨠grid-placement ããããã£ããã³ã³ãã³ãã®è«ççãªä¸¦ã³æ¿ãã§ã¯ãªããè¦è¦çãªä¸¦ã³æ¿ãã«ã®ã¿ä½¿ç¨ããªããã°ãªãã¾ããããããã®æ©è½ã使ã£ã¦è«ççãªä¸¦ã³æ¿ããè¡ãã¹ã¿ã¤ã«ã·ã¼ãã¯ä¸é©åã§ãã
å®éã«ã°ãªããã¬ã¤ã¢ã¦ãã使ã£ã¦ãã¶ã¤ã³ããå ´åãã©ã®ãããªæå³ãããã®ã§ããããã
è¦è¦çãªããããè«ççã§ã¯ãªãä¸¦ã¹æ¿ã
ã°ãªããã¬ã¤ã¢ã¦ãããã¬ãã¯ã¹ããã¯ã¹ã§ä¸¦ã³æ¿ããè¡ã£ã¦ããããã¯ãè¦è¦çãªä¸¦ã³æ¿ããã«éãã¾ãããæ ¹æ¬çãªã½ã¼ã¹ã¯ãé³å£°åæãææ¸ã®ã¿ãé ãªã©ãå¶å¾¡ãããã®ã§ãããããã©ã®ããã«æ©è½ããããä¾ã§èª¬æãã¾ãã
ãã®ä¾ã§ã¯ã5 ã¤ã®ã¢ã¤ãã ãä¿æããã°ãªããããããããããã®ã¢ã¤ãã ã¯ãªã³ã¯ãå«ãã§ãã¾ããã¢ã¤ãã ã¯ãç·ãã¼ã¹ã®é ç½®ããããã£ã使ç¨ãã¦é ç½®ããã¦ãã¾ããããã¯ã¹ 1 ã¯ãã°ãªããã® 2 è¡ç®ã«é ç½®ããã¦ããããããªã¹ãã§ã¯ 4 çªç®ã®ã¢ã¤ãã ã¨ãã¦è¡¨ç¤ºããã¾ããã¿ããã¼ã使ç¨ãã¦ãªã³ã¯ãããã²ã¼ããã¦ããã½ã¼ã¹ã§ã¯ããã¯ã¹ 1 ãæåã«ãããããã¿ãã®é åºã¯ããã¯ã¹ 1 ããå§ã¾ãã¾ãã
.wrapper {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-auto-rows: 100px;
}
.box1 {
grid-column: 1;
grid-row: 2;
}
<div class="wrapper">
<div class="box box1"><a href="">One</a></div>
<div class="box box2"><a href="">Two</a></div>
<div class="box box3"><a href="">Three</a></div>
<div class="box box4"><a href="">Four</a></div>
<div class="box box5"><a href="">Five</a></div>
</div>
仿§æ¸ã«ããã¨ããã®ã·ããªãªã§ã¯ãããã¯ã¹ 1 ããã®ä½ç½®ã§æ¬å½ã«è«ççã«æå³ããªãã¦ãããªããã°ãªããã¬ã¤ã¢ã¦ãã使ã£ã¦ä¸¦ã³æ¿ããã®ã§ã¯ãªãã HTML ã½ã¼ã¹ã«æ»ã£ã¦ããã§å¤æ´ãå ããã¹ãã ã¨ãã¦ãã¾ããããã¯ãè¦è¦çãªä¸¦ã¹æ¿ãã¨è«ççãªä¸¦ã¹æ¿ãã®éããæå³ãã¦ãã¾ããè«ççãªä¸¦ã¹æ¿ãã¯ãææ¸ã®æå³ã¨æ§é ã«ã¨ã£ã¦éè¦ã§ããããã®æ§é ãç¶æããããã«ããªããã°ãªãã¾ããã
ã°ãªããã¬ã¤ã¢ã¦ãã®ã¢ã¯ã»ã·ããªãã£ã¯ã©ã®ããã«èããã°ããã®ã
仿§æ¸ã«ããã¨ãææ¸ãã³ã³ãã³ãã®è«ççãªé åºãç¶æããå¿ è¦ããããã¨ãããã£ã¦ãã¾ãããã¾ãã¾ãªã¦ã¼ã¶ã¼ããã¼ã¸ã®æä½æ¹æ³ã«å¯¾ãã¦ã¢ã¯ã»ã·ããªãã£ã確ä¿ããããã«ã¯ãã©ã®ããã«éçºã«åãçµãã°ããã®ã§ããããã
- æ§é åããããã¢ã¯ã»ã·ãã«ãªææ¸ããå§ãã
-
ã°ãªããã¬ã¤ã¢ã¦ãã§ã¯ã叿ã®ã¬ã¤ã¢ã¦ããå®ç¾ããããã«ææ¸ã½ã¼ã¹ã夿´ããå¿ è¦ãããã¾ããããããã£ã¦ããã¼ã¸ã®åºçºç¹ã¯ãæ§é åãããã¢ã¯ã»ã¹å¯è½ãªææ¸ã§ãªããã°ãªãã¾ãããã°ãªããã¬ã¤ã¢ã¦ãã¯ãç»é¢ãæå°ã®ç«¯æ«ãã«ãé©ããæ§é ãæä¾ãããã¨ãã§ãã¾ããã¦ã¼ã¶ã¼ãã¢ãã¤ã«ã§é·ãææ¸ãã¹ã¯ãã¼ã«ãã¦ããå ´åããã®ã¦ã¼ã¶ã¼ã«ã¨ã£ã¦ã®åªå é ä½ã¯ãã½ã¼ã¹ã®ä¸ã§ä½ãåªå ãã¹ããã«ãã対å¿ãã¾ãã
- ã¬ã¹ãã³ã·ãã§å¿çããã°ãªããã®ä½æ
-
HTML ã§ãã£ããã¨ããææ¸æ§é ãå®ç¾©ãã¦ããã°ãCSS ã使ç¨ãã¦ãã®ä¸ã«ã¬ã¤ã¢ã¦ãã追å ãããã¨ãã§ãã¾ãããããããã¡ãã£ã¢ã¯ã¨ãªã¼ã使ç¨ãã¦ãç»é¢ãµã¤ãºã端æ«ã«å¿ãã¦å¤æ´ãå ãããã大ããªç»é¢ç¨ã«è¿½å ã®åã使ãããªã©ããã§ããããããã§ã°ãªãããã¨ã¦ãå½¹ã«ç«ã¡ã¾ããä¾ãã°ãã¢ãã¤ã«ã®ã½ã¼ã¹ã®é åºã§åªå é ä½ãä¸ããããè¦ç´ ã¯ããã¹ã¯ãããã®ã¬ã¤ã¢ã¦ãã§ã¯ãµã¤ããã¼ã«ç§»åãããã¨ãã§ãã¾ããããã§éè¦ãªã®ã¯ããã¹ããç¶ãããã¨ã§ããè¯ããã¹ãæ¹æ³ã¯ããææ¸ãã¿ãã§å·¡åãã¦ã¿ããã¨ã§ããããã®é çªã¯ã¾ã æå³ãããã§ãããããå¥å¦ãªæ¹æ³ã§ã¬ã¤ã¢ã¦ãã®ä¸çªä¸ããä¸çªä¸ã«é£ã³ç§»ã£ã¦ããªãã確èªãã¦ã¿ã¦ãã ãããããããã§ããã°ãã¬ã¤ã¢ã¦ãã«ã¤ãã¦ä½ã対å¦ããå¿ è¦ãããã¨ãããã¨ã§ãã
- ã½ã¼ã¹ã«æ»ã
-
ãã¶ã¤ã³ããã»ã¹ã®ä¸ã§ãã°ãªããã使ã£ã¦è¦ç´ ã®ä½ç½®ã夿´ããå ´åã¯ãææ¸ã«æ»ã£ã¦è«ççãªé åºã夿´ããå¿ è¦ãããã¾ãã CSS ã°ãªããã¬ã¤ã¢ã¦ãã®è¯ãã¨ããã¯ãã¬ã¤ã¢ã¦ãã«å¤§ããªå¤æ´ãå ããªãã¦ããã½ã¼ã¹å ã®ã¢ã¤ãã ãè«ççãªé åºã«åããã¦ç§»åããããã¨ãã§ãããã¨ã§ããããããè«ççãªé åºãç¶æããããã«ã½ã¼ã¹ã«æ»ã£ã¦æ´æ°ãããã¨ãå¿ããªãããã«ããã®ã¯ãéçºè ã§ããç§ãã¡ã®è²¬ä»»ã§ãã
ã°ãªããã¨ãã¼ã¯ã¢ããã®å¹³å¦åã®å±éºæ§
CSS ã°ãªããã¬ã¤ã¢ã¦ãã CSS ãã¬ãã¯ã¹ããã¯ã¹ã§æ³¨æããªããã°ãªããªãããä¸ã¤ã®åé¡ã¯ããã¼ã¯ã¢ãããå¹³å¦ã«ãããã¨ããèªæã§ããããã¾ã§è¿°ã¹ã¦ããããã«ãã¢ã¤ãã ãã°ãªããã¢ã¤ãã ã«ãªãããã«ã¯ãã°ãªããã³ã³ããã¼ã®ç´æ¥ã®åã§ããå¿
è¦ãããã¾ãããããã£ã¦ãã°ãªããã³ã³ããã¼å
ã« <ul> è¦ç´ ãããå ´åãåè¦ç´ ã® <li> ã§ã¯ãªãããã® ul è¦ç´ ãã°ãªããã¢ã¤ãã ã«ãªãã¾ãã
subgrid ã®å¤ã grid-template-columns 㨠grid-template-rows ã«è¨å®ããã¨ãåé¡ã解決ã§ãã¾ããããã«ãããã°ãªãããã°ãªããã¢ã¤ãã ã«ç¶æ¿ãããããªã¼ã«å¼ãç¶ãããããã«ãªãã¾ãããããã¯ãã°ãªããã¢ã¤ãã ã« display: contents ãè¨å®ããã¨ããã®è¦ç´ ã®åè¦ç´ ãã°ãªããã¢ã¤ãã ã«ãªãã¾ããã¢ã¤ãã ã« display: contents ãè¨å®ããã¨ãé叏使ãããããã¯ã¹ã¯æ¶ããåè¦ç´ ã®ããã¯ã¹ã¯ 1 ã¬ãã«ä¸ã«ä¸ãã£ãããã«ç¾ãã¾ãã
ãã¡ãã¨æ§é åãããææ¸ããå§ãããã¨ã¯ããã®åé¡ãé¿ããã¨ã¦ãè¯ãæ¹æ³ã§ãã
é¢é£æ å ±
- Flexbox & the keyboard navigation disconnect ããã³ (Human After All): Accessibility remix video (Léonie Watson, 2016)
- Grid, content re-ordering and accessibility (CSS-tricks, 2019)
display: contentsis not a CSS reset (Adrian Roselli, 2024)