CSS에서 *와 *|*의 차이점은 무엇입니까?
CSS에서,*
모든 요소와 일치합니다.
자주.*|*
대신 사용됩니다.*
모든 요소를 일치시킵니다.이는 일반적으로 테스트 목적으로 사용됩니다.
사이의 차이점은 무엇입니까?*
그리고.*|*
CSS로?
W3C 선택기 사양에 따름:
범용 선택기는 선택적 네임스페이스 구성 요소를 허용합니다.다음과 같이 사용됩니다.
ns|*
네임스페이스 ns의 모든 요소
*|*
모든 요소
|*
네임스페이스가 없는 모든 요소
*
기본 네임스페이스가 지정되지 않은 경우 이는 *|*에 해당합니다.그렇지 않으면 ns|*와 같습니다. 여기서 ns는 기본 네임스페이스입니다.
그래서, 아니*
그리고.*|*
항상 같지는 않습니다.기본 이름 공간이 제공되는 경우*
해당 네임스페이스의 일부인 요소만 선택합니다.
아래 두 개의 스니펫을 사용하여 시각적으로 차이를 확인할 수 있습니다.첫 번째에서는 기본 네임스페이스가 정의되어 있습니다.*
선택기는 베이지색 배경을 해당 네임스페이스의 일부인 요소에만 적용하는 반면,*|*
테두리를 모든 요소에 적용합니다.
@namespace "http://www.w3.org/2000/svg";
* {
background: beige;
}
*|* {
border: 1px solid;
}
<a href="#">This is some link</a>
<svg xmlns="http://www.w3.org/2000/svg">
<a xlink:href="#">
<text x="20" y="20">This is some link</text>
</a>
</svg>
아래 스니펫에는 기본 네임스페이스가 정의되어 있지 않으므로 둘 다*
그리고.*|*
모든 요소에 적용되므로 모든 요소가 베이지색 배경과 검은색 테두리를 모두 가집니다.즉, 기본 네임스페이스가 지정되지 않은 경우에도 동일한 방식으로 작동합니다.
* {
background: beige;
}
*|* {
border: 1px solid;
}
<a href="#">This is some link</a>
<svg xmlns="http://www.w3.org/2000/svg">
<a xlink:href="#">
<text x="20" y="20">This is some link</text>
</a>
</svg>
BoltClock이 코멘트 (1,2)에서 지적했듯이, 처음에는 XHTML, SVG 등과 같은 XML 기반 언어에만 네임스페이스가 적용되었지만, 최신 사양에 따르면 모든 HTML 요소(즉, HTML 네임스페이스의 요소)는 다음과 같은 이름으로 지정됩니다.http://www.w3.org/1999/xhtml
Firefox는 이 동작을 따르며 모든 HTML5 사용자 에이전트에서 일관됩니다.이 답변에서 더 많은 정보를 찾을 수 있습니다.
*|*
모든 네임스페이스의 모든 요소 선택기를 나타냅니다.W3C에 따라 셀렉터는 다음과 같이 구분됩니다.
ns|E
여기서 ns는 네임스페이스이고 E는 요소입니다.기본적으로 네임스페이스는 선언되지 않습니다.네임스페이스가 명시적으로 선언되지 않는 한*|*
그리고.*
에서는 동일한 요소를 선택합니다.
CSS에서 *는 모든 요소와 일치합니다.
선택한 특정 요소를 일치시키는 데 사용됩니다.둘 다 테스트 목적으로 사용되는 셀렉터입니다.
언급URL : https://stackoverflow.com/questions/34987370/what-is-the-difference-between-and-in-css
'sourcecode' 카테고리의 다른 글
jQuery UI 대화상자가 열려 있는지 탐지 (0) | 2023.09.06 |
---|---|
측면 항목의 너비가 다를 때 중간 항목 중심을 유지합니다. (0) | 2023.09.06 |
JpaRepository 및 중첩된 개체 목록으로 검색하는 방법은 무엇입니까? (0) | 2023.09.01 |
포스트백 시 확인 요약에 오류 메시지를 추가하려면 어떻게 해야 합니까? (0) | 2023.09.01 |
IE9은 F12를 친 후에만 아약스 호출을 올바르게 수행합니다. (0) | 2023.09.01 |