CSSã®text-decoration-layerã䜿ããè€æ°ã®ããã¹ãè£ é£ŸãéããŠé åçãªèŠèŠå¹æãçã¿åºããŸããå®è·µçãªã³ãŒãäŸãéããŠãã¯ãªãšã€ãã£ããªãã¶ã€ã³ã®å®è£ æ¹æ³ãåŠã³ãŸãããã
CSS text-decoration-layer ã®åæïŒè€æ°ã®ãšãã§ã¯ãã®éãããããã¹ã¿ãŒãã
CSSã«ã¯ããã¹ããã¹ã¿ã€ãªã³ã°ããããã®è±å¯ãªããããã£ãçšæãããŠããŸããããã®äžã§ãç¹ã«è峿·±ãããããèŠéããããã¡ãªã®ã text-decoration-layer
ããããã£ã§ãããã®ããããã£ã¯ãä»ã®ããã¹ãè£
食ããããã£ãšçµã¿åãããããšã§ãéçºè
ãè€æ°ã®è£
食ãéããŠèŠèŠçã«çŸããè€éãªããã¹ããšãã§ã¯ããäœæããããšãå¯èœã«ããŸãããã®ç·åã¬ã€ãã§ã¯ãtext-decoration-layer
ã®è©³çްãæãäžãããŠããŒã¯ã§é
åçãªããã¹ããã¶ã€ã³ãäœæããããã«ããã䜿çšããæ¹æ³ãæ¢ããŸãã
text-decoration-layer
ããããã£ãçè§£ãã
text-decoration-layer
ããããã£ã¯ãããã¹ãè£
食ïŒäžç·ãäžç·ãæã¡æ¶ãç·ãªã©ïŒãããã¹ãèªäœã«å¯ŸããŠã©ã®é åºã§æç»ãããããå¶åŸ¡ããŸããããã¯2ã€ã®å€ãåãå
¥ããŸãïŒ
auto
ïŒããã©ã«ãå€ã§ãããã©ãŠã¶ãè£ é£Ÿã®æç»é ãæ±ºå®ããéåžžã¯ããã¹ãã®äžã«é 眮ããŸããbelow
ïŒããã¹ãè£ é£Ÿãããã¹ãã®äžã«æç»ãããã¹ãã§ããããšãæå®ããŸãã
å€èªäœã¯åçŽã«èŠããŸãããçã®å㯠text-decoration-layer
ãä»ã®ããã¹ãè£
食ããããã£ãšçµã¿åãããŠã¬ã€ã€ãŒå¹æãäœæãããšããã«ãããŸããããã説æããããã«ãããã€ãã®å®è·µçãªäŸãæ¢ããŸãã
äž»èŠãªããã¹ãè£ é£Ÿããããã£
é«åºŠãªéããããã¯ããã¯ã«é£ã³èŸŒãåã«ããããã䜿çšããäž»èŠãªCSSããã¹ãè£ é£Ÿããããã£ãç°¡åã«ããããããŸãããïŒ
text-decoration-line
ïŒé©çšããè£ é£Ÿã®çš®é¡ãæå®ããŸãïŒäŸïŒunderline
ãoverline
ãline-through
ïŒãtext-decoration-color
ïŒããã¹ãè£ é£Ÿã®è²ãèšå®ããŸããtext-decoration-style
ïŒè£ 食ã®ã¹ã¿ã€ã«ãå®çŸ©ããŸãïŒäŸïŒsolid
ãdouble
ãdashed
ãdotted
ãwavy
ïŒãtext-decoration-thickness
ïŒè£ 食ç·ã®å€ªããå¶åŸ¡ããŸãããã®ããããã£ã¯ãæ£ç¢ºãªèŠèŠãã¶ã€ã³ãäœæããããã« `text-underline-offset` ãšäžç·ã«äœ¿çšãããããšããããããŸããtext-underline-offset
ïŒäžç·ãšããã¹ãã®ããŒã¹ã©ã€ã³ãšã®éã®è·é¢ãæå®ããŸããããã¯ãäžç·ããã£ã»ã³ãïŒg, j, p, q, yãªã©ã®æåã®äžã«äŒžã³ãéšåïŒãé ããªãããã«ããããã«éèŠã§ãã
åºæ¬çãªäŸïŒæºå
text-decoration-layer
ãããã¹ãã®å€èгã«ã©ã®ããã«åœ±é¿ãããã瀺ãããã«ãããã€ãã®åºæ¬çãªäŸããå§ããŸãããã
äŸ1ïŒãªãã»ããä»ãã®åçŽãªäžç·
ãã®äŸã§ã¯ãããã¹ãã®ãã£ã»ã³ããšè¡çªããã®ãé²ãããã«ããªãã»ãããæå®ããåçŽãªäžç·ã瀺ããŸãã
.underlined {
text-decoration: underline;
text-decoration-color: blue;
text-underline-offset: 0.3em;
}
HTML:
<p class="underlined">ãã®ããã¹ãã«ã¯ã¹ã¿ã€ãªãã·ã¥ãªäžç·ãä»ããŠããŸãã</p>
äŸ2ïŒããã¹ãã®äžã®ç Žç·ã®äžç·
ããã§ã¯ãtext-decoration-layer: below
ã䜿çšããŠãããã¹ãã®äžã«ç Žç·ã®äžç·ãé
眮ãã埮ããªèæ¯å¹æãäœæããŸãã
.overlined {
text-decoration: overline dashed;
text-decoration-color: lightgray;
text-decoration-layer: below;
}
HTML:
<p class="overlined">èåŸã«äžç·ãããããã¹ãã§ãã</p>
é«åºŠãªãã¯ããã¯ïŒè€æ°ã®è£ 食ã®éããã
æ¬åœã®éæ³ã¯ãç䌌èŠçŽ ïŒ::before
ãš ::after
ïŒã䜿çšããããè€æ°ã® text-decoration
ããããã£ãé©çšãããããŠãè€æ°ã®ããã¹ãè£
食ãéãããšãã«èµ·ãããŸããããã«ãããåäžã®è£
食ã§ã¯éæãå°é£ãŸãã¯äžå¯èœãªè€éãªå¹æãå¯èœã«ãªããŸãã
äŸ3ïŒäºéäžç·å¹æ
ãã®äŸã§ã¯ãç䌌èŠçŽ ã䜿çšããŠäºéäžç·å¹æãäœæããŸããäºéç·ãã·ãã¥ã¬ãŒãããããã«ãç°ãªãã¹ã¿ã€ã«ãšäœçœ®ãæã€2ã€ã®äžç·ãäœæããŸãã
.double-underline {
position: relative;
display: inline-block;
}
.double-underline::before,
.double-underline::after {
content: '';
position: absolute;
left: 0;
width: 100%;
height: 1px; /* Adjust for thickness */
background-color: currentColor; /* Inherit text color */
}
.double-underline::before {
bottom: -0.2em; /* Adjust for spacing */
}
.double-underline::after {
bottom: -0.4em; /* Adjust for spacing */
}
HTML:
<span class="double-underline">äºéäžç·ä»ãããã¹ã</span>
説æïŒ 芪èŠçŽ ã« position: relative
ã䜿çšããŠãç䌌èŠçŽ ã®é
眮ã³ã³ããã¹ããäœæããŸããæ¬¡ã«ã::before
ãš ::after
ç䌌èŠçŽ ã絶察é
眮ããŠ2ã€ã®äžç·ãäœæããŸããbottom
ããããã£ã調æŽããŠãäžç·ãšããã¹ãã®éã®ééãå¶åŸ¡ããŸãã`background-color` ã `currentColor` ã«èšå®ããããšã§ãäžç·ãããã¹ãã®è²ãç¶æ¿ããã¹ã¿ã€ãªã³ã°ã«æè»æ§ãããããããŸãã
äŸ4ïŒèæ¯ãã€ã©ã€ãä»ãã®äžç·
ãã®äŸã§ã¯ãäžç·ãšåŸ®ããªèæ¯ãã€ã©ã€ããçµã¿åãããŠãããã¹ãã«æ³šæãåŒããŸãããã®å¹æã¯ãå¯èªæ§ã確ä¿ããããã«è²ã®ã³ã³ãã©ã¹ããæ éã«èæ ®ããå¿ èŠããããŸãã
.highlight-underline {
position: relative;
display: inline-block;
}
.highlight-underline::before {
content: '';
position: absolute;
left: -0.1em; /* Adjust for padding */
right: -0.1em; /* Adjust for padding */
bottom: -0.2em; /* Position the highlight */
height: 0.4em; /* Adjust for highlight height */
background-color: rgba(255, 255, 0, 0.3); /* Semi-transparent yellow */
z-index: -1; /* Place behind the text */
}
.highlight-underline {
text-decoration: underline;
text-decoration-color: darkgoldenrod;
text-underline-offset: 0.1em;
}
HTML:
<span class="highlight-underline">ãã€ã©ã€ããããäžç·</span>
説æïŒ ::before
ç䌌èŠçŽ ã䜿çšããŠèæ¯ãã€ã©ã€ããäœæããŸããz-index: -1
ã䜿çšããŠããã¹ãã®èåŸã«é
眮ããleft
ãright
ãbottom
ããããã£ã調æŽããŠãã®ãµã€ãºãšäœçœ®ãå¶åŸ¡ããŸããrgba()
ã«ã©ãŒå€ã«ãããåéæã®ãã€ã©ã€ããäœæã§ããŸãããã®åŸãtext-decoration
ããããã£ã䜿çšããŠæšæºã®äžç·ãé©çšããŸããèŠèŠçã«é
åçãªçµæãåŸãããã«ã¯ããªãã»ãããšãã€ã©ã€ãã®ãµã€ãºã調æŽããããšãéèŠã§ãã
äŸ5ïŒã°ã©ããŒã·ã§ã³ã«ã©ãŒã®æ³¢ç·äžç·
ãã®äŸã§ã¯ãã°ã©ããŒã·ã§ã³å¹æãæã€æ³¢ç·ã®äžç·ãäœæããŸããããã¯ãè€æ°ã®ããããã£ãå Žåã«ãã£ãŠã¯æé©ãªçµæãåŸãããã«SVGãçµã¿åããããããé«åºŠãªãã¯ããã¯ã§ãã
.wavy-gradient-underline {
text-decoration: underline;
text-decoration-style: wavy;
text-decoration-color: transparent;
text-underline-offset: 0.3em;
background-image: linear-gradient(to right, red, orange, yellow, green, blue, indigo, violet);
background-clip: text;
-webkit-background-clip: text;
color: transparent;
}
HTML:
<p class="wavy-gradient-underline">æ³¢ç·ã°ã©ããŒã·ã§ã³äžç·ããã¹ã</p>
説æïŒ `wavy` ã¹ã¿ã€ã«ã®äžç·ããå§ããŸããæ¬¡ã«ãå®éã®äžç·ã衚瀺ãããªãããã« `text-decoration-color` ã `transparent` ã«èšå®ããŸãããã®åŸãç·åœ¢ã°ã©ããŒã·ã§ã³ãæã€ `background-image` ã䜿çšããŸããéèŠãªã®ã¯ã`background-clip: text` ãšãã®ãã³ããŒãã¬ãã£ãã¯ã¹çã§ãã `-webkit-background-clip: text` ã䜿çšããŠãèæ¯ã®ã°ã©ããŒã·ã§ã³ãããã¹ãã«ã¯ãªããããããšã§ããæåŸã«ãããã¹ãã®è²ã `transparent` ã«èšå®ããèæ¯ã®ã°ã©ããŒã·ã§ã³ãäºå®äžããã¹ãã®è²ãšäžç·ã®è²ã«ãªãããã«ããŸããããã«ã¯ãã©ãŠã¶ã `-webkit-background-clip` ããµããŒãããŠããå¿ èŠããããããå ç¢ãªã¯ãã¹ãã©ãŠã¶äºææ§ã®ããã«SVGã®äœ¿çšãæ€èšããããšããããŸãã
ã¢ã¯ã»ã·ããªãã£ã«é¢ããèæ ®äºé
ããã¹ãè£ é£Ÿå¹æã䜿çšããéã«ã¯ãã¢ã¯ã»ã·ããªãã£ãèæ ®ããããšãéåžžã«éèŠã§ãã以äžã«ããã€ãã®äž»èŠãªã¬ã€ãã©ã€ã³ã瀺ããŸãïŒ
- è²ã®ã³ã³ãã©ã¹ãïŒ ããã¹ããè£ é£Ÿãèæ¯ã®éã«ååãªè²ã®ã³ã³ãã©ã¹ãã確ä¿ããŠãã ãããã³ã³ãã©ã¹ããäœããšãèŠèŠé害ã®ãããŠãŒã¶ãŒã«ãšã£ãŠããã¹ããèªã¿ã«ãããªãããèªããªããªãå¯èœæ§ããããŸããè²ã®ã³ã³ãã©ã¹ãæ¯ããã§ãã¯ããããŒã«ã䜿çšããWCAGïŒWeb Content Accessibility GuidelinesïŒãªã©ã®ã¢ã¯ã»ã·ããªãã£åºæºãæºãããŠããããšã確èªããŠãã ããã
- è²ã ãã«é ŒããªãïŒ æå³ãäŒããããã«è²ã ãã䜿çšããªãã§ãã ãããäŸãã°ããšã©ãŒã瀺ãããã«èµ€ãäžç·ã䜿çšããå Žåã¯ããšã©ãŒã¢ã€ã³ã³ãã¡ãã»ãŒãžãªã©ãããã¹ãããŒã¹ã®ã€ã³ãžã±ãŒã¿ãŒãæäŸããŠãã ããã
- ä»£æ¿ææ®µãæäŸããïŒ ããã¹ãè£ é£ŸãçŽç²ã«è£ 食çã§ãããéèŠãªæ å ±ãäŒããªãå Žåã¯ãè£ é£ŸãèŠããè§£éãããã§ããªããŠãŒã¶ãŒã®ããã«ãæ å ±ãæç€ºããå¥ã®æ¹æ³ãæäŸããããšãæ€èšããŠãã ããã
- ãŠãŒã¶ãŒã®å¥œã¿ãå°éããïŒ äžéšã®ãŠãŒã¶ãŒã¯ããã¹ãã¹ã¿ã€ãªã³ã°ã«å¥œã¿ãããããç¹å®ã®ã¹ã¿ã€ã«ãå®å šã«ç¡å¹ã«ããŠããå ŽåããããŸããããã¹ãè£ é£Ÿã衚瀺ãããªãå Žåã§ãããŠã§ããµã€ãã䜿çšå¯èœã§ã¢ã¯ã»ã¹ããããããšã確èªããŠãã ããã
ãã©ãŠã¶ã®äºææ§
äž»èŠãªããã¹ãè£
食ããããã£ã®ã»ãšãã©ã¯ãçŸä»£ã®ãã©ãŠã¶ã§åºããµããŒããããŠããŸããããããtext-decoration-layer
ããããã£ã®ãµããŒãã¯æ¯èŒçã«éãããŠããŸããæ¬çªç°å¢ã§äœ¿çšããåã«ãå¿
ãäºææ§ããŒãã«ïŒäŸïŒon MDN Web DocsïŒã確èªããŠãã ãããå€ããã©ãŠã¶ã§ã¯ãåæ§ã®å¹æãåŸãããã«ç䌌èŠçŽ ãªã©ã®ä»£æ¿ãã¯ããã¯ã䜿çšããå¿
èŠããããããããŸããã
䜿çšäŸãšã€ã³ã¹ãã¬ãŒã·ã§ã³
ããã¹ãè£ é£Ÿã®ã¬ã€ã€ãŒåæã¯ãå¹ åºãåµé çãªå¯èœæ§ãéããŸãã以äžã«ããã€ãã®æœåšçãªäœ¿çšäŸãšã€ã³ã¹ãã¬ãŒã·ã§ã³ã瀺ããŸãïŒ
- ã³ãŒã«ãã¥ã¢ã¯ã·ã§ã³ïŒ äžç·ãšèæ¯ãã€ã©ã€ãã®çµã¿åããã䜿çšããŠãã³ãŒã«ãã¥ã¢ã¯ã·ã§ã³ãã¿ã³ãããèŠèŠçã«é åçã§ç®ãåŒããã®ã«ããŸãã
- èŠåºããšã¿ã€ãã«ïŒ ã¬ã€ã€ãŒåãããããã¹ãè£ é£Ÿã䜿çšããŠãæ·±ã¿ãšèŠèŠçãªé¢çœããå ãããŠããŒã¯ã§èšæ¶ã«æ®ãèŠåºããäœæããŸãã
- 匷調ãšãã€ã©ã€ãïŒ åŸ®ããªè£ 食ã䜿çšããŠã段èœå ã®ç¹å®ã®åèªããã¬ãŒãºã匷調ããŸãã
- ãã©ã³ãã£ã³ã°ãšããžã¥ã¢ã«ã¢ã€ãã³ãã£ãã£ïŒ ãã©ã³ãã®ããžã¥ã¢ã«ã¢ã€ãã³ãã£ãã£ã«æ²¿ã£ãããã¹ãè£ é£Ÿå¹æãåãå ¥ããŸãã
- ã€ã³ã¿ã©ã¯ãã£ããªå¹æïŒ CSSã®ãã©ã³ãžã·ã§ã³ãšã¢ãã¡ãŒã·ã§ã³ã䜿çšããŠããŠãŒã¶ãŒã®ã€ã³ã¿ã©ã¯ã·ã§ã³ïŒäŸïŒãããŒå¹æïŒã«å¿çããåçãªããã¹ãè£ é£Ÿå¹æãäœæããŸãã
- ã¢ã¯ã»ã·ããªãã£ãæèãããã¶ã€ã³ïŒ ãã¹ãŠã®ãŠãŒã¶ãŒã®äœéšãåäžãããããã«ãåžžã«ã¢ã¯ã»ã·ããªãã£ã®ãã¹ããã©ã¯ãã£ã¹ã念é ã«çœ®ããæŠç¥çã«ããã¹ãè£ é£Ÿãæ¡çšããŸãã
å®äžçã®äŸãšåœéçãªèæ ®äºé
ãããã®ãã¯ããã¯ã®å®éã®å¿çšäŸããã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã念é ã«çœ®ããŠèããŠã¿ãŸãããïŒ
- Eã³ããŒã¹ã®ååãªã¹ãïŒã°ããŒãã«ïŒïŒ åååã«åŸ®ããªèæ¯ãã€ã©ã€ããä»ãããšãé床ã«éªéã«ãªããã«ç®ãåŒãããšãã§ããŸããè²ã®å¥œã¿ã¯æåã«ãã£ãŠå€§ããç°ãªããããè²ã®éžæã«ã¯æ éãªé æ ®ãéèŠã§ããäŸãã°ãèµ€ã¯äžéšã®ã¢ãžã¢è«žåœã§ã¯å¹žéã象城ãããããããŸããããè¥¿æŽæåã§ã¯å±éºãæå³ããããšããããŸãã
- ãã¥ãŒã¹èšäºã®èŠåºãïŒåœéãã¥ãŒã¹ïŒïŒ äºéäžç·ããŠããŒã¯ãªäžç·ã¹ã¿ã€ã«ã¯ããã¥ãŒã¹ã®èŠåºãã«æŽç·Žããããããã§ãã·ã§ãã«ãªå€èгãäœãåºãããšãã§ããŸããã¿ã€ãã°ã©ãã£ã®éžæã«ã泚æããŠãã ãããäžéšã®ãã©ã³ãã¯ç¹å®ã®èšèªã§ä»ã®èšèªããããããã«è¡šç€ºãããŸãã䜿çšãããã©ã³ãã察象èšèªã®æåã»ããããµããŒãããŠããããšã確èªããŠãã ããã
- æè²ãã©ãããã©ãŒã ïŒå€èšèªïŒïŒ æè²ã³ã³ãã³ãã®éèŠãªçšèªã埮ããªäžç·ãšèæ¯è²ã§ãã€ã©ã€ãããããšã§ãçè§£ãå©ããããšãã§ããŸããç¹ã«è€éãªæåã»ãããçºé³åºå¥ç¬Šå·ãæã€èšèªã«ãããŠããã€ã©ã€ãè²ãã¢ã¯ã»ã·ãã«ã§ãããå¯èªæ§ã劚ããªãããšã確èªããŠãã ããã
- ã©ã³ãã£ã³ã°ããŒãžã®ã³ãŒã«ãã¥ã¢ã¯ã·ã§ã³ïŒã°ããŒãã«ããŒã±ãã£ã³ã°ïŒïŒ ã³ãŒã«ãã¥ã¢ã¯ã·ã§ã³ãã¿ã³ã«æ³¢ç·äžç·ãã°ã©ããŒã·ã§ã³å¹æã䜿çšãããšããšã³ã²ãŒãžã¡ã³ããé«ããããšãã§ããŸãããã ããæ³šæãæ£æŒ«ã«ãããããå éææ§ãŠããããåŒãèµ·ããå¯èœæ§ã®ããã¢ãã¡ãŒã·ã§ã³ã广ã®äœ¿çšã¯é¿ããŠãã ããããã£ãŒãããã¯ãåŸãããã«ãåžžã«å€æ§ãªãªãŒãã£ãšã³ã¹ã§ãã¶ã€ã³ããã¹ãããŠãã ããã
çµè«ïŒããªãã®åµé æ§ãè§£ãæŸã€
text-decoration-layer
ããããã£ã¯ãä»ã®ããã¹ãè£
食ããããã£ãç䌌èŠçŽ ã®ãããªåµé çãªãã¯ããã¯ãšçµã¿åãããããšã§ããŠã§ãäžã®ããã¹ãã®èŠèŠçé
åãé«ããããã®åŒ·åãªããŒã«ããããæäŸããŸããéããããè²ã®ã³ã³ãã©ã¹ããã¢ã¯ã»ã·ããªãã£ã®ååãçè§£ããããšã§ããŠã§ããµã€ãã®ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžããããèŠäºã§é
åçãªããã¹ããã¶ã€ã³ãäœæã§ããŸããã¢ã¯ã»ã·ããªãã£ãåªå
ãããã¶ã€ã³ã培åºçã«ãã¹ãããŠãèœåãé²èЧç°å¢ã«é¢ä¿ãªãããã¹ãŠã®ãŠãŒã¶ãŒã«ãšã£ãŠããŸãæ©èœããããšã確èªããããšãå¿ããªãã§ãã ããã
ããŸããŸãªããããã£ãšãã¯ããã¯ã®çµã¿åããã詊ããŠãç¬èªã®ããã¹ãè£ é£Ÿã¹ã¿ã€ã«ãçºèŠããŠãã ãããå¯èœæ§ã¯äºå®äžç¡éã§ãïŒ