CSSã®ãã¹ãŠã®é©ãã¹ãæ©èœã«ãããããããããŒãžã¬ã€ã¢ãŠãã®åºæ¬ååãå®è£ ããã«ã¯ååã§ã¯ãããŸããã ãã ããããåçãªããŒãžãäœæããããã®è¿œå æ©èœã¯ãã§ã«è¡šç€ºããå§ããŠããŸãã
æ°å¹Žã®çŽæã®åŸãCSS3ã¯ããããã¹ã¿ã€ã«ã«åªããŸããã 圌ã¯äžé£ã®æ°ããããŒã«ãæŠåšåº«ã«è¿œå ããè§ã®äžžã¿ãã°ã©ããŒã·ã§ã³ãéæ床ãèŠçŽ ã®å€æãã¢ãã¡ãŒã·ã§ã³ãªã©ãæäŸããŸããã ä»ã«äœãç§ãã¡ã®ç®ãåã°ããããšãã§ããŸããïŒ
次ã®CSSã®åé¡ã¯ããŒã¯ã¢ããã§ãã ãããŸã§ãæµ®åãããã¯ãè² ã®ã€ã³ãã³ãã䜿çšããçžå¯Ÿçãªäœçœ®ãšããªãã¯ã䜿çšããŠãããå®è¡ããŠããŸãããããããå®è£ ããã®ã¯é£ãããçµæã¯æšæºã®2åãŸãã¯3åã®ããŒã¯ã¢ããã®ããã«èŠããŸããã
W3Cã³ã³ãœãŒã·ã¢ã ãšãã©ãŠã¶ã¡ãŒã«ãŒã¯ãããã®åé¡ãèªèããŠãããå€ãã®ãœãªã¥ãŒã·ã§ã³ã«åãçµãã§ããŸãã ãã®äžã§ããªãŒããŒã¯ïŒåœç¶ã®ããšã§ããïŒInternet Explorerã§ãã IE10ã¯ãCSSããŒã¯ã¢ããã®æ°æ代ã®å é§ããšãªãã以åã¯éæã§ããªãã£ãæ©èœã䜿çšããŠãåªãããã€ãããã¯ã§é åçãªãµã€ããäœæã§ããããã«ãªããŸãã
ãã®èšäºã§ã¯ãèè ã¯ããã§ã«å®è£ ãããŠãããã®ããçŽç²ã«çè«çãªãã®ãŸã§ãéçºã®åã ã®æ®µéã§äœ¿çšãããããŸããŸãªããŒã¯ã¢ããæ¹æ³ãæ€èšããŸãã ïŒå°ãªããšãçŸåšã®åœ¢åŒã§ã¯ïŒå°æ¥çã«ãã¹ãŠã䜿çšããããšã¯ã§ããªããããããŸãããããããã®ã¡ãœãããèŠãŠCSSããŒã¯ã¢ããã®å°æ¥ãç解ãã䟡å€ããããŸãã
ã¹ããŒã«ãŒ
è€æ°ã®åéã§ã³ã³ãã³ããé åžããããšã¯å°å·ã®äž»èŠãªèŠçŽ ã§ããã CSS Multi-Columnsã¢ãžã¥ãŒã«ã¯Webã«åãæ©äŒãæäŸããŸãã åãäœæããã«ã¯ã2ã€ã®ã¡ãœããã䜿çšã§ããŸããåã¡ãœããã¯ïŒèŠªèŠçŽ ã®ïŒç°ãªãããããã£ã䜿çšããŸãã æåã®ã±ãŒã¹ã§ã¯ãåã®æ°ãçŽæ¥èšå®ããããã®äžã«ããã¹ããé åžããå¿ èŠããããŸãã ããšãã°ã次ã®ã³ãŒãã¯åãå¹ ã®3ã€ã®åãäœæãã芪èŠçŽ ã®å¹ å šäœãåããŸãã
div { column-count: 3; }
2çªç®ã®æ¹æ³ã§ã¯ãåã®å¹ ãåºå®ããã芪èŠçŽ ã®å¹ ãæºãããŸã§åãç¹°ãè¿ãããŸãã ãã®äŸã§ã¯ãåã®å¹ ã140pxã«èšå®ãããŠããŸããã€ãŸãã800pxå¹ ã®ãããã¯ã«5ã€ã®åã衚瀺ãããŸãã
div { column-width: 140px; }
ããã©ã«ãã§ã¯ãåéã®ã®ã£ããã¯1emã§ããã column-gapããããã£ã䜿çšããŠå€æŽã§ããŸãã column-ruleã䜿çšããŠåã®éã«åå²ç·ãé 眮ããããšãã§ããŸããæ§æã¯borderããããã£ã«äŒŒãŠããŸãã 以äžã®ã³ãŒãã¯ãå¹ ã2ãã¯ã»ã«ã®ç Žç·ãäœæããåéã®ã€ã³ãã³ãã28ãã¯ã»ã«ã«èšå®ããŸãïŒã»ãã¬ãŒã¿ãŒã¯äžå€®ã«é 眮ãããŸãïŒã
div { column-gap: 28px; column-rule: 2px dotted #ccc; }
çµæã確èªãããå Žåã¯ãCSSåã®å®è£ ã®äŸãã芧ãã ããã 3ã€ã®åã衚瀺ããã«ã¯ãFirefoxãChromeãSafariãOpera 11.1ãŸãã¯IE10 Platform Preview ïŒIE10PPïŒã䜿çšããå¿ èŠããããŸãã ãŸãã¯ã以äžã®ã¹ã¯ãªãŒã³ã·ã§ãããã芧ãã ããã

åã䜿çšããŠããŸããŸãªããšãã§ããŸãã ãããã®å®éçãªäœ¿çšäŸã¯ãWikipedia ã®notesã»ã¯ã·ã§ã³ã«ããã column-countã䜿çšãããŠããŸãã Firefoxã§ã¯ããã«ãã«ã©ã ã¯-moz-ãã¬ãã£ãã¯ã¹ã§å®è£ ãããChromeããã³Safariã§ã¯-webkit-ãã¬ãã£ãã¯ã¹ã§ãOpera 11.1ããã³IE10PPã§ã¯ãã¬ãã£ãã¯ã¹ãªãã§å®è£ ãããŸãã
ãã¬ãã·ãã«ããã¯ã¹
ãã¬ãã·ãã«ããã¯ã¹ã¬ã€ã¢ãŠã ïŒFlexBoxïŒã¢ãžã¥ãŒã«ã䜿çšãããšãé«ããšå¹ ã®å€ãèšç®ããå¿ èŠãªãã芪å ã®èŠçŽ ã®ãµã€ãºãèªåçã«å€æŽã§ããŸãã ããšãã°ã2ã€ã®åããããäž¡æ¹ã®ãããã¯ã®å¹ ãåãã«ãªãããã«ã芪ïŒå¹ ãç°ãªãïŒãåããããšããŸãã ããã¯ããŒã»ã³ãå€ã䜿çšããŠå®è¡ã§ããŸãããå¢çç·ãšã€ã³ãã³ãã®å Žåãã¿ã¹ã¯ã¯å°é£ã«ãªããŸãã FlexBoxã䜿çšãããœãªã¥ãŒã·ã§ã³ã¯ã¯ããã«ç°¡åã§ãã
.parent { display: box; } .child-one, .child-two { box-flex: 1; }
ãã®ã³ãŒãã¯ã2ã€ã®åã芪ã®å åŽã«æ°Žå¹³ã«é 眮ããããããåãå¹ ã«ããŸãã å®éã«ã¯ã box-flexå€ã¯å²åãšããŠæ©èœãã空ã®é åãèæ ®ããããã®å€ã®å²åã§åã«åé ãããŸãã å±æ©ã«atããŠãããã®ãç解ããã«ã¯ã次ã®ã³ãŒããæ€èšããŠãã ããã
.child-one { box-flex: 1; } .child-two { box-flex: 2; }
2ã€ã®èŠçŽ ã芪ã®å éšã«åæ£ããããšã .child-oneã®åãã¯ã»ã«ããšã«.child-twoã®å¹ ã2ãã¯ã»ã«å¢å ããŸãã 芪ã®å¹ ã260ãã¯ã»ã«ã§ãååã100ãã¯ã»ã«ã®å Žåãæ®ãã®60ãã¯ã»ã«ã¯.child-twoãš.child-oneã® 20px ãå²ãåœãŠãããããã«åé ãããŸãã
ãã®æŠå¿µã¯ã FlexBoxãäŸãšããŠäœ¿çšãããšç解ãããããªããŸã ïŒFirefoxãChromeãSafariããŸãã¯IE10PPãå¿ èŠã§ãïŒã ãã©ãŠã¶ãŠã£ã³ããŠã®ãµã€ãºãå€æŽããŠãã¹ã±ãŒãªã³ã°ã«æ³šæããŠãã ããã
èŠçŽ ã®åçãªãµã€ãºå€æŽãšåæ§ã«ãFlexBoxã§ã¯ããããã£ã芪ã«é©çšããŠã空çœã®ååžãå¶åŸ¡ããåèŠçŽ ã®äœçœ®ãèšå®ããããšãã§ããŸãã box-alignããããã£ã¯åã®å¹ ã«åœ±é¿ãããã¢ã®box-packããããã£ã¯åã®é«ãã«åœ±é¿ããŸãã 以äžã«ããããã©ã®ããã«æ©èœãããã瀺ããŸãã
.parent { box-align: center; box-pack: center; display: box; height: 200px; width: 200px; } .child { box-flex: 0; height: 100px; width: 100px; }
.childèŠçŽ ã®box-flexããããã£å€ã¯0ã§ãããããåçã«ãµã€ãºå€æŽãããããšã¯ãããŸããããŸãã芪èŠçŽ ã®é«ããšå¹ ã®ååã«ãªãã box-alignãšç®±ãã㯠ã ã€ãŸããåãããã¯ã¯åçŽæ¹åãšæ°Žå¹³æ¹åã®äžå€®ã«é 眮ãããŸãã

çŸæç¹ã§ã¯ãFlexBoxã¯FirefoxãChromeãSafariãIE10PPã«é©åãªãã©ãŠã¶ãŒãã¬ãã£ãã¯ã¹ïŒ -moz- ã- webkit- ãããã³-ms- ïŒã§å®è£ ãããŠãããJS PolyfillãFlexieãè©ŠããŠã¿ãããšãã§ããŸãã æ§æãå€æŽãããããšãèŠããŠãããŠãã ããã詳现ã¯æåŸã®ä»æ§ã«ãããŸãã
ããŒãã«
IE10PPã®çæ°ããã®ã¯ãããŒãã«ã¬ã€ã¢ãŠãã·ã¹ãã ã§ãã 䜿çšããåã«ãè¡ãšåã決å®ããå¿ èŠããããŸãã åã®å Žåãé·ãã®å€ã èªåããŒã¯ãŒããããã³æ°ãã枬å®åäœfr ïŒ fraction ãrelative amountã®ç¥ïŒã䜿çšã§ããŸãã ãã®äŸãèŠãŠãã ããïŒ
div { display: grid; grid-columns: 1fr 3fr 1fr; grid-rows: 100px auto 12em; }
ãã®ã³ãŒãã¯ã3ã€ã®åã®ããŒãã«ãäœæããŸãããã®äžå€®ã¯ãå·Šå³ã«3åã®å¹ ãããã3è¡ãããªããŸããäžéšã®é«ãã¯100ãã¯ã»ã«ãäžéšã®é·ãã¯12emãã³ã³ãã³ãã®é·ãã«å¿ããŠäžå€®ã®é«ããèªåçã«æ¡å€§ããŸãã
ããŒãã«ãã§ããã®ã§ãããã«ã³ã³ãã³ããé 眮ã§ããŸãã HTML5èŠçŽ ã䜿çšãããšãéåžžã«åçŽãªããŒãžã¬ã€ã¢ãŠããå®éã«äœæã§ããŸãã
header { grid-column: 1; grid-column-span: 3; grid-row: 1; } nav { grid-column: 1; grid-row: 2; } article { grid-column: 2; grid-row: 2; } aside { grid-column: 3; grid-row: 2; } footer { grid-column: 1; grid-column-span: 3; grid-row: 3; }
ã³ãŒããèŠããšãããŒãžã®ã³ã³ãã³ããããããgrid-rowããããã£ãšgrid-columnããããã£ã䜿çšããŠè¡ãšåã«åæ£ãããŠããããšãããããŸãã articleèŠçŽ ã¯ã2è¡ç®ã®2åç®ãã€ãŸã3x3ããŒãã«ã®äžå€®ã«é 眮ãããŸãã column-spanããããã£ã¯ã ããããŒèŠçŽ ãšããã¿ãŒèŠçŽ ã«ã䜿çšããã3ã€ã®åãã¹ãŠã«åŒã䌞ã°ãããŸãïŒããã§ã¯äœ¿çšãããªãã£ãrow-spanããããã£ãåæ§ã«æ©èœããŸãïŒã
CSSã°ãªããã®äŸã§ãã¢ããŒã¯ã¢ããã確èªã§ããŸãããIE10ãã©ãããã©ãŒã ãå¿ èŠã§ãã ããã§ãªãå Žåã¯ãã¹ã¯ãªãŒã³ã·ã§ãããã芧ãã ããã

äžèšã®ããããã£ã¯IE10PPã§å®å šã«å®è£ ãããŠãããããä»ããè©Šãããšãã§ããŸãã ãã ããå€ãã®ããããã£ã¯ãŸã å®è£ ãããŠããŸããã
æš¡æ§
ããŒãã«ãã¥ãŒãžã®å¥ã®ã¢ãããŒãã¯ã ãã³ãã¬ãŒãã¬ã€ã¢ãŠãã¢ãžã¥ãŒã«ã§ãã ãããã«ç°ãªãæ§æã䜿çšããŸããæåã«ãã¢ã«ãã¡ãããæåãšäœçœ®ããããã£ã䜿çšããŠãããã¯ã«äœçœ®ãå²ãåœãŠãå¿ èŠããããŸãã
header { position: a; } nav { position: b; } article { position: c; }
äœçœ®ãå²ãåœãŠãããäžé£ã®æåã䜿çšããŠããŒã¯ã¢ãããäœæã§ããŸãã åã·ãŒã±ã³ã¹ã¯è¡ã«çžåœããã·ãŒã±ã³ã¹å ã®åæåã¯åã§ãã ããšãã°ã1è¡3åããããŒãã«ãäœæããã«ã¯ã次ã䜿çšã§ããŸãã
div { display: 'abc'; }
ãã®å Žåã3ã€ã®åçã«åæ£ãããèŠçŽ ãæ°Žå¹³ç·ã§è¡šç€ºãããŸãã ãã ããæåãç¹°ãè¿ããŠåãå±éããããç°ãªãè¡ã®åãäœçœ®ã«ããåãæåã䜿çšããŠè¡ãå±éãããã§ããŸãã 次ã®äŸã§ã¯ã navèŠçŽ ã2ã€ã®è¡ã«éãªã£ãŠããã ããããŒãšèšäºã2ã€ã®åã«éãªã£ãŠããŸãïŒã³ãŒãã¯æ確ã«ããããã«ãã©ãŒããããããŠããŸãïŒã
div { display: 'baa' 'bcc'; }
ãã³ãã¬ãŒãã¬ã€ã¢ãŠãã¯ãã©ãŠã¶ã§ã¯ãŸã 䜿çšãããŠããŸããããjQueryã«ã¯ãå®éšãå¯èœã«ããåªããããªãã£ã«ã¹ã¯ãªãããæ¢ã«ãããŸã ãããã¯ãåç §äŸã§äœ¿çšãããŸããã çµæã¯ããŒãã«ã¬ã€ã¢ãŠãã®äŸãšåãã«èŠããŸãããã³ãŒãã¯ãŸã£ããç°ãªããŸãã
ãã¢ããŒãžã¯JavaScriptã䜿çšããŠãããããææ°ã®ãã¹ãŠã®ãã©ãŠã¶ãŒã§åäœããã¯ãã§ãã 次ã®äŸã®ããã«ãããŒãã«ã¬ã€ã¢ãŠãã¯ãã³ãã¬ãŒãã®æ§æããµããŒãããå ŽåããããŸãã
header { grid-cell: a; } article { grid-cell: b; } div { display: grid; grid-template: 'a' 'b'; }
æ©èœé¢ã§ã¯ããã®ã³ãŒãã¯ãã³ãã¬ãŒãã¬ã€ã¢ãŠãã®ããããã£ãšåãã§ããããŸã å®è£ ãããŠããŸããïŒãŸãã¯å®è£ ãããŠããªãå¯èœæ§ããããŸãïŒã
é 眮ããããããŒãã£ã³ã°ãããã¯
çŸåšã®ãããŒãããããã£ã䜿çšãããšãããã¹ãã¯èŠçŽ ã®å·ŠãŸãã¯å³ã«æµããããšãã§ããŸãããIE10PPã®é«åºŠãªããããã£ã䜿çšãããšãä»»æã®å Žæã«é 眮ããããšã§ãããŒãã£ã³ã°èŠçŽ ã調æŽã§ããŸã ã ãããè¡ãã«ã¯ã floatããããã£ã®æ°ããå€ãå¿ èŠã§ããã
div { float: positioned; left: 200px; position: absolute; top: 100px; width: 250px; }
ãã®ã³ãŒãã¯ãå·ŠåŽã«200pxã芪ã®äžéšã«100pxã«äœçœ®ãã250pxå¹ ã®èŠçŽ ãäœæããŸãã ããã©ã«ãã§ã¯ã芪å ã®ãã®ä»ã®ã³ã³ãã³ãã¯ãé 眮ãããèŠçŽ ã®åšããåæ¹ããæµããŸãããããã¯ãããšãã°ãããã¹ããèŠçŽ ã®äžäžã®ã¿ã§æµããŠããå Žåãªã©ã wrap-typeããããã£ã®ããŸããŸãªå€ã§å€æŽã§ããŸãã
div { wrap-type: top-bottom; }
ããŒãã«ã«èŠçŽ ãé 眮ãããã®èŠçŽ ã®åšå²ã«ã³ã³ãã³ããåæ¹ããæµãããšã§ãé 眮ãšããŒãã«ã¬ã€ã¢ãŠãã®ããããã£ãçµã¿åãããããšãã§ããŸãã
div { float: positioned; grid-column: 2; grid-row: 2; }
IE10PPããæã¡ã®å Žåãé 眮ããããããŒãã£ã³ã°ãããã¯ã®ãã¢ãèŠãããšãã§ããŸã ã ããã§ãªãå Žåãçµæã¯äžã®ã¹ã¯ãªãŒã³ã·ã§ããã«ç€ºãããŠããŸãããçŸåšã®CSSæ©èœãå®è£ ããããšã¯äžå¯èœã§ãã

é€å€
floatããããã£ã§ã¯ãé·æ¹åœ¢èŠçŽ ã®ã¿ãåçåã§ããŸãããããã¥ã¡ã³ãã§ã¯åœ¢ç¶ã®åšãã®ãããŒãæäŸããŠããŸãã ãã®ã¢ã€ãã¢ã¯ã CSS Exclusionsã¢ãžã¥ãŒã«ã䜿çšããåŸã«çãŸããŸããã 2ã€ã®éèŠãªããããã£ããããŸãã æåã®wrap-shapeã䜿çšãããšãã³ã³ãã³ãã«ãã£ãŠåçåããããããã¯ã®åœ¢ç¶ãå®çŸ©ããæ¥åãé·æ¹åœ¢ããŸãã¯å€è§åœ¢ãäœæã§ããŸãã次ã«äŸã瀺ããŸãã
div { wrap-shape: circle(50%, 50%, 100px); }
ãã®ã³ãŒãã¯ãååŸã100ãã¯ã»ã«ã®åãäœæãã芪èŠçŽ ã®äžå¿ã«é 眮ããŸãã polygonïŒïŒé¢æ°ã䜿çšããŠãããšãã°äžè§åœ¢ã®ããã«ã¹ããŒã¹ã§åºåããã座æšãã¢ãæå®ããããšã«ãããä»»æã®åœ¢ç¶ãäœæã§ããŸãã
div { wrap-shape: polygon(0,100px 100px,100px 50px,0); }
æ¢ã«ç¹å®ã®åœ¢ç¶ãããå Žåã次ã®ããã«ã2çªç®ã®wrap-shape-modeããããã£ã䜿çšããŠããã®å³ã®åšãã®å éšã³ã³ãã³ããåçåã§ããŸãã
div { wrap-shape: circle(50%, 50%, 100px); wrap-shape-mode: around; }
Adobe LabããMacãŸãã¯Windowsçšã®ãããã¿ã€ããããŠã³ããŒãããããšã«ãããCSSã®é€å€ã®åäœã確èªã§ããŸãã å®å šãªããã¥ã¡ã³ããšããã€ãã®éåžžã«ã¯ãŒã«ãªãã¢ãã¡ã€ã«ããããŸããããšãã°ã次ã®ãšããã§ãã

ãšãªã¢
ã¢ããã®æ¬¡ã®ææ¡ã¯CSSãªãŒãžã§ã³ã§ãããã¯ã³ã³ãã³ããå€ãã®ç°ãªãèŠçŽ å ã§ã©ã®ããã«é åžãããããå®çŸ©ããŸãã ããã¯ããŸãã ãããŒããããã£ã§äžæã®æååèå¥åã䜿çšããŠä»ã®ã³ã³ãã³ããæäŸããèŠçŽ ãå®çŸ©ããããšã«ãã£ãŠè¡ãããŸãã次ã«ã ã³ã³ãã³ãããããã£ã®fromïŒïŒé¢æ°ã䜿çšããŠããã®ã³ã³ãã³ãã§æºããããé åãéžæããŸãïŒ
.content { flow: foo; } .target1, .target2 { content: from(foo); }
ããã§ã¯ãã³ã³ãã³ãã¯.contentèŠçŽ ããååŸãããæåã«.target1èŠçŽ ã«é ä¿¡ãããŸã ããããã¯ãã³ã³ãã³ãã衚瀺ããã®ã«ååã§ãªãå Žåã¯ãåŒãç¶ã.target2ã«è¡šç€ºãããŸã ã ã³ã³ãã³ãã¯ãããã¯åäœã§è€è£œããããæåã®ã³ã³ãã³ãã§éå§ããã2çªç®ã®ã³ã³ãã³ãã§ç¶è¡ãããŸãïŒå¿ èŠãªå ŽåïŒã ç解ãæ·±ããããã«ãäžã®ç»åãã芧ãã ããã

ã¡ãªã¿ã«ãããŒã¯ã¢ããå ã®å Žæã«é¢ããã¿ãŒã²ãããšãªã¢ã®èŠä»¶ã¯ãããŸããã å¿ èŠã«å¿ããŠãããŒãžã®å察åŽã«é 眮ã§ããŸãã
CSSãšãªã¢ä»æ§ã¯ãŸã ãã©ãŠã¶ãŒã«å®è£ ãããŠããŸããããExclusionsãšåæ§ã«ãAdobeã©ãã®ãããã¿ã€ãã䜿çšããŠãèªåã§æ©èœãè©Šãããšãã§ããŸãã
ãããã«
ã©ã®æ°ããããŒã¯ã¢ããã¢ãžã¥ãŒã«ïŒFlexBoxããã³ColumnsããïŒããã©ãŠã¶ãŒã«å®å šã«å®è£ ããããã¯ãŸã æ確ã§ã¯ãããŸããã ãããŒãã£ã³ã°ãããã¯ãšé€å€ã«ã€ããŠã¯ãæ©èœã®é¡äŒŒæ§ã®ããã«ããããã¯ãã¹ããããšæããŸãïŒãããããããªãã§ãããïŒã ããŒãã«ã¬ã€ã¢ãŠãã¯ãã³ãã¬ãŒãã¬ã€ã¢ãŠããšå¯æ¥ã«é¢é£ããŠããããã¡ãããIE10ã§ã®å€èŠ³ãæåŸ ã§ããŸãã CSSãšãªã¢ã¯ãã§ã«WebKitã®ãã©ã³ãã®1ã€ã«å®è£ ãããŠãããWebKitãã©ãŠã¶ïŒSafariãChromeãªã©ïŒã«ããã«è¡šç€ºãããå¯èœæ§ããããŸãã
ãããã£ãŠãæ§æã«ããã€ãã®å€æŽãå ãããšãäžèšã®ãã¹ãŠãCSS3ã§å°æ¥äœ¿çšããããšäºæž¬ã§ããŸãã ãã®å Žåãæ°ããæ¹æ³ã䜿çšãããšããããæ°å¹Žã§æå°éã®ã³ã¹ãã§éåžžã«ææ ®æ·±ããµã€ããäœæã§ããããããããçºçãããšéåžžã«äŸ¿å©ã§ãã