CSSã®åºæãµã€ãºå¶çŽè§£æ±ºã詳现ã«è§£èª¬ããã©ãŠã¶ãç«¶åãããµã€ãºããããã£ãã©ãåŠçããããåŠã³ãWebããŒãžã®ã¬ã€ã¢ãŠãã广çã«å¶åŸ¡ããŸããmin/max-contentãµã€ãžã³ã°ããã¹ã¿ãŒããäžè¬çãªã¬ã€ã¢ãŠãåé¡ãåé¿ããŸãããã
CSSã®åºæãµã€ãºå¶çŽè§£æ±ºïŒãµã€ãºèšç®ã®ç«¶åããã¹ã¿ãŒãã
CSSã¯ãWebããŒãžäžã®èŠçŽ ã®ãµã€ãºãå¶åŸ¡ããããã®ããŸããŸãªæ¹æ³ãæäŸããŸããããããè€æ°ã®ãµã€ãºå¶çŽïŒäŸïŒwidth
, min-width
, max-width
ïŒãèŠçŽ ã«é©çšããããšãç«¶åãçºçããå¯èœæ§ããããŸãããã©ãŠã¶ãåºæãµã€ãºå¶çŽè§£æ±ºã䜿çšããŠãããã®ç«¶åãã©ã®ããã«è§£æ±ºããããçè§£ããããšã¯ãå
ç¢ã§äºæž¬å¯èœãªã¬ã€ã¢ãŠããäœæããããã«äžå¯æ¬ ã§ãã
åºæãµã€ãºãšã¯ïŒ
åºæãµã€ãºãšã¯ãèŠçŽ ããã®ã³ã³ãã³ãããå°ãåºããµã€ãºã®ããšã§ããæç€ºçãªãµã€ãºïŒäŸïŒwidth: 200px
ïŒãšã¯ç°ãªããåºæãµã€ãºã¯äºåå®çŸ©ãããŠããããèŠçŽ ã®ã³ã³ãã³ãããã®ä»ã®ã¹ã¿ã€ãªã³ã°ããããã£ã«åºã¥ããŠèšç®ãããŸããäž»èŠãª2ã€ã®åºæãµã€ãºããŒã¯ãŒãã¯ãmin-content
ãšmax-content
ã§ãã
- min-content: èŠçŽ ãã³ã³ãã³ãããªãŒããŒãããŒãããã«åããããšãã§ããæå°ã®ãµã€ãºã衚ããŸããã³ã³ãã³ãã1è¡ãŸãã¯å¯èœãªéãæå°ã®ããã¯ã¹ã«è¡šç€ºããããã«å¿ èŠãªå¹ ãŸãã¯é«ããšèããŠãã ããã
- max-content: èŠçŽ ããã¹ãŠã®ã³ã³ãã³ããæãè¿ãããåãæšãŠããããã«è¡šç€ºããããã«åãçæ³çãªãµã€ãºã衚ããŸãããµã€ãºå¶çŽããªãå Žåã«èŠçŽ ãèªç¶ã«åããµã€ãºã§ãã
auto
ããŒã¯ãŒãããç¹ã«ãã¬ãã¯ã¹ããã¯ã¹ïŒflexboxïŒãã°ãªããã¬ã€ã¢ãŠãã«ãããŠãåºæãµã€ãžã³ã°ã«ã€ãªããããšããããŸããã¢ã€ãã ã®ãµã€ãºãauto
ã§æå®ããããšããã©ãŠã¶ã¯å€ãã®å Žåãã¢ã€ãã ã®ã³ã³ãã³ããšå©çšå¯èœãªã¹ããŒã¹ã«åºã¥ããŠãµã€ãºãèšç®ããŸãã
å¶çŽè§£æ±ºã¢ã«ãŽãªãºã ïŒãã©ãŠã¶ãç«¶åãããµã€ãºãåŠçããæ¹æ³
èŠçŽ ãè€æ°ã®ãµã€ãºå¶çŽïŒäŸïŒwidth
, min-width
, max-width
ãããã³èŠçŽ ã®åºæã³ã³ãã³ããµã€ãºïŒãåããå Žåããã©ãŠã¶ã¯æçµçãªãµã€ãºã決å®ããããã«ç¹å®ã®ã¢ã«ãŽãªãºã ã«åŸããŸãããã®ã¢ã«ãŽãªãºã ã¯ããã¹ãŠã®å¶çŽãå¯èœãªéãæºãããçºçããå¯èœæ§ã®ããç«¶åã解決ããããšãç®æããŸãã
以äžã«ãå¶çŽè§£æ±ºããã»ã¹ã®ç°¡åãªæŠèŠã瀺ããŸãïŒ
- åªå
ãµã€ãºã®èšç®ïŒ ãã©ãŠã¶ã¯ãŸããèŠçŽ ã®ãåªå
ãµã€ãºããæ±ºå®ããŸããããã¯çŽæ¥æå®ããã
width
ã§ããå Žåãããã°ãæç€ºçãªå¹ ãæå®ãããŠããªãå Žåã¯åºæã®max-content
ãµã€ãºã§ããå ŽåããããŸãã - `min-width`ãš`max-width`ã®é©çšïŒ 次ã«ãã©ãŠã¶ã¯ãåªå
ãµã€ãºã
min-width
ãšmax-width
ã§å®çŸ©ãããç¯å²å ã«åãŸããã©ããã確èªããŸãã - ãµã€ãºã®ã¯ã©ã³ãïŒå¶éïŒïŒ åªå
ãµã€ãºã
min-width
ããå°ããå Žåãæçµçãªãµã€ãºã¯min-width
ã«èšå®ãããŸããåªå ãµã€ãºãmax-width
ãã倧ããå Žåãæçµçãªãµã€ãºã¯max-width
ã«èšå®ãããŸãããã®ãã¯ã©ã³ããã«ãããèŠçŽ ãå®çŸ©ããããµã€ãºã®å¢çå ã«çãŸãããšãä¿èšŒãããŸãã - `auto`ãšåºæãµã€ãžã³ã°ã®èæ
®ïŒ ããããã®ãµã€ãºããããã£ã
auto
ãŸãã¯min-content
ãmax-content
ã®ãããªåºæãµã€ãºããŒã¯ãŒãã«èšå®ãããŠããå Žåããã©ãŠã¶ã¯ä»ã®å¶çŽãèæ ®ããªãããã³ã³ãã³ããšå©çšå¯èœãªã¹ããŒã¹ã«åºã¥ããŠãµã€ãºãèšç®ããŸãã
äŸïŒç°¡åãªå³è§£
次ã®CSSãèããŠã¿ãŸãããïŒ
.element {
width: 300px;
min-width: 200px;
max-width: 400px;
}
ãã®å Žåãåªå
å¹
ã¯300pxã§ãããããã¯min-width
ïŒ200pxïŒãšmax-width
ïŒ400pxïŒã®ç¯å²å
ã«åãŸããŸãããããã£ãŠãèŠçŽ ã®æçµçãªå¹
ã¯300pxã«ãªããŸãã
ã§ã¯ãwidth
ã150pxã«å€æŽããŠã¿ãŸãããïŒ
.element {
width: 150px;
min-width: 200px;
max-width: 400px;
}
åªå
å¹
ã¯150pxãšãªããããã¯min-width
ïŒ200pxïŒããå°ãããªããŸãããã©ãŠã¶ã¯å¹
ã200pxã«ã¯ã©ã³ããããããæçµçãªå¹
ãšãªããŸãã
æåŸã«ãwidth
ã450pxã«èšå®ããŠã¿ãŸãããïŒ
.element {
width: 450px;
min-width: 200px;
max-width: 400px;
}
åªå
å¹
ã¯450pxãšãªããããã¯max-width
ïŒ400pxïŒãè¶
ããŸãããã©ãŠã¶ã¯å¹
ã400pxã«ã¯ã©ã³ããããããæçµçãªå¹
ãšãªããŸãã
å®è·µçãªäŸãšãŠãŒã¹ã±ãŒã¹
1. åºæã®æ¯çãæã€ã¬ã¹ãã³ã·ãç»å
ç»åãã¬ã¹ãã³ã·ãã«ããªããã¢ã¹ãã¯ãæ¯ãç¶æããããšã¯ãäžè¬çãªèª²é¡ã§ããåºæãµã€ãžã³ã°ã圹ç«ã¡ãŸãã
.responsive-image {
width: 100%;
height: auto; /* é«ããæ¯äŸããŠã¹ã±ãŒã«ããããã«èš±å¯ */
}
width
ã100%ã«ãheight
ãauto
ã«èšå®ããããšã§ãç»åã¯å
ã®ã¢ã¹ãã¯ãæ¯ãç¶æããªããã³ã³ããã«åãããŠæ¡å€§ã»çž®å°ãããŸãããã©ãŠã¶ã¯ãå¹
ãšç»åã®åºæã®æ¯çã«åºã¥ããŠåºæã®é«ããèšç®ããŸãã
åœéçãªäŸïŒ ãã®ã¢ãããŒãã¯ãç»åã®ãœãŒã¹ïŒäŸïŒæ¥æ¬ã®åçãã€ã¿ãªã¢ã®çµµç»ãã«ããã®ããžã¿ã«ã°ã©ãã£ãã¯ïŒã«é¢ä¿ãªããæ®éçã«é©çšå¯èœã§ããã¢ã¹ãã¯ãæ¯ã®ç¶æã¯ãããŸããŸãªçš®é¡ã®ç»åãæåãè¶ããŠäžè²«ããŠæ©èœããŸãã
2. `min-content`ãš`max-content`ã䜿çšããåçã³ã³ãã³ã
é·ããäžæãªåçã³ã³ãã³ãïŒäŸïŒãŠãŒã¶ãŒçæããã¹ãïŒãæ±ãå Žåãmin-content
ãšmax-content
ã¯ç¹ã«åœ¹ç«ã¡ãŸãã
.dynamic-text {
width: max-content; /* èŠçŽ ã¯ã³ã³ãã³ããšåãå¹
ã«ã®ã¿ãªã */
white-space: nowrap; /* ããã¹ãã®æãè¿ããé²ã */
overflow: hidden; /* ã¯ã¿åºããã³ã³ãã³ããé ã */
text-overflow: ellipsis; /* åãæšãŠãããããã¹ãã«çç¥èšå·(...)ã衚瀺 */
}
ãã®äŸã§ã¯ãwidth: max-content
ã«ãããèŠçŽ ã¯ïŒwhite-space: nowrap
ã®ããïŒ1è¡ã«ãã¹ãŠã®ããã¹ãã³ã³ãã³ããåããããã«æ¡åŒµãããŸããã³ã³ãã³ããå©çšå¯èœãªã¹ããŒã¹ã«å¯ŸããŠé·ãããå Žåãoverflow: hidden
ãštext-overflow: ellipsis
ããããã£ãããã¹ããåãæšãŠãçç¥èšå·ã远å ããŸãã
åœéçãªäŸïŒ 補ååã衚瀺ãããŠã§ããµã€ããèããŠã¿ãŸããããäžéšã®èšèªïŒäŸïŒãã€ãèªïŒã§ã¯ã補ååãä»ã®èšèªïŒäŸïŒæ¥æ¬èªãéåœèªïŒãããèããé·ããªãããšããããŸããmax-content
ã䜿çšããããšã§ãèŠçŽ ã¯ã¬ã€ã¢ãŠã厩ããåŒãèµ·ããããšãªããã©ã®èšèªã®è£œååã®é·ãã«ãé©å¿ããŸãã
3. `min-content`ã䜿çšãããã¿ã³ãµã€ãºã®å¶åŸ¡
ãã¿ã³ã¯ãçæ³çã«ã¯ããã¹ãã©ãã«ãå容ã§ããååãªå€§ããã§ããã¹ãã§ãããé床ã«åºãããã¹ãã§ã¯ãããŸãããmin-content
ã¯ãããéæããã®ã«åœ¹ç«ã¡ãŸãã
.button {
min-width: min-content; /* ãã¿ã³ã¯å°ãªããšãã³ã³ãã³ããšåãå¹
ã«ãªã */
padding: 10px 20px; /* èŠæ ããè¯ãããããã«äœåãªããã£ã³ã°ã远å */
}
min-width: min-content
ã¯ãããã¹ããæ¯èŒçé·ãå Žåã§ãããã¿ã³ãåžžã«ãã®ããã¹ãã衚瀺ããã®ã«ååãªå¹
ã§ããããšãä¿èšŒããŸããããã£ã³ã°ã¯ããã¹ãã®åšãã«èŠèŠçãªã¹ããŒã¹ã远å ããŸãã
åœéçãªäŸïŒ ãã¿ã³ã®ã©ãã«ã¯ãã°ãã°ç°ãªãèšèªã«ããŒã«ã©ã€ãºãããŸããmin-content
ã¯ãããŒã«ã©ã€ãºãããããã¹ãã®é·ãã«é¢ä¿ãªãããã¿ã³ãèªã¿ããããèŠãç®ã«ãçŸãããŸãŸã§ããããšãä¿èšŒããŸããäŸãã°ãè±èªã§ãSearchããšã©ãã«ä»ãããããã¿ã³ã¯ããã©ã³ã¹èªã§ã¯ãRechercherããšãªããããå€ãã®æ°Žå¹³ã¹ããŒã¹ãå¿
èŠãšããŸãã
4. ãã¬ãã¯ã¹ããã¯ã¹ã¬ã€ã¢ãŠãïŒFlexboxïŒãšåºæãµã€ãº
Flexboxã¯åºæãµã€ãºãåºç¯å²ã«æŽ»çšããŸãããã¬ãã¯ã¹ã¢ã€ãã ã®width
ãŸãã¯height
ãauto
ã«èšå®ãããŠããå Žåããã©ãŠã¶ã¯ã¢ã€ãã ã®ã³ã³ãã³ããšãã¬ãã¯ã¹ã³ã³ããå
ã®å©çšå¯èœãªã¹ããŒã¹ã«åºã¥ããŠãµã€ãºãèšç®ããŸãã
.flex-container {
display: flex;
}
.flex-item {
flex: 1; /* å©çšå¯èœãªã¹ããŒã¹ãåçã«åé
*/
width: auto; /* ã³ã³ãã³ããšãã¬ãã¯ã¹ããããã£ã«ãã£ãŠå¹
ãæ±ºå®ãããããã«èš±å¯ */
}
ãã®äŸã§ã¯ãflex: 1
ããããã£ã¯ãã¬ãã¯ã¹ã¢ã€ãã ã«å©çšå¯èœãªã¹ããŒã¹ãåçã«å
±æããããã«æç€ºããŸããwidth: auto
ã¯ããã©ãŠã¶ããã¬ãã¯ã¹ã³ã³ããã®å¶çŽã«åŸã£ãŠãã¢ã€ãã ã®ã³ã³ãã³ãã«åºã¥ããŠãã®å¹
ãèšç®ããããšãå¯èœã«ããŸãã
åœéçãªäŸïŒ Flexboxã䜿çšããŠå®è£
ãããããã²ãŒã·ã§ã³ããŒãèããŠã¿ãŸããããããã²ãŒã·ã§ã³ã¢ã€ãã ïŒäŸïŒãHomeãããAboutãããServicesãïŒã¯ãç°ãªãèšèªã«ç¿»èš³ããããšé·ããå€ããå¯èœæ§ããããŸããflex: 1
ãšwidth: auto
ã䜿çšããããšã§ãã¢ã€ãã ã¯ã³ã³ãã³ãã®é·ãã«é©å¿ããå©çšå¯èœãªã¹ããŒã¹ãæ¯äŸçã«åé
ããããšãã§ããç°ãªãèšèªéã§ãã©ã³ã¹ã®åããèŠèŠçã«é
åçãªã¬ã€ã¢ãŠããä¿èšŒããŸãã
5. ã°ãªããã¬ã€ã¢ãŠããšåºæãµã€ãº
Flexboxãšåæ§ã«ãã°ãªããã¬ã€ã¢ãŠããåºæãµã€ãžã³ã°ããµããŒãããŠããŸããã°ãªãããã©ãã¯ã®ãµã€ãºãå®çŸ©ããéã«min-content
ãšmax-content
ã䜿çšã§ããŸãã
.grid-container {
display: grid;
grid-template-columns: min-content auto max-content;
}
ãã®ã°ãªããã¬ã€ã¢ãŠãã§ã¯ãæåã®åã¯ãã®æå€§ã®ã»ã«ã®æå°ã³ã³ãã³ããµã€ãºã«ã2çªç®ã®åã¯æ®ãã®å©çšå¯èœãªã¹ããŒã¹ãå æãïŒauto
ïŒã3çªç®ã®åã¯ãã®æå€§ã®ã»ã«ã®æå€§ã³ã³ãã³ããµã€ãºã«ãµã€ãºèª¿æŽãããŸãã
åœéçãªäŸïŒ ã°ãªããã¬ã€ã¢ãŠãã§è¡šç€ºããã補åã«ã¿ãã°ãæ³åããŠã¿ãŠãã ãããæåã®åã«ã¯è£œåç»åã2çªç®ã®åã«ã¯ïŒèšèªã«ãã£ãŠé·ãã倧å¹
ã«ç°ãªãïŒè£œååã3çªç®ã®åã«ã¯äŸ¡æ Œæ
å ±ãå«ãŸãããããããŸãããgrid-template-columns: 1fr max-content 1fr;
ã䜿çšãããšãååãå¿
èŠãªã¹ããŒã¹ã䜿çšã§ããäžæ¹ã§ãåå
šäœã®ãã©ã³ã¹ãç¶æãããŸãã
ããããèœãšã穎ãšåé¿æ¹æ³
- ç«¶åãã`width`ãš`max-width`ïŒ
max-width
ãè¶ ããåºå®ã®width
ãèšå®ãããšãèŠçŽ ã¯max-width
ã«ã¯ã©ã³ããããäºæããªãã¬ã€ã¢ãŠãã®åé¡ã«ã€ãªããå¯èœæ§ããããŸããwidth
ãmin-width
ãmax-width
ãäžè²«æ§ãããè«ççã§ããããšã確èªããŠãã ããã - `min-content`ã«ããã³ã³ãã³ãã®ãªãŒããŒãããŒïŒ é©åãªãªãŒããŒãããŒåŠçïŒäŸïŒ
overflow: hidden
,text-overflow: ellipsis
ïŒãªãã§min-content
ã䜿çšãããšãã³ã³ãã³ããèŠçŽ ã®å¢çãè¶ããŠãªãŒããŒãããŒããã¬ã€ã¢ãŠãã厩ãåå ãšãªããŸãã - äºæããªãæ¹è¡ïŒ é·ãããã¹ãæååã§
max-content
ã䜿çšããå Žåãããã¹ããæåŸ éãã«æãè¿ããããæ°Žå¹³ã¹ã¯ããŒã«ãã¬ã€ã¢ãŠãã®åé¡ãåŒãèµ·ããå¯èœæ§ãããããšã«æ³šæããŠãã ãããå¿ èŠã«å¿ããŠword-break: break-word
ã䜿çšããŠãããã¹ããä»»æã®ç¹ã§æ¹è¡ã§ããããã«ããããšãæ€èšããŠãã ããã - åºæã®æ¯çã®ç¡èŠïŒ ç»åããã®ä»ã®ã¡ãã£ã¢ãã¹ã±ãŒãªã³ã°ããéã«ã¯ãæªã¿ãé¿ããããã«åžžã«åºæã®ã¢ã¹ãã¯ãæ¯ãèæ
®ããŠãã ãããæ£ããæ¯çãç¶æããããã«ã
width: 100%
ãšçµã¿åãããŠheight: auto
ã䜿çšããŸãã
åºæãµã€ãºå¶çŽè§£æ±ºã䜿çšããããã®ãã¹ããã©ã¯ãã£ã¹
- ã¢ã«ãŽãªãºã ãçè§£ããïŒ ãã©ãŠã¶ãç«¶åãããµã€ãºããããã£ãã©ã®ããã«åŠçããããäºæž¬ããããã«ãå¶çŽè§£æ±ºã¢ã«ãŽãªãºã ã«ç²ŸéããŠãã ããã
- `min-content`ãš`max-content`ãè³¢ã䜿çšããïŒ ãããã®ããŒã¯ãŒãã¯åŒ·åã§ãããæ éã«äœ¿çšããªããšäºæããªãçµæã«ã€ãªããå¯èœæ§ããããŸããç°ãªãã³ã³ãã³ãã®é·ããç°ãªããã©ãŠã¶ã§ã¬ã€ã¢ãŠãã培åºçã«ãã¹ãããŠãã ããã
- FlexboxãGridãšçµã¿åãããïŒ FlexboxãGridã¬ã€ã¢ãŠãã¯ãåºæãµã€ãºã管çããæè»ã§ã¬ã¹ãã³ã·ããªã¬ã€ã¢ãŠããäœæããããã®åªããããŒã«ãæäŸããŸãã
- è€æ°ãã©ãŠã¶ã§ãã¹ãããïŒ å¶çŽè§£æ±ºã¢ã«ãŽãªãºã ã¯æšæºåãããŠããŸãããç°ãªããã©ãŠã¶ã§ã®å®è£ æ¹æ³ã«ã¯åŸ®åŠãªéããååšããå¯èœæ§ããããŸããäžè²«ããåäœãä¿èšŒããããã«ãè€æ°ã®ãã©ãŠã¶ã§ã¬ã€ã¢ãŠãããã¹ãããŠãã ããã
- éçºè ããŒã«ã䜿çšããïŒ ãã©ãŠã¶ã®éçºè ããŒã«ã¯ãèŠçŽ ãã©ã®ããã«ãµã€ãºæ±ºå®ããããã«ã€ããŠã®è²ŽéãªæŽå¯ãæäŸããŸãããComputedãïŒèšç®æžã¿ïŒã¿ãã䜿çšããŠãèŠçŽ ã®æçµçãªå¹ ãšé«ããæ€æ»ãããµã€ãºå¶çŽã®ç«¶åãç¹å®ããŸãã
çµè«
CSSã®åºæãµã€ãºå¶çŽè§£æ±ºãçè§£ããããšã¯ãå
ç¢ã§ãã¬ã¹ãã³ã·ãã§ãä¿å®å¯èœãªWebã¬ã€ã¢ãŠããæ§ç¯ããããã«äžå¯æ¬ ã§ããmin-content
ãmax-content
ã®æŠå¿µãããã³å¶çŽè§£æ±ºã¢ã«ãŽãªãºã ããã¹ã¿ãŒããããšã§ãããŸããŸãªã³ã³ãã³ãã®é·ããç»é¢ãµã€ãºãèšèªã«åªé
ã«é©å¿ããã¬ã€ã¢ãŠããäœæã§ããŸããã¬ã€ã¢ãŠãã培åºçã«ãã¹ããããã©ãŠã¶ã®éçºè
ããŒã«ã䜿çšããŠãµã€ãžã³ã°ã®åé¡ããããã°ããããšãå¿ããªãã§ãã ããããããã®ååããã£ãããšçè§£ããã°ãæãè€éãªã¬ã€ã¢ãŠãã®èª²é¡ã«ãååã«å¯Ÿå¿ã§ããããã«ãªããŸãã
ãã®ã¬ã€ãã¯ãCSSã®åºæãµã€ãºå¶çŽè§£æ±ºã®å æ¬çãªæŠèŠãæäŸãããã®åºæ¬æŠå¿µãå®è·µçãªäŸãããã³äžè¬çãªèœãšã穎ãç¶²çŸ ããŠããŸãããã®ã¬ã€ãã§æŠèª¬ãããŠãããã¯ããã¯ãšãã¹ããã©ã¯ãã£ã¹ãé©çšããããšã§ããŠãŒã¶ãŒã®ããã€ã¹ãèšèªã«é¢ä¿ãªããèŠèŠçã«é åçã§ãã¢ã¯ã»ã¹ãããããããã©ãŒãã³ã¹ã®é«ãWebããŒãžãäœæã§ããŸãã