728x90
반응형

▶선택자 (Selector)

-CSS의 UI로 어느 부분을 디자인할지 표현할 대상이 되는 부분

-요소를 선택하는 방법

 

 

▶type 선택자

- html 문서의 태그 이름을 선택자로 사용할 수 있음

 

▷ type 선택자 (빨간 밑줄)을 사용하여 h1 (노란 밑줄) 태그 안의 글자들을 보라색으로 표시하도록 속성을 부여함.

 

 

▶id 선택자

-html 문서의 요소 중 같은 요소라도 각기 다른 이름을 지정하여 속성을 부여할 수 있음

-유일한 이름을 부여해야 함

-선택자 앞에 #을 붙어서 사용함.

 

 

 

 

▷id명을 각기 다른 태그에 각기 다른 이름으로 부여함(빨간색 밑줄)

▷#을 사용하여 속성을 부여함 (파란색 밑줄)

 

 

▶class 선택자

- html 문서의 여러 요소 중 같은 이름을 갖는 요소들만 따로 모아 속성을 부여함.

-같은 이름을 부여할 때에 사용.

-여러 개의 요소에 같은 class 명을 부여할 수 있음. (노란색 밑줄)

-하나의 요소에 여러 개의 class 명을 부여할 수도 있음

-선택자 앞에 .를 붙임

 

여러 개의 요소에 하나의 class를 부여한 모습

▷ 여러 개의 요소에 하나의 class 명을 부여한 모습

 

 

▷같은 class를 가진 모든 요소에 공통된 속성을 부여할 수 있음 (빨간색 밑줄)

 

 

▷하나의 요소에 여러 개의 class 명이 부여된 모습 (분홍색 밑줄 )

 

 

 

▶전체 선택자 (*)

-페이지의 모든 요소를 가리킴.

- * 로 표시함

-어떤 id명이나 어떤 class 명이 부여되었든 상관없이 속성을 적용함.

 

 

▶하위 선택자

-요소 내부에 있는 모든 해당 요소를 가리킴.

-선택자 사이를 공백으로 분리

 

 

 

▷첫번째 빨간색 밑줄에서 class 명 사이와 태그 사이가 공백으로 분리된 것을 확인할 수 있음.

▷class 선택자 밖에 있는 p 태그에 있는 글자는 속성이 부여되지 않은 것을 확인할 수 있음.

 

 

 

▶자식 선택자

-요소 내부에 있는 해당 요소를 가리킴

-그러나 하위 요소의 하위 요소는 가리키지 않음.

-선택자 사이를 " > "로 분리함

 

 

 

▷선택자 사이를 " > " 로 분리함 (빨간색 밑줄)

▷요소 내부에 있는 해당 요소 P들(노란색 밑줄)은 속성이 부여가 되었음.

▷그러나 하위 요소의 하위 요소인 P들(파란색 밑줄)은 똑같은 P 태그 임에도 속성이 부여되지 않은 것을 확인 가능.

 

 

 

▶인접 선택자

-현재 요소의 바로 뒤에 나오는 요소만을 가리킴

-선택자 사이를 " + "로 분리함.

 

▷선택자 사이를 "+"로 구분함

▷h1과 인접해있는 p 태그(파란색 밑줄)에는 속성이 부여되었음.

▷그러나 인접해있지 않은 p태그 (연두색 밑줄)에는 속성이 부여되지 않았음.

 

 

 

▶형제 선택자

-현재 요소와 같은 계층에 있는 요소만을 선택함

- " ~ "로 구분함

-인접해 있지 않고 멀리 있어도 같은 계층에 있다면 속성이 부여됨

 

▷선택자 사이가 " ~ "로 구분됨 (빨간 밑줄)

▷같은 계층에 있는 p 태그들(연두색 밑줄)은 속성이 부여됨

▷그러나 하위 계층에 있는 p 태그들 (노란색 밑줄)은 속성이 부여되지 않음

 

 

▶그룹 선택자

-여러 선택자들을 " , " (반점)으로 구분하여 함께 묶어 속성을 부여하는 것

 

 

▷선택자가 " , " (반점)으로 구분된 것을 확인할 수 있음.

▷그룹으로 묶인 h1 태그와 p 태그(노란색 밑줄)는 속성이 부여된 것을 확인할 수 있음

▷그룹으로 묶이지 않은 h2 태그 (파란색 밑줄)은 속성이 부여되지 않은 것을 확인할 수 있음.

 

▶속성 선택자

html 요소의 속성 유무 또는 속성 값을  [ ] 중괄호 안에 넣어 선택자로 사용 가능.

속성 값 설명
h1 [class] class 명을 가진 h1 요소
img [alt] alt 속성을 가진 img 요소
p [class="abc"] class 명이 유일하게 'abc'인 p 요소
p [class~="abc"] class명이 유일하게 'abc'이거나 여러 개의 class명 중 하나가 'abc'인 p 요소
p [class|="abc"] class명이 'abc'이거나 'abc~'로 시작하는 p 요소
p [class^="abc"] class명이 철자 'abc'로 시작하는 p 요소
p [class$="abc"] class 명이 철자 'abc'로 끝나는 p 요소
p [class*="abc"] class 명에 철자 'abc'가 포함되어 있는 요소
a  [href^="mailto"] href 속성값이 'mailto'로 시작하는 a요소

 

▶가상 클래스 선택자

: 링크가 걸린 문자에 스타일을 부여하는 것

 

속성 값 설명
 a: link 링크가 걸린 문자에 속성을 부여하는 선택자
a:visited 링크를 클릭하여 해당 페이지에 갔다가 돌아온 경우의 속성을 부여하는 선택자
a :hover 링크가 걸린 문자에 마우스가 닿았을 겨우의 속성을 부여하는 선택자
a:active 링크 걸린 글자가 활성화 되었을 경우의 속성을 부여하는 선택자
(클릭했다가 돌아왔거나 클릭하려다 만 경우)
a:focus 링크 걸린 글자에 포커스가 생길 경우의 속성을 부여하는 선택자
(키보드의 [Tab]키 등으로 포커스가 나타날 경우)

 

▶가상 요소 선택자

속성 값 설명
:first-letter 요소의 첫 글자
:first-line 요소의 첫 줄
:first-child 같은 요소 중 첫 번째 요소
:last-child 같은 요소 중 마지막 요소
:nth-child (n) 같은 요소 중 n번째 요소
:before 요소 안 맨 앞에 배치 될 요소
(마크업에 없는 가상 요소)
:after 요소 안 맨 뒤에 배치 될 요소
(마크업에 없는 가상 요소)

 

 

▶종속 선택자

-type 선택자와 id선택자, class 선택자가 결합된 형태

 

예를 들어 마크업이 아래와 같다면,

<p id=atxt"> 선택자의 다양한 표현</p>

▷ #atxt와 p#atxt는 같은 선택자임.

▷ 그러나 우선순위는 p#atxt가 #atxt보다 높은 우선순위를 가짐.

▶선택자의 우선순위

같은 선택자가 여러 css 명령을 중복으로 받았을 때,

일반적으로 우선순위가 같은 선택자라면 나중에 기술한 것이 먼저 기술한 것보다 우선순위가 높음.

 

선택자 우선순위
전체 선택자 ( * ) 0
type 선택자
(p, h1, ul ···· 등)
1
가상 선택자
(first-child ···· 등)
10
class 선택자
(.abc ···· 등)
10
id 선택자
(#abc ···· 등)
100

 

▷요소에 직접 style=" " 형식으로 css를 기술하는 인라인 스타일은 어떤 선택자보다 우선으로 실행됨.

▷그 어떤 방법보다 최우선으로 CSS를 적용할 경우에는 선택자에 속성을 부여하는 마지막에 !important를 붙여줌.

ex) p { color: red !important; }  

 

▷ 전체 우선순위

 

Type 선택자 < class 선택자, 가상 선택자 < id 선택자 < inl line style < !important

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts