æè¿ãç§ã¯ãæ¢åã®ãããžã§ã¯ãã®è¿ä»£åã®ããã®æè¡ä»æ§ã®éçºã«ã€ããŠçãä»äºãããŸããããããŠãç¹ã«ããã®äºä»¶ã¯æªåé«ã<input type = "checkbox">ã®ã¹ã¿ã€ãªã³ã°ã«é¢ãããã®ã§ããããããããæ¥çã®ãããã°ã©ããŒã§ããããã©ãŒããŒã¯ãç§ããããè¡ãæ¹æ³ãèšèã§åœŒã«èª¬æããŠããããšããçè§£ããŠããªãã£ãããšã倿ããŸãããäŸãæããªããã°ãªããªãã£ãçµæããã®ããã¹ãã衚瀺ãããŸããã
ãã§ãã¯ããã¯ã¹ãšã©ãžãªããã¯ã¹ã¯ããµã€ãããšã«ç°ãªã£ãŠæãããŠããããšãæãåºããŠãã ãããããŒã¯ãããŠããªãå ¥åãããã«èå¥ã§ããªãããšããããŸããããã¯éåžžã«ããã¶ã€ã³çã«çŸããããããChromeã®ææ°ããŒãžã§ã³ã§ã¯ãéžæãããã§ãã¯ããã¯ã¹ãäžåãªã·ã¢ã³è²ã«ãªã£ãŠããŸãã
ã ããç¶æ³
泚æãäŒèšãå庫ãªã©ã«é¢é£ããç¹å®ã®ãœãããŠã§ã¢è£œåã䜿çšããŠããäŒç€Ÿã¯3瀟ãããŸãã顧客ãããŒãããŒãããã©ãŒããŒãªã©ãšååããŸãã
ããŒã±ã¿ãŒãåºåäž»ãããã䜿çšããŸãããã®ã·ã¹ãã ãäœããããïŒäœã«æžãããŠããŠãïŒã¯é¢ä¿ãããŸããã
ãããŠããã®è£œåã®ãµã€ãã«ã¯ãå€ãã®å ¥åãã§ãã¯ããã¯ã¹ãšã©ãžãªããããã©ãŒã ãå«ãå€ãã®ããŒãžãããããšãéèŠã§ãã
åŸæ¥å¡ã®èŠæ
ç£ç£ïŒå€§ç»é¢ã§ã¯ãã¯ãªãžãããèŠã¥ããèŠããŸããã
䞻任äŒèšå£«ïŒç§ã®ã³ã³ãã¥ãŒã¿ãŒã§ã¯ããã¯ãªãžããã¯ãã®ããã«èŠããŸããåŸæ¥å¡ã§ã¯èŠãç®ãç°ãªããèªå® ã§ãç°ãªããŸãããã¿ãã¬ããã§ã¯ãŸã£ããç°ãªããŸãã
ããŒã±ã¿ãŒïŒéžæãããŠããªãããžã·ã§ã³ã®äžéšãèµ€ã«ãªããéžæãããä»ã®ããžã·ã§ã³ãç·ã«ãªãå¯èœæ§ã¯ãããŸããïŒ
çã
ã ããã¿ã¹ã¯
- æå°éã®ã³ã¹ããšæå°éã®å€æŽã§ããã§ãã¯ããã¯ã¹ãšã©ãžãªããã¯ã¹ã®å€èгãä¿®æ£ããŸãã
- ããŸããŸãªãŠãŒã¶ãŒã®ãã§ãã¯ããã¯ã¹ãšã©ãžãªããã¯ã¹ã®ã¹ã¿ã€ã«ãäœæããŸããéèŠïŒããã¯ééããããµã€ãã§ãããããã¹ãŠç§ãã¡èªèº«ããããããçŸãããã¯å¿ èŠãããŸããããç¥èŠã®æå¹æ§ã¯å¿ èŠã§ãã
èš±å¯ãããŠããªãããš
1.ãµãŒããŒåŽã«ã¯è§Šããªãã§ãã ããã
2. javascriptãã¡ã€ã«ã«è§Šããããšã¯ã§ããŸããããŸããç¬èªã®javascriptãæ¿å ¥ããããšãã§ããŸããã
3.cssãã¡ã€ã«ã«ã¯è§ŠããããŸããã
èš±å¯ããããã®
1.htmlãã³ãã¬ãŒããç·šéããŸãã
2.ãã¹ãŠã®ãŠãŒã¶ãŒã®ã¹ã¿ã€ã«ãã¡ã€ã«ãäœæããŸãã
4.ç¹å®ã®ãŠãŒã¶ãŒãŸãã¯ãŠãŒã¶ãŒã°ã«ãŒãã®ã¹ã¿ã€ã«ãã¡ã€ã«ãäœæããŸãã
ãããŠãããªããããããšã¯ããã«codepen.ioãèŠãããšãã§ããŸãããããã«èªãããšããå§ãããŸãã
äºå調æ»ã¯ç€ºãã
1.ã»ãšãã©ãã¹ãŠã®<inputtype = "checkbox">ã«ã¯ååãã£ãŒã«ãããããIDããªããã®ããããŸãã
2.ãã¹ãŠã®<inputtype = "radio">ã«ã¯ååãã£ãŒã«ãããããäžéšã«ã¯IDããããŸãã
3.ãããã£ãŠãcssã§ã¯ãidãšnameã®äž¡æ¹ã§ãã§ãã¯ããã¯ã¹ã«ã¢ã¯ã»ã¹ã§ããŸããç¡ç·ãž-IDãŸãã¯èŠªã®åã®çªå·ã®ããããã«ãã£ãŠã
ãœãŒã¹ã³ãŒãã¹ããããïŒ
/* 1 */
<tag><input type="checkbox"> </tag>
/* 2 */
<tag><input type="checkbox"> <br>
<input type="checkbox"> </tag>
/* 3 */
...<label><input type="checkbox"> </label>...
/* 4 */
<td><input id="idxxx" type="checkbox"></td>
<td><label for="idxxx"> </label></td>
ã³ãŒããä¿®æ£ããŸãããïŒ
/* 1 */
<tag><label class="new-input"><input type="checkbox"><s></s><span> </span></label></tag>
/* 2 */
<tag><label class="new-input"><input type="checkbox"><s></s><span> </span></label><br>...</tag>
/* 3 */
...<label class="new-input"><input type="checkbox"><s></s><span> </span></label>...
/* 4 */
<td><label class="new-input new-input-one"><input id="idxxx" type="checkbox"><s></s></label></td>
<td><label for="idxxx"> </label></td>
<input type = "radio">ã§ããã¹ãŠåãã§ãLABELã®ã¯ã©ã¹ãåãã§ãã
ããªãã¯æ£ç¢ºã«äœãããŸãããïŒ
- åå ¥åïŒãªãã·ã§ã³3ã®è¹å°ŸïŒã¯ãã¯ã©ã¹ã§LABELã¿ã°ã§ã©ãããããŠããŸãããªãã·ã§ã³3ã¯ã¯ã©ã¹ã远å ããã°ããã§ãã
- å ¥åã®çŽåŸã«ç©ºã®Sã¿ã°ãæ¿å ¥ããŸããããå ¥åèªäœã¯è¡šç€ºãããªãããããã®ã¿ã°ã¯ãã®å ¥åãã¬ã³ããªã³ã°ããŸãã
- ä»éããããã¹ãã¯SPANã¿ã°ã§ã©ãããããŸããïŒãªãã·ã§ã³4ãé€ãïŒããã®ã¿ã°ã¯ããã®ããã¹ãã«å¯ŸããèŠèŠå ¥åã®é çœ®ãæ±ºå®ãããšãã«å¿ èŠã«ãªããŸãã
- ãªãã·ã§ã³4ã¯ãä»éããããã¹ããããŒãã«ã®å¥ã®ã»ã«ã«ããããããã®é 眮ãåé¿ããããã«å¥ã®ã¯ã©ã¹ã远å ãããŸãããå³å¯ã«èšãã°ãå察ã®ããšãè¡ãå¿ èŠããããŸã-ãªãã·ã§ã³1ã3ã«ã¢ã©ã€ã¡ã³ããæ åœããã¯ã©ã¹ã远å ããŸãããããã4çªç®ã®ãã®ãããã¯ããã«å€ãã®ãªãã·ã§ã³1ã3ããããhtmlãèšããŸããªãããã«ããã®ããã«è¡ãããŸãã
ä¿®èŸçãªè³ªåãšä¿®èŸçãªçã
1. S? , S â . , input.
2. S SPAN ? , html? , , «» .
3. , , «» html . â mni mnio. :-))
2. S SPAN ? , html? , , «» .
.new-input > S { }
.new-input > .new-input-S {}
3. , , «» html . â mni mnio. :-))
ããã¯ã¹ãµã€ãºèšå®ã«é¢ããããã€ãã®äºåçãªèæ ®äºé ãšcssã®èª¿æŽïŒborder-boxãLABELæ£èŠåãA + BãAãBãããã³[attr]ã»ã¬ã¯ã¿ãŒãïŒãã§ãã¯æžã¿ãïŒç¡å¹ã::ç䌌ã¯ã©ã¹ã®åãèªåãäœãç¥ã£ãŠããã®ãããŸãã¯èªåã®ç¥èãæŽæ°ãããã®ãããããªã人ã¯èª°ã§ããã«ããã®äžã«èŠããŸãã
äºåçãªèæ
®äºé
1. , «» css (box-sizing:content-box) width height , padding border . box-sizing:border-box , padding border width height.
2. , , «» . «» LABEL , . LABEL.
.., box-sizing:border-box LABEL, . ( ).
3. «A + B» , B, A, .. B. , «A ~ B» , B A, .. .
, «».
?
â S SPAN.
â INPUT .
â INPUT .
â INPUT .
, , â S , input radio.
, S SPAN input.
4. S input, input display:none, , LABEL , S . html hidden input? , hidden input «» , html .
2. , , «» . «» LABEL , . LABEL.
LABEL {
box-sizing:border-box; cursor:pointer; user-select:none;
}
LABEL *,
LABEL *::before,
LABEL *::after {
box-sizing:inherit;
}
.., box-sizing:border-box LABEL, . ( ).
3. «A + B» , B, A, .. B. , «A ~ B» , B A, .. .
, «».
?
<label class="new-input"><input type="checkbox"><s></s><span> </span></label>
<label class="new-input"><input type="radio"><s></s><span> </span></label>
/* 1 */
.new-input > INPUT + S {}
.new-input > INPUT ~ SPAN {}
/* 2 */
.new-input > INPUT:not(:checked) + S {}
.new-input > INPUT:not(:checked) ~ SPAN {}
/* 3 */
.new-input > INPUT:checked + S {}
.new-input > INPUT:checked ~ SPAN {}
/* 4 */
.new-input > INPUT:disabled + S {}
.new-input > INPUT:disabled ~ SPAN {}
/* 5 */
.new-input > INPUT[type="radio"] + S {}
â S SPAN.
â INPUT .
â INPUT .
â INPUT .
, , â S , input radio.
, S SPAN input.
4. S input, input display:none, , LABEL , S . html hidden input? , hidden input «» , html .
ããã§ã¯ãå ¥åã®ã¬ã³ããªã³ã°ãå§ããŸããã
äŸN1ãæãåçŽãªãã®-ã¢ã«ãã¡ãããæåã䜿çšããŸã
ãhtmlã³ãŒãã¯åãã§ãcssã¯æ¬¡ã®ããã«ãªããŸãã
/* s1 */
.new-input > INPUT + S::before {
content: "c";
}
/* s2 */
.new-input > INPUT:checked + S::before {
content: "V";
}
/* s3 */
.new-input > INPUT[type="radio"] + S::before {
content: "r";
}
/* s4 */
.new-input > INPUT[type="radio"]:checked + S::before {
content: "X";
}
/* s5 */
.new-input > INPUT:disabled + S::before {
opacity: 0.5;
}
/* s6 */
.new-input > S {
text-decoration: none;
margin-left: 3px;
margin-right: 6px;
}
/* s7 */
.new-input > S::before {
display: inline-block;
width: 1.25em;
text-align: center;
color: #fafafa;
background-color: #37474f;
}
/* s8 */
.new-input > INPUT[type="radio"] + S::before {
border-radius: 50%;
}
Sã¿ã°ã¯å ¥åãã¬ã³ããªã³ã°ããŸãããã ããæ©èœããšã«ãåå²ãããŸããSã¿ã°èªäœããLABELã§ã®é 眮ãšã次ã®SPANã«å¯Ÿããäœçœ®åãããæ åœããŸãã
ãŸããç䌌èŠçŽ S :: beforeã¯Sã¿ã°å ã«é 眮ãããå ¥åãšããŠæ©èœããŸããs1
è¡ã¯ãå ¥åãéžæãããŠããªããšãã«S ::ã®åã«é 眮ãããæåãå®çŸ©ããŸããååãšããŠãããnew-input> INPUTïŒnotïŒïŒcheckedïŒ+ S :: beforeããšæžãå¿ èŠããããŸãããäžéšã®ãã©ãŠã¶ïŒIEãªã©ïŒã§ã¯ãã®ãããªæ§æãå®è¡ã§ããªãå ŽåããããŸãã æåås2ã¯ãå ¥åãéžæããããšãã®æåãæå®ããŸããs3ããã³s4 ã©ã€ã³ã¯ãå ¥åç¡ç·ã«å¯ŸããŠåãããšãè¡ããŸãã æåås5
å ¥åããããã¯ãããå Žåã«äœãèµ·ãããã説æããŸã-ãã®å ŽåãSã¿ã°ã¯ååéæã«ãªããŸãã
è¡s6ã¯é 眮ãå®çŸ©ããŸãããã®å Žåãå·Šå³ã«ããã£ã³ã°ãäžããŸãïŒãã®äŸã®ã¿ïŒãããã«ãéåžžã®ã¹ãã©ã€ã¯ã¹ã«ãŒãåé€ããŸãã
ç·s7ã¯æ£æ¹åœ¢ã«ãªããs8ã¯å ¥åç¡ç·çšã®åã«ãªããŸãã
äŸ1ã¯codepen.ioã§èŠãããšãã§ããŸãããã€ãã£ãå ¥åãšæ°ããå ¥åããããŸããåè ã¯åé€ã§ããŸãã
衚瀺ã«é¢ããããå°ã詳现ïŒã€ã³ã©ã€ã³ãããã¯ããã©ã³ããµã€ãºãè¡ã®é«ã
font-size, line-height. line-height â font-size, line-height â , line-height â . line-height:1.25, S::before width:1.25em.
S::before display: inline-block â S::before «» ( , , .), «» . .
S::before display: inline-block â S::before «» ( , , .), «» . .
質åïŒ
ç¹å¥ãªãã£ã©ã¯ã¿ãŒã䜿çšã§ããŸããïŒãã®ããã«ïŒ
â¡â â¢â£ââââ
é©åãªãµã€ãºãäžãããšãããã ãã§ããçªå·ïŒ
åçïŒ
ã§ããŸããããããããããå¿ èŠã¯ãããŸããã倧ããªçæ žããããåžæã®ãµã€ãºã®å²ãåœãŠãåçŽæ¹åã®é 眮ãããªãã³ã°ãªã©ã§ã¿ã³ããŠãªã³ãšèžããŸããããã«ããã©ãŠã¶ãç°ãªãã°ããããã®ã·ã³ãã«ã®åäœãç°ãªããŸãã
ç§ãã¡ã¯éã«è¡ããŸãããæåŸã®äŸã«ã¯ãã®ã¢ã€ãã¢ã®å®è£ ãå«ãŸããŠããŸããã
äŸN2ãcssã䜿çšããŠå ¥åèŠçŽ ããæç»ãããŸã
ãhtmlã³ãŒãã¯åãã§ãããcssã¯æ¬¡ã®ããã«ãªããŸãã
/* s1 */
.new-input > S::before {
content: "";
display: inline-block;
width: 0.75em;
height: 0.75em;
border: 1px solid currentColor;
padding: 2px;
background-clip: content-box;
border-radius: 20%;
}
/* s2 */
.new-input > INPUT[type="radio"] + S::before {
border-radius: 50%;
}
/* s3 */
.new-input > INPUT:checked + S::before {
background-color: currentColor;
}
/* s4 */
.new-input > INPUT:disabled + S::before {
opacity: 0.5;
}
/* s5 */
.new-input > S {
text-decoration: none;
margin-left: 3px;
margin-right: 6px;
}
s1 è¡ã¯ãå ¥åãã¬ã³ããªã³ã°ããåã«S ::ãå®çŸ©ããŸããããã¯ãå¹ ãšé«ãã0.75emã«èšå®ãããã€ã³ã©ã€ã³ãããã¯ã«ãªããŸããããã¯å€§æåãšã»ãŒåãé«ãã§ã芪ã®ãã©ã³ããµã€ãºã«ãã£ãŠç°ãªããŸãã现ãå¢çç·ã¯ãçŸåšã®è²ãå åŽã®ããã£ã³ã°ãè§ã®å°ããªäžžã¿ã§èšå®ãããŸãããããŠæãéèŠãªã®ã¯ïŒ -ããããã£background-clipïŒcontent-boxãèšå®ãããŠããŸããããã¯éåžžã«è峿·±ãããããã£ã§ããbackground-colorãèšå®ãããŠããå Žåãã³ã³ãã³ãéšåã®ã¿ããã€ã³ããããããã£ã³ã°ã«ã¯åœ±é¿ããŸãããç§ãã¡ã®å¿ èŠãªãã®ãç¡ç·å ¥å
ã®s2ã©ã€ã³ã¯ã©ãŠã³ãåã«S ::ã«ãªããŸããããŒã¯ãããå ¥å
ã®s3è¡ã¯ãbackground-colorã®åã«S ::ãçŸåšã®è²ã«èšå®ããŸããã€ãŸããå éšã«æ£æ¹åœ¢ãŸãã¯åããæç»ãããŸãã
ã©ã€ã³s4ã¯å ¥åã®ããã¯ãè§£é€ããè¡s5ã¯å·Šå³ã«ããã£ã³ã°ãäžããŸãã
ãã®æ¹æ³ã®å©ç¹
- ãã¹ãŠããšãŠãã·ã³ãã«ã§ãããã¹ãŠã®ãã©ãŠã¶ã§åäœããŸããIE10ã§ããïŒ11çªç®ã®ãšãã¥ã¬ãŒã·ã§ã³ã§ïŒã
- ããªãã¯å¥œããªããã«çè²ããããšãã§ããŸãã
- S :: beforeã¯ã€ã³ã©ã€ã³ãããã¯ã§
ãããããããŒã¹ã©ã€ã³ã®äžéšã«æ£ç¢ºã«é 眮ãããã©ããããå€ããŸãããããã¹ããããé«ãå Žåã¯ãåã«è¡ã®é«ããå¢ãããããŒã¹ã©ã€ã³ã«çãŸããŸãã - å ¥åããžã¥ã¢ã©ã€ãŒãŒã·ã§ã³ã¯Sã¿ã°å ã«ãããããç°¡åã«é 眮ããã³äœçœ®åããã§ããŸãã
- S :: beforeã®emã®å¯žæ³ã«ããããã£ãã·ã§ã³ããã¹ãã®ãµã€ãºã«å¯Ÿããçžå¯Ÿçãªãµã€ãºãèšå®ã§ããŸããããšãã°ãé«ããšå¹ ã®å¶ââéãèšå®ã§ããŸãã
ãã®æ¹æ³ã®ãã¡ãªãã
äž»ã«emãµã€ãºãå®éã«ã¯ãèšç®æã®å¹ ãšé«ãïŒemããpxïŒã®å€ãåæ°ã«ãªãå ŽåããããŸããéåžžã®ç»é¢ã®éåžžã®ã³ã³ãã¥ãŒã¿ãŒã§ã¯ãäžžããæ£ããæ©èœããªãå ŽåããããŸããããšãã°ãåãMozilaã®12.8px x 12.8pxã®å¯žæ³ã¯ã13px x12pxã«ãªãå¯èœæ§ããããŸããæ¬¡ã«ãåºå®ãµã€ãºãèšå®ããå¿ èŠããããŸããææ°ã®ã¢ãã¿ãŒããããªã«ãŒããã©ããããããã¿ãã¬ãããã¹ããŒããã©ã³ã§ã¯ããã©ãŠã¶ãŒã®ãã€ã³ãïŒãã¯ã»ã«ïŒãè€æ°ã®ç»é¢ãã¯ã»ã«ã§æ§æãããŠãããããããã¯çºçããŸããã
äŸ2ã¯codepen.ioã§èŠãããšãã§ããŸãããã€ãã£ãå ¥åãšæ°ããå ¥åããããŸããåè ã¯åé€ã§ããŸãã
ãããã£ãŠãæåã®ã¿ã¹ã¯ïŒå ¥åã®ã¬ã³ããªã³ã°ïŒãå®è¡ãããŸããéžæãããã«ã©ãŒãªã³ã°ãã«æž¡ããŸãã
çè²å ¥å
äŸïŒhtmlïŒ
<label class="new-input"><input name="chb1" type="checkbox" ...><s></s><span> </span></label>
<label class="new-input"><input id="rb1" type="radio" ...><s></s><span> </span></label>
ãã§ãã¯ããã¯ã¹ã¿ã€ãã®å ¥åãååã§åç §ããã©ãžãªãIDã§åç §ããŸãã
ãã¹ãŠãéãå¡ã
/* input */
.new-input > INPUT[name="chb1"] + S,
.new-input > INPUT#rb1 + S {
color: #0091ea;
}
/* text */
.new-input > INPUT[name="chb1"] ~ SPAN,
.new-input > INPUT#rb1 ~ SPAN {
color: #0091ea;
}
/* */
.new-input > INPUT[name="chb1"] ~ *,
.new-input > INPUT#rb1 ~ * {
color: #0091ea;
}
cssã®ç¹ç°æ§ãèŠããŠãããŠãã ããããããã®ã¹ã¿ã€ã«ã¯åºæ¬çãªã¹ã¿ã€ã«ãããç¹ç°çã§ãããééããªãæ©èœããŸãããããã¯äžèšã®ãã®ãšã©ã®ããã«ç°ãªããŸããïŒéžæããå ¥åã«ã®ã¿é©çšããããã®-æå®ãããååãšIDå€ãæã€ãã®ã
éžæãããŠããªãå ¥åãããŸãèŠæ ããè¯ããªãããšãé€ããŠãããã§ã¯ãã¹ãŠåé¡ãããŸãã-现ãéãå¢çç·ã¯ã»ãšãã©ç®ç«ã¡ãŸããã
å ¥åãéžæãããšç·è²ã«ãªããŸã
/* input */
.new-input > INPUT[name="chb1"]:checked + S,
.new-input > INPUT#rb1:checked + S {
color: #00c853;
}
/* text */
.new-input > INPUT[name="chb1"]:checked ~ SPAN,
.new-input > INPUT#rb1:checked ~ SPAN {
color: #00c853;
}
/* */
.new-input > INPUT[name="chb1"]:checked ~ *,
.new-input > INPUT#rb1:checked ~ * {
color: #00c853;
}
ç§ã®æèŠã§ã¯ãæåã®ãªãã·ã§ã³ã¯ããŸãè¯ããããŸãã-ãã¬ãŒã ãšå åŽã®æ£æ¹åœ¢/åã®äž¡æ¹ãç·è²ã«ãªããŸããããªãã¯ãããçè²ããããšãã§ããã ãã§ãã
/* input */
.new-input > INPUT[name="chb1"]:checked + S::before,
.new-input > INPUT#rb1:checked + S::before {
background-color: #00c853;
}
å ¥åãéžæãããŠããªãå Žåã¯èµ€è²ã§è¡šç€ºãããŸã
/* input */
.new-input > INPUT[name="chb1"]:not(:checked) + S,
.new-input > INPUT#rb1:not(:checked) + S {
color: #d50000;
}
/* text */
.new-input > INPUT[name="chb1"]:not(:checked) ~ SPAN,
.new-input > INPUT#rb1:not(:checked) ~ SPAN {
color: #d50000;
}
/* */
.new-input > INPUT[name="chb1"]:not(:checked) ~ *,
.new-input > INPUT#rb1:not(:checked) ~ * {
color: #d50000;
}
è«çã¯æç¢ºã§ããïŒããè€éãªãã¶ã€ã³ãäœæãç¶ããããšãã§ããŸãã
ããšãã°ãå ¥åãéžæãããŠããªãå Žåãããã¹ãã¯èµ€ã§å€ªåã«ãªããå åŽã®å ¥åèŠçŽ ãšããã¹ããéžæãããŠããå Žåã¯ãç·ã«ãªããŸããåçŽïŒ
/* , */
.new-input > INPUT[name="chb1"]:not(:checked) ~ SPAN,
.new-input > INPUT#rb1:not(:checked) ~ SPAN {
color: #d50000;
font-weight: bold;
}
/* input, */
.new-input > INPUT[name="chb1"]:checked + S::before,
.new-input > INPUT#rb1:checked + S::before {
background-color: #00c853;
}
/* , */
.new-input > INPUT[name="chb1"]:checked ~ SPAN,
.new-input > INPUT#rb1:checked ~ SPAN {
color: #00c853;
}
ãŸããããšãã°ãå ¥åã®ã°ã«ãŒãå šäœïŒ10ã15åïŒãåŠçããå¿ èŠããããŸããããããã®è¡ãæžããªãããã«ããããã«ããããã®å ±éã®èŠªïŒ.parent_elementïŒãèŠã€ããŠãæ¡ä»¶ãçãããããšãã§ããŸãã
.parent_element > .new-input > INPUT:not(:checked) ~ SPAN {
color: #d50000;
font-weight: bold;
}
.parent_element > .new-input > INPUT:checked + S::before {
background-color: #00c853;
}
.parent_element > .new-input > INPUT:checked ~ SPAN {
color: #00c853;
}
codepen.io ã®æåŸã®äŸã§ãã¹ãŠãèŠãããšãã§ããŸã
ããã¯ããã§ãããããŠããã¯ããã§ããããã¯å®ç§äž»çŸ©è ã®ãèªçã®å°ãã²ã£ãããŠããã€ãŸãæŽåã®åé¡ã ãã«ãšã©ãŸããŸãã
èŠèŠçãªå ¥åãšä»éããããã¹ããæãã
ãŸããããã¹ãã®é çœ®ãæžåŒèšå®ãªã©ã«ã€ããŠããç¥ãããŠããããšãæãåºãããŠãã ããããã¹ãŠãã«ãããããŠããŸãã
ããç¥ãããŠããããš
, , css . .
1. font-size , . (baseline), «» . «» â g â «» . (cap height) â «» () . «» â â «» . , , . «» 75% . , font-size:16px, Arial 12px. , «» .
2. line-height . , font-size, , . , .
3. , S SPAN font-size line-height - . font-size:16px line-height:1.25. N1 S::before 1.25em, . N2 ( ) â S::before 0.75em, . font-size . , .
4. - «», , . . , , 50%. , , 150%. -, / â -! , -.
? , , input â , , , . !
1. font-size , . (baseline), «» . «» â g â «» . (cap height) â «» () . «» â â «» . , , . «» 75% . , font-size:16px, Arial 12px. , «» .
2. line-height . , font-size, , . , .
3. , S SPAN font-size line-height - . font-size:16px line-height:1.25. N1 S::before 1.25em, . N2 ( ) â S::before 0.75em, . font-size . , .
4. - «», , . . , , 50%. , , 150%. -, / â -! , -.
? , , input â , , , . !
SPANã®ä»éããããã¹ãã2è¡ãŸãã¯3è¡ã§è¡šç€ºããããšã©ããªããŸããïŒæããã«ãããã¯å ¥åã®äžã§ãé©åãããŸããããã¯ãããã§ã¯ãããŸãããããã¯ä¿®æ£ãããå¿ èŠããããŸãã
å€ä»£ã®æ¹æ³ã®1ã€ã¯ãSã¿ã°ãfloatïŒå·ŠãSPANã¿ã°ãdisplayïŒblockããã³overflowïŒhiddenã§ãã
ããã«ãããããã¹ãã®åãäœæãããŸãããããã®ããã€ãã«ã¯é©åãªããŒãžã³ãããããããã®éã«ã¹ããããçãããšæ³å®ãããŸããããŠãSPANåŸã®ãããŒãã®çµäºã䌎ãçæ žã远å ãããŠããŸããææ°ã®ã«ãŒãã䜿çšããŸã-flexboxã䜿çšããŸãã圌ã¯ããã§ã¯å®å šã«å Žéãã§ãã
.new-input {
display: flex;
flex-direction: row;
align-items: start;
}
.new-input > S {
margin-right: 4px;
flex: 0 0 auto;
}
.new-input > SPAN {
flex: 0 1 auto;
}
ãã®å ŽåãLABELã¿ã°ïŒ.new-inputïŒã¯flexã«ãªããSãšSPANã¯ãããã¯ã«ãªããLABELã®äžéšã«é 眮ãããŸããSPANã®ããã¹ãã¯ãå¿ èŠã«å¿ããŠæ°è¡ã«ãªããŸãããã®ãããèŠèŠçãªå ¥åã¯ä»¥åã®S ::ã§èª¬æãããŠããŸãããé«ãã«é¢ä¿ãªããSPAN S :: beforeã¯æåã®SPANã©ã€ã³ã«æããããŸãããŸãã¯ãalign-itemsïŒcenterãæå®ããããšãã§ããŸãã1è¡ã®SPANã䜿çšãããšãèŠèŠçãªå ¥åãäžéšã«è¡šç€ºãããäžå€®ã«2è¡ã2è¡ç®ã«3è¡ã衚瀺ãããŸããæåŸã®äŸã§ã¯ãå ¥åã®å Žæãåãæ¿ããããšãã§ããŸãã
ããã§å šéšã§ã
ããã誰ãã«ãšã£ãŠé¢çœããŠåœ¹ã«ç«ã£ãããšãé¡ã£ãŠããŸããç§ãããŸãå±ããªãã§ãã ãã-ããã¯Habrã§ã®ç§ã®æåã®çµéšã§ãã
äŸ1ã¯ãå ¥åã®å€æŽãšé£æ¥ããèŠçŽ ãšã®éã®çžäºäœçšã®ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã«ãããŸããã
äŸN2-ãœãªã¥ãŒã·ã§ã³ã®åºç€ãšããŠcssã䜿çšããå ¥åã®èŠèŠåã
æåŸã®äŸã¯ãäžç·ã«èª¬æãããŠãããã¹ãŠã§ãã
ç¹å®ã®å®è£ ã«ã€ããŠ
ç¹å®ã®ãŠãŒã¶ãŒãç·šéã§ãããã£ãŒã«ãã®ãããã¯ãããããªèæ¯ã§åŒ·èª¿è¡šç€ºãããæ®ãã®å ¥åã«ã¯ç¡å¹ãªããããã£ããããæ å ±ã®ã¿ãæäŸããåºç¯ãªãã©ãŒã ããããŸããããããã£ãŠãã¹ã¿ã€ã«ã.new-input> INPUTïŒdisabled + S :: beforeãã¯é©çšãããŸããã§ããã
UPD
ã³ã¡ã³ããžã®å¿çäŸN3ã
è·å Žã§ã®é ãå ¥åã«å¯ŸããããŒãšãã©ãŒã«ã¹ã®ãµããŒãããããŸãã