아랄라랄라
R 스토리
아랄라랄라
전체 방문자
오늘
어제
  • All (199)
    • Web (145)
      • Markup | WEB (9)
      • Styles (45)
      • javascript (32)
      • jquery (28)
      • vue (16)
      • react (10)
      • more (5)
    • IT (32)
      • CS (3)
      • git hub (5)
      • UI | UX (18)
      • more (6)
    • ETC (22)
      • 이슈노트 (12)
      • 스터디 (10)
      • 아랄라 ☞☜ (0)
      • JOB🛠 (0)

인기 글

반응형
hELLO · Designed By 정상우.
아랄라랄라

R 스토리

Web/Styles

[CSS] 선택자

2018. 5. 15. 15:00

https://jsfiddle.net/Kimara/b7s0qvyy/13/





동위 선택자(sibling selector)

동위 선택자는 동위 관계에 있는 요소 중에서 해당 요소보다 뒤에 존재하는 특정 타입의 요소를 모두 선택합니다. 

동위 관계란 HTML 요소의 계층 구조에서 같은 부모(parent) 요소를 가지고 있는 요소들을 의미합니다.

이러한 동위 관계에 있는 요소들을 형제(sibling) 요소라고 합니다.


일반 동위 선택자(general sibling selector)

일반 동위 선택자는 해당 요소와 동위 관계에 있으며, 해당 요소보다 뒤에 존재하는 특정 타입의 요소를 모두 선택합니다. 

다음 예제는 모든 <div>태그와 동위 관계에 있는 요소 중에서 <div>태그보다 뒤에 존재하는 <p>태그를 모두 선택하는 예제입니다.

  예제 :  div ~ p {스타일;}



인접 동위 선택자(adjacent sibling selector)

영어로 adjacent는 인접한, 가까운 이라는 의미가 있습니다.

인접 동위 선택자는 해당 요소와 동위 관계에 있으며, 해당 요소의 바로 뒤에 존재하는 특정 타입의 요소를 모두 선택합니다. 

다음 예제는 모든 <div>태그와 동위 관계에 있는 요소 중에서 <div>태그의 바로 뒤에 존재하는 <p>태그를 모두 선택하는 예제입니다.

  예제 : div + p {스타일;}



************************************************************************************************************


의사 클래스(pseudo-class)

CSS에서 의사 클래스(pseudo-class)는 선택하고자 하는 HTML 요소의 특별한 '상태(state)'를 명시할 때 사용합니다.


의사 클래스의 문법

의사 클래스(pseudo-class)를 사용하기 위한 문법은 다음과 같습니다.

  문법 : 선택자:의사클래스이름 {속성: 속성값;} 


클래스(class)나 아이디(id)에도 의사 클래스(pseudo-class)를 사용할 수 있습니다.

  문법

  선택자.클래스이름:의사클래스이름 {속성: 속성값;} 

  선택자#아이디이름:의사클래스이름 {속성: 속성값;}


의사 클래스(pseudo-class)의 이름은 대소문자를 구분하지 않습니다.


대표적인 CSS 의사 클래스

CSS에서 자주 사용하는 대표적인 의사 클래스는 다음과 같습니다.


1. 동적 의사 클래스(dynamic pseudo-classes)

의사 클래스

설명

:link

사용자가 아직 한 번도 이 링크를 통해서 연결된 페이지를 방문하지 않은 상태를 선택함. (기본 상태)

:visited

사용자가 한 번이라도 이 링크를 통해서 연결된 페이지를 방문한 상태를 선택함.

:hover

사용자의 마우스 커서가 링크 위에 올라가 있는 상태를 선택함.

:active

사용자가 마우스로 링크를 클릭하고 있는 상태를 선택함.

:focus

포커스를 가지고 있는 input 요소를 모두 선택함.


:hover는 반드시 :link와 :visited가 먼저 정의된 후에 정의되어야 정상적으로 동작합니다.

:active는 반드시 :hover가 먼저 정의된 후에 정의되어야 정상적으로 동작합니다.





2. 상태 의사 클래스(UI element states pseudo-classes)

의사 클래스

설명

:checked

체크된(checked) 상태의 input 요소를 모두 선택함.

:enabled

사용할 수 있는 input 요소를 모두 선택함.

:disabled

사용할 수 없는 input 요소를 모두 선택함.


:enabled는 input 요소 중에서 사용할 수 있는 input 요소를 선택합니다.

또한, :disabled는 input 요소 중에서 사용할 수 없는 input 요소를 선택합니다.




3. 구조 의사 클래스(structural pseudo-classes)

의사 클래스

설명

:first-child

모든 자식(child) 요소 중에서 맨 앞에 위치하는 자식(child) 요소를 모두 선택함.

:last-child

모든 자식(child) 요소 중에서 맨 마지막에 위치하는 자식(child) 요소를 모두 선택함.

:nth-child

모든 자식(child) 요소 중에서 앞에서부터 n번째에 위치하는 자식(child) 요소를 모두 선택함.

:nth-last-child

모든 자식(child) 요소 중에서 뒤에서부터 n번째에 위치하는 자식(child) 요소를 모두 선택함.

:first-of-type

모든 자식(child) 요소 중에서 맨 처음으로 등장하는 특정 타입의 요소를 모두 선택함.

:last-of-type

모든 자식(child) 요소 중에서 맨 마지막으로 등장하는 특정 타입의 요소를 모두 선택함.

:nth-of-type

모든 자식(child) 요소 중에서 n번째로 등장하는 특정 타입의 요소를 모두 선택함.

:nth-last-of-type

모든 자식(child) 요소 중에서 뒤에서부터 n번째로 등장하는 특정 타입의 요소를 모두 선택함.

:only-child

자식(child) 요소를 단 하나만 가지는 요소의 자식(child) 요소를 모두 선택함.

:only-of-type

자식(child)  요소로 특정 타입의 요소 단 하나만을 가지는 요소의 자식(child) 요소를 모두 선택함.

:empty

자식(child) 요소를 전혀 가지고 있지 않은 요소를 모두 선택함.

:root

문서의 root 요소를 선택함.






4. 기타 의사 클래스

- :not

- :lang


CSS 의사 클래스(pseudo classes)


의사 클래스

설명

:link

사용자가 아직 한 번도 해당 링크를 통해서 연결된 페이지를 방문하지 않은 상태를 모두 선택함. (기본 상태)

:visited

사용자가 한 번이라도 해당 링크를 통해서 연결된 페이지를 방문한 상태를 모두 선택함.

:hover

사용자의 마우스 커서가 링크 위에 올라가 있는 상태를 모두 선택함.

:active

사용자가 마우스로 링크를 클릭하고 있는 상태를 모두 선택함.

:focus

초점이 맞춰진 input 요소를 모두 선택함.

:checked

체크된(checked) 상태의 input 요소를 모두 선택함.

:enabled

사용할 수 있는 input 요소를 모두 선택함.

:disabled

사용할 수 없는 input 요소를 모두 선택함.

:target

현재 활성화된 target 요소를 모두 선택함.

:in-range

특정 범위 내의 값을 가지는 input 요소를 모두 선택함.

:out-of-range

특정 범위를 벗어나는 값을 가지는 input 요소를 모두 선택함.

:read-only

readonly 속성을 가지는 input 요소를 모두 선택함.

:read-write

readonly 속성을 가지지 않는 input 요소를 모두 선택함.

:required

required 속성을 가지는 input 요소를 모두 선택함.

:optional

required 속성을 가지지 않는 input 요소를 모두 선택함.

:valid

유효한 값을 가지는 input 요소를 모두 선택함.

:invalid

유효하지 않은 값을 가지는 input 요소를 모두 선택함.

:first-child

모든 자식(child) 요소 중에서 첫 번째에 위치하는 자식(child) 요소를 모두 선택함.

:last-child

모든 자식(child) 요소 중에서 마지막에 위치하는 자식(child) 요소를 모두 선택함.

:nth-child

모든 자식(child) 요소 중에서 앞에서부터 n번째에 위치하는 자식(child) 요소를 모두 선택함.

:nth-last-child

모든 자식(child) 요소 중에서 뒤에서부터 n번째에 위치하는 자식(child) 요소를 모두 선택함.

:first-of-type

모든 자식(child) 요소 중에서 첫 번째로 등장하는 특정 요소를 모두 선택함.

:last-of-type

모든 자식(child) 요소 중에서 마지막으로 등장하는 특정 요소를 모두 선택함.

:nth-of-type

모든 자식(child) 요소 중에서 n번째로 등장하는 특정 요소를 모두 선택함.

:nth-last-of-type

모든 자식(child) 요소 중에서 뒤에서부터 n번째로 등장하는 특정 요소를 모두 선택함.

:only-child

자식(child) 요소를 단 하나만 가지는 모든 요소의 자식(child) 요소를 선택함.

:only-of-type

자식(child)  요소를 특정 요소 단 하나만 가지는 모든 요소의 자식(child) 요소를 선택함.

:empty

아무런 자식(child) 요소도 가지지 않는 요소를 모두 선택함.

:root

문서의 root 요소를 선택함.

:not(선택자)

모든 선택자와 함께 사용할 수 있으며, 해당 선택자를 반대로 적용함.

:lang(언어)

특정 요소를 언어 설정에 따라 다르게 표현할 때에 사용함.






728x90
저작자표시 비영리 (새창열림)

'Web > Styles' 카테고리의 다른 글

[SVG] clip-path  (0) 2018.05.15
[CSS] animation  (0) 2018.05.15
[CSS] 플렉서블 박스 레이아웃  (0) 2018.05.15
[CSS] 텍스트 줄바꿈 처리 word-break, white-space  (0) 2018.05.15
[CSS] animation02  (0) 2018.05.15

티스토리툴바