정의 및 사용 방법
[attribute|="value"] 선택자는
value라는 값과 정확히 일치, 또는 value로 시작하고 바로 뒤에 하이픈(-, U+002D)이 오는 값을 가진 모든 요소를 선택합니다.
예를 들어, [lang|="en"]은 lang="en"처럼 lang 속성 값이 en과 정확히 일치하거나, lang="en-US"처럼 en으로 시작하고 바로 뒤에 하이픈(-)이 오는 값을 가진 모든 요소를 선택합니다.
이 선택자는 주로 HTML의 lang 속성 값 등에서 사용되는 language tags(언어 태그, 예: en, en-US, en-GB)를 타겟팅할 때 자주 사용됩니다.
기본 예제
/* lang 속성이 정확히 "en"이거나 "en-"으로 시작하는 모든 <p> 요소를 선택 */
p[lang|="en"] {
color: blue;
}
<!-- 매칭 ✅ (정확히 en) -->
<p lang="en">en Hello</p>
<!-- 매칭 ✅ (en 뒤에 하이픈) -->
<p lang="en-US">en-US Hello</p>
<p lang="en-GB">en-GB Hello</p>
<!-- 매칭 ❌ (하이픈 없이 시작) -->
<p lang="english">english Hello</p>
<!-- 매칭 ❌ (공백으로 구분된 단어) -->
<p lang="en us">en us Hello</p>
en Hello
en-US Hello
en-GB Hello
english Hello
en us Hello
구문
다음의 두 가지 형태는 모두 동일합니다.
[attribute|="value"][attribute|='value']
p[lang|="en"] {
color: blue;
}
/* 다음과 같이 작성해도 동일합니다. */
p[lang|='en'] {
color: blue;
}
참고 사항
[attribute|="value"]는 value라는 값과 정확히 일치, 또는 value로 시작하고 바로 뒤에 하이픈(-, U+002D)이 오는 값을 가진 모든 요소를 선택합니다.
반면에, [attribute^="value"] 선택자는
지정된 attribute라는 이름의 속성이 value라는 값으로 시작하는 모든 요소를 선택합니다.
p[lang|="en"] {
color: blue;
}
p[lang^="en"] {
background-color: gray;
}
<p lang="en">en Hello</p>
<p lang="en-US">en-US Hello</p>
<p lang="en-GB">en-GB Hello</p>
<p lang="english">english Hello</p>
<p lang="en us">en us Hello</p>
en Hello
en-US Hello
en-GB Hello
english Hello
en us Hello
브라우저 호환성
| 선택자 |
데스크탑 Chrome
|
데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
|---|---|---|---|---|
[attribute|="value"]
|
1 | 12 | 1 | 3 |
명세서
| 명세서 사양 | |
|---|---|
[attribute|="value"]
|
Selectors Level 4 #attribute-selectors |
같이 보기
- CSS :lang() 선택자
- CSS [attribute] 선택자 – 이름이 일치하는 속성 선택
- CSS [attribute="value"] 선택자 – 이름과 값이 일치하는 속성 선택
- CSS [attribute*="value"] 선택자 – 특정 문자열을 포함하는 값이 있는 속성 선택
- CSS [attribute~="value"] 선택자 – 특정 단어를 포함하는 값이 있는 속성 선택
- CSS [attribute$="value"] 선택자 – 특정 값으로 끝나는 속성 선택
- CSS #id 선택자 - id 값으로 요소 선택
- CSS .class 선택자 - 클래스 이름으로 요소 선택
- HTML 속성 소개