>  기사  >  웹 프론트엔드  >  CSS3 의사 클래스와 의사 요소의 차이점은 무엇입니까?

CSS3 의사 클래스와 의사 요소의 차이점은 무엇입니까?

青灯夜游
青灯夜游원래의
2021-12-22 10:54:045389검색

차이점: 1. 의사 클래스는 특정 상태에 있는 기존 요소에 해당 스타일을 추가하는 데 사용되는 반면, 의사 요소는 DOM 트리에 없는 일부 요소를 생성하고 해당 요소에 스타일을 추가하는 데 사용됩니다. 3. 의사 요소는 이중 콜론 "::"으로 표시되고 의사 클래스는 단일 콜론 ":"으로 표시됩니다.

CSS3 의사 클래스와 의사 요소의 차이점은 무엇입니까?

이 튜토리얼의 운영 환경: Windows7 시스템, CSS3&&HTML5 버전, Dell G3 컴퓨터.

의사 클래스와 의사 요소란 무엇입니까?

"의사"라는 단어가 언급되면 어떻게 생각하시나요? "가짜", "왕징웨이 의사정부", "존재하지 않는다"...

의사급: 특정 상태(슬라이딩, 클릭 등)에 있을 때 기존 요소에 해당 요소를 추가하는 데 사용됩니다. ) 스타일, 이 상태는 사용자 행동에 따라 동적으로 변경됩니다. 내 이해는 그 자체로 존재하지 않는 상태이며 특정 상황(슬라이딩, 클릭)에서만 트리거된다는 것입니다. 이 상태에서 CSS를 사용하여 개체를 수정할 수 있습니다. 예를 들어, 사용자가 특정 요소 위로 마우스를 가져가면 :hover를 사용하여 요소의 상태를 설명할 수 있습니다. 일반 CSS와 유사하고 기존 요소에 스타일을 추가할 수 있지만, 스타일을 추가할 수 없는 상태에서만 사용할 수 있습니다. 요소는 스타일을 추가하므로 의사 클래스라고 합니다.

Pseudo elements: DOM 트리에 없는 일부 요소를 만들고 스타일을 추가하는 데 사용됩니다. 예를 들어 :before를 사용하여 요소 앞에 텍스트를 추가하고 텍스트에 스타일을 추가할 수 있습니다. 사용자가 텍스트를 볼 수는 있지만 실제로는 DOM 문서에 없습니다.

의사 클래스와 의사 요소의 차이점:

다음 예를 참조하세요.

예 1:

<ul>
 <li>第一列</li>
 <li>第二列</li>
</ul>

첫 번째 열에 스타일을 추가하려면 다음 두 가지 방법:

(1) 첫 번째 열에 클래스를 추가하고 클래스에 스타일을 정의합니다.

<ul>
  <li class="first-item">第一列</li> 
  <li>第二列</li></ul>
</ul>

.first-item{color:orange;}

(2) 클래스를 추가할 필요가 없으면 다음을 설정할 수 있습니다. 첫 번째 25edfb22a4f469ecb59f1190150159c6 클래스에 스타일을 추가하려면 현재 DOM 트리에 수정된 li가 여전히 존재합니다

<ul>
  <li>第一个</li>
  <li>第二个</li>
</ul>


li:first-child{color:orage;}

예 2:

<p>Hello World, and wish you have a good day!</p>

문단의 첫 글자에 스타일을 추가하려면, 다음 방법을 사용할 수 있습니다.

(1) 45a2772a6b6107b401db3c9b82c049c2 요소를 첫 번째 문자로 묶고 범위 스타일을 설정합니다.

<p>
  <span class="first">H</span>ello World, and wish you have a good day!
</p> 


.first{color:red;}

(2) 45a2772a6b6107b401db3c9b82c049c2 요소가 생성되지 않으면 다음과 같이 설정할 수 있습니다. e388a4556c0f65e1904146cc1a846bee 요소에 P:first-letter 의사 요소를 추가합니다. 이때 가상의 스팬 요소가 생성되고 스타일이 추가되는 것처럼 보이지만 실제로는 이 스팬 요소가 수행됩니다. DOM에 존재하지 않습니다.

<p>Hello World, and wish you have a good day!</p>

p:first-letter{color:red;}

위의 예에서 우리는 다음을 볼 수 있습니다: 의사 클래스 작업 개체는 문서 트리의 기존 요소인 반면 의사 요소는 문서 트리 외부에 요소를 만듭니다. 따라서 의사 클래스와 의사 요소의 차이점은 문서 트리 외부의 요소가 생성되는지 여부입니다.

의사 요소에 단일 콜론 또는 이중 콜론을 사용하시겠습니까?

css3 사양에서는 의사 클래스와 의사 요소를 구별하기 위해 의사 요소를 나타내기 위해 이중 콜론(::)을 사용해야 합니다. 예를 들어 ::before 및 ::after와 같은 의사 요소는 이중 콜론(::)을 사용합니다. :hover :active 의사 클래스에는 단일 콜론(:)을 사용합니다. IE8 미만의 일부 브라우저를 제외하고 대부분의 브라우저는 의사 요소의 이중 콜론(::) 표현 방법을 지원합니다.

그러나 이중 콜론(::)을 사용해야 하는 ::backdrop과 같은 일부 의사 요소를 제외하면 대부분의 의사 요소는 단일 콜론 및 이중 콜론 쓰기를 지원합니다. 예를 들어::after의 경우 정상적으로 실행될 수 있습니다. 다음과 같이 작성되었습니다.

w3c 표준에 따르면 CSS3 표준에서는 의사 요소를 이중 콜론으로 작성해야 하지만 단일 콜론 작성은 여전히 ​​지원됩니다. 이전 버전과의 호환성을 위해 지금은 단일 콜론 작성 방법을 계속 사용하는 것이 좋습니다.

일반적으로 사용되는 의사 클래스는 다음과 같습니다.

:active는 활성화되는 요소를 선택합니다(지정된 상태와 일치)

:hover는 마우스로 가리킨 요소를 선택합니다(지정된 상태와 일치)

:link는 방문하지 않은 요소(지정된 상태와 일치)

:visited는 방문한 요소를 선택합니다(지정된 상태와 일치)

:first-child는 상위 요소의 첫 번째 하위 요소인 요소를 선택합니다.

:lang(value ) lang 속성으로 요소 지정

:focus 키보드 입력 포커스가 있는 요소 선택

:enable 활성화된 각 요소 선택

:disable 비활성화된 각 요소 선택

:checked 선택한 각 요소 선택

: target은 현재 앵커 요소를 선택합니다

:first-of-type은 해당 상위 요소의 특정 유형의 첫 번째 하위 요소인 요소를 선택합니다.

:last-of-type은 해당 앵커 요소의 마지막 하위 요소를 만족하는 요소를 선택합니다. 상위 요소 특정 유형의 하위 요소에 대한 요소

:only-of-type 해당 상위 요소의 특정 유형에 대한 유일한 하위 요소인 요소를 선택합니다.

:nth-of-type(n) 요소를 선택합니다. 상위 요소의 n번째 요소를 만족합니다. 특정 유형의 하위 요소 요소

:nth-last-of-type(n)은 상위 요소의 n번째 마지막 요소

를 충족하는 특정 유형의 요소를 선택합니다. only-child는 부모 요소의 유일한 자식이라는 조건을 만족하는 요소를 선택합니다 Elements of elements

:last-child는 상위 요소의 마지막 요소인 요소를 선택합니다

:nth-child(n)는 상위 요소의 n번째 하위 요소인 요소를 선택합니다

:nth-last-child(n) 상위 요소의 마지막부터 마지막까지 n번째 하위 요소 선택

:empty 하위 요소가 없는 요소 선택

:in-range 지정된 범위 내의 값을 갖는 요소 선택

:out-of- range 지정된 범위에 없는 요소 선택

:invalid 잘못된 값의 값을 만족하는 요소 선택

:valid 유효한 값의 값을 만족하는 요소 선택

:not(selector) 만족하지 않는 요소 선택 selector

:옵션 사용 가능한 옵션 양식 요소로 선택, 즉 "필수" 속성이 없습니다.

:read-only "읽기 전용"이 있는 양식 요소 선택

:read-write "읽기 전용"이 없는 양식 요소 선택

:root 루트 요소 선택

일반적으로 사용되는 유사 요소

::first-letter 지정된 요소의 첫 번째 단어 선택

::first-line 지정된 요소의 첫 번째 줄 선택

::after 내용 삽입 지정된 요소의 내용 앞

::before 지정된 요소의 내용 뒤에 내용 삽입

::selection 지정된 요소에서 사용자가 선택한 내용을 선택

(학습 영상 공유: css 영상 튜토리얼)

위 내용은 CSS3 의사 클래스와 의사 요소의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.