CSS로 문자열로 시작하는 ID를 선택하는 방법 (Javascript가 아닌)?


194

HTML에 다음과 같은 요소가있는 경우 :

id="product42"
id="product43"
...

"product"로 시작하는 모든 ID를 어떻게 일치합니까?

자바 스크립트를 사용하여 정확하게 수행하는 답변을 보았지만 CSS로만 수행하는 방법은 무엇입니까?

답변:


364
[id^=product]

^="로 시작"을 나타냅니다. 반대로 $="끝"을 나타냅니다.

기호 실제로 정규식 구문에서 차용 ^하고 $각각과 "문자열의 끝" "문자열의 시작"을 의미한다.

자세한 내용 은 사양 을 참조하십시오 .


1
방법과 설명에 감사드립니다. 질문을 더 명확하게 편집했습니다. 호기심에서 id 문자열 내부의 문자열을 일치시키는 방법이 있습니까?
guptron

사양을 참조하십시오 , 그들은 내가 할 수있는 것보다 더 잘 설명합니다!
어둠의 절대자 니트

@itamar : 답변을 수정 해 주셔서 감사하지만 따옴표는 값에 유효한 식별자가 아닌 문자가 포함 된 경우에만 필요합니다. product분명히 유효한 식별자이므로 따옴표가 필요하지 않습니다.
어둠의 절대자 니엣

이 유형의 선택기의 특이성은 매우 낮습니다.
nuander

3
@ Emerald214:not([id^=product])
Niet the Dark Absol

59

나는 이렇게 할 것입니다 :

[id^="product"] {
  ...
}

이상적으로는 수업을 사용하십시오. 이것은 클래스에 대한 것입니다.

<div id="product176" class="product"></div>
<div id="product177" class="product"></div>
<div id="product178" class="product"></div>

이제 선택기가 다음과 같이됩니다.

.product {
  ...
}

1
@Blender, 감사합니다. 다른 답변을 선택했습니다. 왜냐하면 조금 더 설명하고 사용되는 기호를 이해하기 때문입니다. 이 시나리오에는 클래스를 사용할 수 없습니다. 그렇지 않으면 더 좋을 것입니다.
guptron


-1

나는 똑같은 일을하는 또 다른 CSS 선택기가 있음을 알아 차렸다. 구문은 다음과 같습니다.

[id|="name_id"]

큰 따옴표로 묶인 단어로 시작하는 모든 요소 ID를 선택합니다.


어떻게 알았습니까? 참고?
벤 Bozorg 1

여기에 대한 문서 : w3.org/TR/selectors-3/#attribute-selectors "name_id"로 시작하거나 같은 모든 id를 선택해야합니다
Dessauges Antoine

att|=val와 동일하지 않습니다 att^=val. 언급 된 참조에서 : |=선택기 "att 속성을 가진 요소를 나타냅니다. 값은 정확히"val "이거나"val "로 시작하고 바로 뒤에"- "가옵니다 ."product42 "와 같은 id는 다음과 일치하지 않습니다. |=그러나 "product-42"는 그렇습니다.
Goozak
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.