아래 내용은 학원 수업 및 온라인 강좌 등을 듣고 정리한 내용입니다.
CSS selector(이하 선택자)는 HTML 파일에서 작성한 엘리먼트들을 선택하는 것을 말한다. 이 선택자는 태그명, 아이디, 클래스 등으로 선택할 수 있다.
*
: (전체 선택자) 내부의 모든 요소를 선택태그명
: (태그 선택자) 태그 이름을 선택자로 선택#아이디이름
: (아이디 선택자) 아이디 이름을 선택자로 선택.클래스이름
: (클래스 선택자) 클래스 이름을 선택자로 선택선택자1선택자2
를 복합적으로 선택 (두가지가 동시에 만족되어야 하며, 선택자가 붙어 있음)선택자1 > 선택자2
선택자1의 자식 선택자를 찾아서 선택선택자1 선택자2
선택자1 속에 있는 모든 요소 중에서 선택자2를 찾아서 선택선택자1 + 선택자2
선택자1 다음에 나오는 형제 요소 1개선택자1 ~ 선택자2
선택자1 다음에 나오는 형제 요소 모두인접 형제 요소 선택자와 일반 형제 요소 선택자는 선택자1의 앞쪽의 형제는 찾지 않는다.
<div> // 1
<ul> // 2
<li></li> // 3
<li class="orange"></li> // 4
<li></li> // 5
<li></li> // 6
</ul>
</div>
li.orange {}
: li
와 .orange
가 동시에 일치되어야 선택됨 (일치 선택자) → 4ul > li {}
: ul
의 자식인 li
를 전부 선택됨 (자식 선택자) → 3, 4, 5, 6div .orange {}
: div
속에 있는 모든 선택자 중에서 .orange
가 선택됨 (후손(하위) 선택자) → 4.orange + li {}
: .orange
다음에 오는 형제 li
1개가 선택됨 (인접 형제요소 선택자) → 5.orange ~ li {}
: .orange
다음에 오는 형제 li
가 모두 선택됨 (일반 형제요소 선택자) → 5, 6:hover
: 마우스가 올라가 있는 동안active
: 마우스를 클릭하고 있는 동안focus
: 포커스가 된 동안 대화형 콘텐츠에서 사용이 가능함first-child
: 형제 요소 중 첫번째last-child
: 형제 요소 중 마지막nth-child(n)
: 형제 요소 중 n번째 요소 선택 (n키워드 사용시 0부터 해석)XXX-child 주의사항
.fruits p:nth-child(n)
위 예시의 경우 아래와 같은 순서로 해석해서 선택한다.
1. .fruits
2. :nth-child(n)
3. p
E:nth-of-type(n)
: E와 동일한 타입 형제 요소 중 E가 n번째 이면 선택한다.
E:not(s)
: E중에서 S가 아닌 것 선택
:
≠ ::
E::before
: E요소 내부의 앞에 내용 삽입 (content)E::after
: E요소 내부의 뒤에 내용 삽입 (content)html의 속성을 선택 (css의 속성은 property라고 한다.)
[attr]
: attr 속성인 값이 있으면 선택[attr = value
: attr 속성 값이 value인 요소 선택[attr* = value]
: attr 속성 값에 value가 포함되어 있는 요소 선택 여러개의 class명이 포함되어 있어도 사용 가능[attr^ = value]
: attr 속성 값이 value로 시작하는 요소 선택[attr$ = value]
: attr 속성 값이 value로 끝나는 요소 선택조상 요소의 속성을 지정 → 후손에도 적용됨 (대부분 글자를 다루는 속성!)
font-size
font-weight
font-style
line-height
font-family
color
text-align
text-indent
text-decoration
letter-spacing
opacity
속성의 "값"에 inherit
를 적용하면 "부모"에서 "자식"으로 강제 상속시킬 수 있다. 후손에는 적용안됨, 모든 요소가 inherit를 사용할 수 있는 것은 아니다.
같은 요소가 여러 선언 대상이 된 경우
!important
는 다른 모든 대상보다 우선 됨부정선택자는 점수 없음