Web/css

CSS Selector, 가상 선택자

csmoon 2021. 8. 16. 03:14

가상 클래스 (pseudo-class) / 가상 요소 선택자 (pseudo-element)

가상 클래스가 실제로 존재하는 요소에 클래스 추가 없이 디자인을 입히기 위한 것이라면,

가상 요소는 아예 실제로 존재하지 않는 요소를 만들게 해준다.

 

선택자:가상클래스 {
속성: 값;

}
  • :link, :visited, :hover, :active, :focus
    • :link, 방문하지 않은 링크
    • :visited, 방문한 링크
    • :hover, 해당 요소에 커서가 위치할 때
    • :active, 요소가 활성화 되었거나 클릭 되었을 때
    • :focus, 해당 요소에 초점이 맞춰졌을 때
a:link {
	color: blue;
}

a:visited {
	color:purple;
	text-decoration: none;
}

a:hover {
	color: red;
}

a:active {
	color: gray;
}

a:focus {
	color: yellow;
}

 

  • :first-child, :last-child

부모 요소의 전체 자식 요소들 중 첫 번째, 또는 마지막 요소를 선택하는 가상 클래스

자식 요소들의 순서를 기준으로 첫 번째, 또는 마지막 요소를 선택

<article>
  <h1 class="item">타이틀</h1>
  <p class="item">문단 1</p>
  <p class="item">문단 2</p>
  <p class="item">문단 3</p>
</article>
article h1:first-child{}

          - "타이틀"을 선택

article p:first-child{}

          - 아무런 요소를 선택하지 않는다.

            "article"의 자식 요소들 중 첫번째 나오는 "p"를 선택해서 "문단 1" 이 선택될 것 같지만,

            "p:first-child" 는 순서상 첫번째 요소(first-child)이면서 "p"여야 한다.

            동시 충족해야 하며, 따라서 조건에 만족하는 요소는 존재하지 않는다.

 

  • :nth-child(n), :nth-last-child(n), :nth-of-type(n), :nth-last-of-type(n)
    • :nth-child(n), 선택한 부모 요소의 자식 요소들 중 n번째 오는 자식 요소들을 선택
    • :nth-of-type(n), 선택한 요소의 자식 요소들 중 n번째 오는 특정 태그인 자식 요소들을 선택

* nth-와 nth-last는 선택 방향이 반대

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Selectors</title>
  <style>
    #check > p:nth-child(2) {
      color: red;
    }
  </style>
</head>
<body>
  <div id="check">
    <h2>어떻게 선택 될까?</h2>
    <p>첫번째 단락</p>		<!-- 선택 -->
    <p>두번째 단락</p>
    <p>세번째 단락</p>
    <p>네번째 단락</p>
  </div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Selectors</title>
  <style>
    #check > p:nth-of-type(2) {
      color: red;
    }
  </style>
</head>
<body>
  <div id="check">
    <h2>어떻게 선택 될까?</h2>
    <p>첫번째 단락</p>
    <p>두번째 단락</p>		<!-- 선택 -->
    <p>세번째 단락</p>
    <p>네번째 단락</p>
  </div>
</body>
</html>

 

선택자::가상요소 {
속성: 값;
}
  • ::before, ::after, ::first-letter, ::first-line, ::selection
    • ::before, 블록 요소 앞에 내용을 삽입
    • ::after, 블록 요소 뒤에 내용을 삽입
    • ::first-letter, 블록의 첫 번째 문자를 선택
    • ::first-line, 블록의 첫 줄을 선택
    • ::selection, 사용자가 드래그로 선택한 블록 전체, 또는 일부를 선택

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

CSS Box model  (0) 2021.08.16
CSS 상속과 단위  (0) 2021.08.16
CSS Selector, 결합자 / 복합 선택자 (Combinators)  (0) 2021.08.16
CSS 선택자, Selector  (0) 2021.08.16
CSS란?  (0) 2021.08.16