::placeholder
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2020ë 1ì.
::placeholder CSS ìì¬ ììë <input> í¹ì <textarea> ìì ìì ìë íë ì´ì¤íë í
ì¤í¸ë¥¼ ëíë
ëë¤.
ìëí´ ë³´ê¸°
input {
margin-top: 0.5rem;
}
input::placeholder {
font-weight: bold;
opacity: 0.5;
color: red;
}
<label for="first-name">Your phone number:</label><br />
<input
id="first-name"
type="tel"
name="phone"
minlength="9"
maxlength="9"
placeholder="It must be 9 digits" />
::first-line ìì¬ ììì ì ì©í ì ìë íì ì§í©ì CSSë§ì´ ::placeholder ì ê·¸ ì íì ê·ì¹ì ì¬ì©ë ì ììµëë¤.
ì°¸ê³ : ë§ì ë¸ë¼ì°ì ìì íë ì´ì¤íë í ì¤í¸ì ì¸íì ë°í¬ëª íê±°ë ì ì íìì 기본ê°ì¼ë¡ ê°ì§ëë¤.
구문
::placeholder {
/* ... */
}
ì ê·¼ì±
>ìì ëë¹
ëë¹ ë¹ì¨
íë ì´ì¤íë í ì¤í¸ë ì¼ë°ì ì¼ë¡ ì¸íì ì´ë¤ ë´ì©ì´ ì í¨í ì§ë£° ë ë°ì ììì¼ë¡ ëíë´ë©°, ì´ë ì¤ì ì¸íì ëí ì ë ¥ì´ ìëëë¤.
íë ì´ì¤íë í ì¤í¸ì ì¸íì ë°°ê²½ ì¬ì´ì ëë¹ ë¹ì¨ì ì¡°ì íë ê²ì ìë ¥ì´ ë®ì ì¬ëë¤ë ì¶©ë¶í ì½ì ì ìëë¡ í기 ìí´ ì¤ìíê² ìê°ëë©°, íë ì´ì¤íë í ì¤í¸ì ì¸í í ì¤í¸ì ìì ì¬ì´ì ì¶©ë¶í ì°¨ì´ë¥¼ ëì´ íë ì´ì¤íëê° ì ë ¥ë ë°ì´í°ë¡ ì°©ê°ëì§ ìëë¡ íë ê² ëí ì¤ìí©ëë¤.
ìì ëë¹ ë¹ì¨ì íë ì´ì¤íë í ì¤í¸ì ì¸í ë°°ê²½ ììì ëª ë를 ë¹êµíì¬ ì°¾ìµëë¤.ì¹ ì½í ì¸ ì ê·¼ì± ê°ì´ëë¼ì¸ (WCAG)ì 충족ìí¤ê¸° ìí´ìë, í ì¤í¸ ì½í ì¸ ìë 4.5:1ì ë¹ì¨ì´ ì구ëê³ ë¨¸ë¦¿ë§ ê°ì í° í ì¤í¸ë 3:1 ì ë¹ì¨ì´ ì구ë©ëë¤. í° í ì¤í¸ë 18.66pxì êµµì ê¸ì¨ì²´ í¹ì 24px ì´ìì¼ë¡ ì ìë©ëë¤.
- WebAIM: ìì ëë¹ íì¸
- MDN Understanding WCAG, Guideline 1.4 explanations
- Understanding Success Criterion 1.4.3 | W3C Understanding WCAG 2.0
ì¬ì©ì±
ì¶©ë¶í ìì ëë¹ë¥¼ ê°ì§ íë ì´ì¤íë í
ì¤í¸ë ì
ë ¥ë ì¸íì¼ë¡ í´ìë ì ììµëë¤. íë ì´ì¤íë í
ì¤í¸ë ì¬ì©ìê° <input> ììì ì½í
ì¸ ë¥¼ ì
ë ¥íì ë ì¬ë¼ì ¸ì¼ í©ëë¤. ì´ë¬í ìí©ì ì±ê³µì ì¸ í¼ ìì±ì ë°©í´í ìë ìëë°, í¹ì ì¸ì§ ë¥ë ¥ì´ ë®ì ì¬ì©ìë¤ìê² í¹í ì주 ë°ìí©ëë¤.
íë ì´ì¤íë ì 보를 ì ê³µíë ëì ì ê·¼ì ì´ë¥¼ ì¸í ì¸ë¶ì ê°ê¹ì´ 거리ì ìì¹ìí¤ê³ , aria-describedby를 ì¬ì©íì¬ íë¡ê·¸ëë°ì ì¼ë¡ <input>ê³¼ íí¸ë¥¼ ì°ê´ì§ë ê²ì
ëë¤.
ì´ë¬í 구íì íµí´ íí¸ ì½í
ì¸ ë ì¸íì ì ë³´ê° ì
ë ¥ëì´ë ì í¨íë©°, íì´ì§ê° ë¡ëë ë ì¸íì 미리 ì
ë ¥ë ë´ì©ì´ ìì´ ëíëê² ë©ëë¤. ëë¶ë¶ì íë©´ì ì½ë 기ì ì aria-describedby 를 ì¬ì©íì¬ ì¸íì ë¼ë²¨ í
ì¤í¸ë¥¼ ì½ì í íí¸ë¥¼ ì½ì´ì£¼ê³ , ì¤í¬ë¦° 리ë ì¬ì©ìë ì´ ì ë³´ê° ë¶íìíë¤ê³ ìê°ëë©´ ìì거를 í ìë ììµëë¤.
<label for="user-email">ì´ë©ì¼ 주ì</label>
<span id="user-email-hint" class="input-hint">ìì: jane@sample.com</span>
<input
id="user-email"
aria-describedby="user-email-hint"
name="email"
type="email" />
ìëì° ê³ ëë¹ ëª¨ë
íë ì´ì¤íë í ì¤í¸ë ìëì° ê³ ëë¹ ëª¨ëê° ë ëë ë, ì¬ì©ìê° ì ë ¥í í ì¤í¸ ì½í ì¸ ì ëì¼í ì¤íì¼ë¡ ëíë©ëë¤. ì´ë ì¼ë¶ ì¬ì©ìë¤ìê² ì´ë í ì½í ì¸ ê° ì ë ¥ëìëì§, ê·¸ë¦¬ê³ ì´ë¤ ì½í ì¸ ê° íë ì´ì¤íëì¸ì§ ì½ê² 구ë³í ì ìê² ë§ëëë¤.
ë¼ë²¨
íë ì´ì¤íëë <label> ììì ëì²´ ììê° ìëëë¤. for ì id ìì±ì ì¡°í©íì¬ íë¡ê·¸ëë° ë°©ìì¼ë¡ ì
ë ¥ íëì ì°ê²°ë ë¼ë²¨ì´ ìì¼ë©´, ì¤í¬ë¦° 리ëì ê°ì ë³´ì¡° 기ì ì´ <input> ìì를 í´ìí ì ììµëë¤.
ìì
>íë ì´ì¤íë ì¸í ë³ê²½í기
ìë ìì ë íë ì´ì¤íë í ì¤í¸ì ì¼ë¶ ì¤íì¼ì ë³ê²½íë ë°©ë²ì ì¤ëª í©ëë¤.
HTML
<input placeholder="ì´ê³³ì ì
ë ¥íì¸ì." />
CSS
input::placeholder {
color: red;
font-size: 1.2em;
font-style: italic;
}
ê²°ê³¼
ë¶í¬ëª í í ì¤í¸
ì¼ë¶ ë¸ë¼ì°ì (Firefox ë±)ììë íë ì´ì¤íëì opacity 를 100%ë³´ë¤ ë®ê² ì¤ì í©ëë¤. ë§ì¼ ìì í ë¶í¬ëª
íê² ì¤ì íê³ ì¶ë¤ë©´ opacity 를 1 ë¡ ì¤ì í©ëë¤.
HTML
<input placeholder="기본 ë¶í¬ëª
ë" />
<input placeholder="ìì í ë¶í¬ëª
ë" class="force-opaque" />
CSS
::placeholder {
color: green;
}
.force-opaque::placeholder {
opacity: 1;
}
ê²°ê³¼
ëª ì¸ì
| Specification |
|---|
| CSS Pseudo-Elements Module Level 4 > # placeholder-pseudo > |
ë¸ë¼ì°ì í¸íì±
ê°ì´ 보기
:placeholder-shownìì¬ í´ëì¤ë íì±íë íë ì´ì¤íë를 ê°ì§ ìì를 ì¤íì¼ë§í©ëë¤.- ì°ê´ë HTML ììë¤:
<input>,<textarea> - HTML í¼