요소 상태에 따라 스타일 지정 - 가상 요소

가상 요소는 내용의 일부만 선택해 스타일을 적용할 때 사용합니다.
2 min read

선택자로도 지정하기 어려운 대상이 있습니다. 예를 들어 몇 번째 항목이라든가 문단의 첫 번째 글자 등의 경우 어떻게 지정해야 할까요? 이럴 때 가상 요소와 가상 클래스를 사용합니다.

가상 요소는 내용의 일부만 선택해 스타일을 적용할 때 사용합니다.

목차

가상 요소

  • 가상 요소(Pseudo-elements)는 요소의 특정 부분을 선택합니다.
  • 가상클래스는 콜론을 한 개(:), 가상요소는 콜론을 두 개(::) 씁니다.
  • 하지만 콜론을 한 개(:)만 써도 대부분의 브라우저에서 제대로 작동합니다.

 

::first-line

::first-line은 요소의 첫번째 줄을 선택합니다. 예를 들어 다음은 <p> 요소의 첫번째 줄의 글자색을 빨간색으로 만듭니다.

p::first-line {
  color: red;
}

 

::first-letter

::first-letter는 요소의 첫번째 문자를 선택합니다. 예를 들어 다음은 <p> 요소의 첫번째 문자의 색깔을 빨간색으로 만듭니다.

p::first-letter {
  color: red;
}

 

::before

::before는 요소의 앞을 선택하여 이미지나 텍스트 등 내용을 추가할 수 있습니다. 예를 들어 다음은 <p> 요소 앞에 ABC라는 단어를 넣고 색을 빨간색으로 만듭니다.

p::before {
  content: "ABC";
  color: red;
}

 

::after

::after는 요소의 뒤를 선택하여 이미지나 텍스트 등 내용을 추가할 수 있습니다. 예를 들어 다음은 <p> 요소 뒤에 ABC라는 단어를 넣고 색을 빨간색으로 만듭니다.

p::after {
  content: "ABC";
  color: red;
}

 

::selection

::selection은 마우스 드래그 등으로 선택한 텍스트를 선택합니다. 마우스로 텍스트 드래그했을 때 배경색, 글자색 바꾸기를 참고하세요.

 

가상 클래스

사용자가 웹 요소를 클릭하거나 마우스 커서를 올려놓는 등 특정 동작을 할 때 스타일이 바뀌도록 만들거나 웹 요소의 상태에 따라 스타일을 지정할 때 가상 클래스 선택자를 사용합니다.

가상 클래스 가상 요소와 가상 클래스 순서

 

기타 CSS 참조

You may like these posts

  • 테두리(border)는 텍스트 단락 뿐만아니라 그림이나 표, 사진, 양식 등 사각 형태를 가진 어떤 요소에나 다양하게 적용할 수 있습니다. 테두리와 관련된 속성에는 테두리 두께, 테두리 스타일, 테두리 색상 등이 있습니다. 하나씩 살펴 보면서 박스 모델의 테두리를 꾸며 보겠습니다. border …
  • 포토 앨범 등에서 사진 주변에 그림자를 추가하면 멋진 효과를 만들 수 있습니다. 이런 그리자 효과도 box-shadow 속성을 사용하면 포토샵 같은 프로그램을 사용하지 않고도 나타낼 수 있습니다. 그림자는 이미지 뿐만 아니라 div 전체 등 지정하는 것에 따라 넣을 수 있는데 이때 box-shad…
  • CSS 박스모델이란 웹 문서의 내용을 박스 형태로 정의하는 방법을 가리킵니다. 이 박스 모델들이 모여 웹 문서를 이루죠. 또한 그 안에는 마진과 패딩, 테두리 등 여러 겹의 박스가 들어 있습니다. 이 개념은 CSS에서 자주 사용 되므로 잘 기억해 두어야 합니다. Box Model HTML 요소는…
  • list-style-type 속성에서 순서 없는 목록 앞에 붙는 불릿의 유형이 단조로운 편입니다. 불릿의 모양을 더 다양하게 사용하고 싶다면 list-style-image 속성을 이용해 불릿을 원하는 이미지로 바꿀 수 있습니다. list-style-image list-style-image로 이미…
  • 이번에는 박스 모델의 여백인 마진과 패딩을 조절해보겠습니다. 마진과 패딩은 박스 모델에서 활용도가 높으며 웹 문서에서 이미지나 텍스트 등 여러 요소를 자유롭게 배치할 때 유용합니다. margin 속성 - 요소 주변 여백 설정하기 마진(margin)은 현재 요소 주변의 여백입니다. 따라서 마진을 …
  • 웹 문서에서 여러 요소를 배치하려면 각 요소의 너비를 계산해야 합니다. CSS의 width 속성은 콘텐츠 영역(content area)의 너비를 나타내기 때문에 해당 요소에 적용한 패딩이나 테두리 크기는 따로 계산해서 배치해야 합니다. 이럴 때 box-sizing 속성을 사용하면 콘텐츠 영역의 너비에…

Post a Comment