가상 선택자에 대해서 알아보자. 가상 클래스는 특정요소의 상태를 미리 추정해서
가상의 클래스로 스타일을 적용할 수 있는 선택자라고 한다.
조건 발생 시 규칙이 적용될 수 있도록 만든 특수한 클래스
ex> 커서가 위에 올라갔을 때
👏 가상클래스들은 미리 선언되어 있음!!
가상클래스 확인하기
- : 을 사용해서 선언한다.
:pseudo-class {}
요소:first-child
: 요소의 첫 번째 자식 요소 선택요소:last-child
: 요소의 마지막 자식 요소 선택✍️예시 코드
li:first-child { color: red; }
li:last-child { color: blue; }
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JS</li>
</ul>
👉 HTML이 red로 JS가 blue로
a:link
: 하이퍼 링크이면서 아직 방문하지 않은 앵커a:visited
: 이미 방문한 하이퍼링크를 의미하이퍼 링크란 :
a
태그에 href속성이 존재하는 것을 말한다.
✍️예시 코드
a:link { color: blue; }
a:visited { color: gray; }
<a href ="https://www.naver.com/">네이버</a>
<a href ="https://www.daum.net/">다음</a>
👉 방문한 링크는 회색으로, 방문하지 않은 링크는 파란색으로 나타남.
요소:focus
: 현재 입력 포커스를 갖고 있는 요소에 적용요소:hover
: 마우스 포인터가 위치해 있는 요소에 적용요소:active
: 사용자 입력에 의해 활성화된 요소에 적용✍️ 예시코드
a:focus { background-color: yellow; }
a:hover { font-weight: bold; }
a:active { color: red; }
👉 tap으로 이동하면 노란색배경, 마우스 커서를 두면 굵게 표시, 클릭시 빨간색표시
::before
: 요소 내용 앞쪽에 새 컨텐츠를 추가. ::after
: 요소 내용 끝에 새 컨텐츠를 추가.📋 content속성과 속성값
::before
와::after
에 쓰이는 속성- 넣을 수 있는 속성값 : 문자열, 이미지, HTML 속성, 변수, 함수
문자열의 경우 따옴표''를 사용해야한다.
::selection
: 마우스 드래그로 선택한 텍스트 컨텐츠 영억을 선택::marker
: 목록 아이템 앞에 붙는 마커를 선택::first-line
: 요소의 첫 번째 줄에 있는 텍스트를 감싸는 요소::first-letter
: 요소 내의 블록 레벨 요소의 첫 번째 문자를 감싸는 요소새로운 개념들이 갑자기 엄청 많이 등장해서 머릿속에서 혼란스럽다.
특히 html의 속성과 css의 속성이 달라서 헷갈린다.
✍️다시 정리하는 HTML과 CSS의 속성
- html의 속성 : id='user' 처럼 태그 안에 들어가는 값으로 추가 명령어의 역할을 한다. 공백 ( )을 통해 구분한다.
- css의 속성 : 스타일을 지정하는 추가 명형어 세미콜론(;)을 통해 구분한다.
{ 속성:속성값}