CSS 선택자는 HTML요소들을 조작하기 위해서 사용된다고 배웠습니다
CSS 선택자는 요소(element)선택자 이외에도 id, classes, grouping 등등이 있습니다. 이번 블로그에서는 기본 선택자 외의 선택자에 대해서 알아봅시다.
아래의 예제는 HTML요소들을 가운데로 정렬하고 색깔을 빨강색으로 지정하는 예제입니다.
현재 있는 모든 요소들을 선택하여 속성값을 지정할수 있습니다.
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- *{
- text-align:center;
- color:red;
- }
- </style>
- </head>
- <body>
- <p>가나다라마바사</p>
- 가나다라마바사
- </body>
- </html>
이 선택자는 요소의 기본적인 이름을 사용하는 선택자 입니다.
HTML의 요소인 <P>을 사용한다면 아래와 같이 사용할 수 있습니다.
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- P{
- text-align:center;
- color:red;
- }
- </style>
- </head>
- <body>
- <p>가나다라마바사</p>
- 가나다라마바사
- </body>
- </html>
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- P{
- text-align:center;
- color:red;
- }
- </style>
- </head>
- <body>
- <p>가나다라마바사</p>
- 가나다라마바사
- </body>
- </html>
div안의 p태그만 영향을 받게 됩니다.
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- div p{
- text-align:center;
- color:blue;
- }
- </style>
- </head>
- <body>
- <div><p>가나다라마바사</p></div>
- <p>가나다라마바사</p>
- 가나다라마바사
- </body>
- </html>
주로 header나 content 등 한 페이지에 한 번만 들어가는 로고나 상단 메뉴 하단정보등의 스타일과 같은 특별한 요소를 정의할 때 id를 사용합니다.
ID선택자는 한 가지만 지정해서 사용하는 선택자 이고 하나의 문서에 고유한 id하나밖에 사용할 수 밖에 없습니다.
body태그안에 한번만 사용해야 하는데 그렇지 않으면 웹표준 테스트에서 오류가 난다고 합니다.
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- #para1{
- text-align:center;
- color: blue;
- }
- </style>
- </head>
- <body>
- <div id="para1">
- <p>가나다라마바사</p>
- </div>
- <div>
- <p>가나다라마바사</p>
- </div>
- <p>가나다라마바사</p>
- 가나다라마바사
- </body>
- </html>
그룹으로 묶어서 스타일을 지정할 때 사용하는 스타일 형식입니다.
여러개의 태그에 동시에 적용될 수 있으므로 몇번이고 재사용이 가능합니다.
반복적으로 사용되는 스타일이나 id로 정의해준 구역에 세부 스타일을 정의할때 사용한다.
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- .center{
- text-align:center;
- color:blue;
- }
- </style>
- </head>
- <body>
- <div class="center">
- <p>가나다라마바사</p>
- </div>
- <div>
- <p>가나다라마바사</p>
- </div>
- <p>가나다라마바사</p>
- 가나다라마바사
- </body>
- </html>
그룹 선택자는 뜻에서 용도를 알 수 있습니다.
HTML요소들을 한꺼번에 지정하는 방법입니다.
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- h1, span, div p{
- text-align: center;
- color: red;
- }
- </style>
- </head>
- <body>
- <div class="center">
- <p>가나다라마바사</p>
- </div>
- <div>
- 가나다라마바사
- </div>
- <span>가나다라마바사</span>
- 가나다라마바사
- </body>
- </html>
선택자는 Type(element),Universal(*),class/id,attribute(속성),가상요소/가상클래스,선택자결합(하위,자식,인접) 등으로 구성된다.
Pattern | Meaning | S5 | C8 | F3.6 | O11 | I9b | I8 | I7 | I6 |
---|---|---|---|---|---|---|---|---|---|
#id | id로 지정된 요소 선택 | O | O | O | O | O | O | O | O |
.class | class로 지정된 요소 선택 | O | O | O | O | O | O | O | O |
E | E 요소를 선택 | O | O | O | O | O | O | O | O |
E:link | 방문하지 않은 E를 선택 | O | O | O | O | O | O | O | O |
E:visited | 방문한 E를 선택 | O | O | O | O | O | O | O | O |
E:hover | 마우스가 올라가 있는 동안 E를 선택 | O | O | O | O | O | O | O | O |
E:active | 마우스 클릭 또는 키보드(enter)가 눌린 동안 E를 선택 | O | O | O | O | O | O | O | X |
E:focus | focus가 머물러 있는 동안 E를 선택 | O | O | O | O | O | O | X | X |
E:first-line | E 요소의 첫 번째 라인 선택 | O | O | O | O | O | O | O | X |
E:first-letter | E 요소의 첫 번째 문자 선택 | O | O | O | O | O | O | O | X |
* | 모든 요소 선택 | O | O | O | O | O | O | O | O |
E[foo] | ‘foo’ 속성이 포함된 E를 선택 | O | O | O | O | O | O | O | X |
E[foo=”bar”] | ‘foo’ 속성의 값이 ‘bar’와 일치하는 E를 선택 | O | O | O | O | O | O | O | X |
E[foo~=”bar”] | ‘foo’ 속성의 값에 ‘bar’가 포함되는 E를 선택 | O | O | O | O | O | O | O | X |
E[foo|=”en”] | ‘foo’ 속성의 값이 ‘en’ 또는 ‘en-‘ 으로 시작되는 E를 선택 | O | O | O | O | O | O | O | X |
E:first-child | 첫 번째 자식 요소가 E라면 선택 | O | O | O | O | O | O | O | X |
E:lang(fr) | HTML lang 속성의 값이 ‘fr’로 지정된 E를 선택 | O | O | O | O | O | O | X | X |
E::before | E 요소 전에 생성된 요소 선택 | O | O | O | O | O | O | X | X |
E::after | E 요소 후에 생성된 요소 선택 | O | O | O | O | O | O | X | X |
E>F | E 요소의 자식인 F 요소 선택 | O | O | O | O | O | O | O | X |
E+F | E 요소를 뒤의 F 요소 선택 | O | O | O | O | O | O | O | X |
E[foo^=”bar”] | ‘foo’ 속성의 값이 ‘bar’로 정확하게 시작하는 요소 선택 | O | O | O | O | O | O | O | X |
E[foo$=”bar”] | ‘foo’ 속성의 값이 ‘bar’로 정확하게 끝나는 요소 선택 | O | O | O | O | O | O | O | X |
E[foo*=”bar”] | ‘foo’ 속성의 값에 ‘bar’를 포함하는 요소 선택 | O | O | O | O | O | O | O | X |
E:root | 문서의 최상위 루트 요소 선택 | O | O | O | O | O | X | X | X |
E:nth-child(n) | 그 부모의 n번째 자식이 앞으로부터 지정된 순서와 일치하는 E 라면 선택 | O | O | O | O | O | X | X | X |
E:nth-last-child(n) | n번째 자식이 뒤로부터 지정된 순서와 일치하는 요소가 E 라면 선택 | O | O | O | O | O | X | X | X |
E:nth-of-type(n) | E 요소 중 앞으로부터 순서가 일치하는 n번째 E 요소 선택 | O | O | O | O | O | X | X | X |
E:nth-last-of-type(n) | E 요소 중 끝으로부터 순서가 일치하는 n번째 E 요소 선택 | O | O | O | O | O | X | X | X |
E:last-child | E 요소 중 마지막 자식이라면 E 선택 | O | O | O | O | O | X | X | X |
E:first-of-type | E 요소 중 첫번째 E 선택 | O | O | O | O | O | X | X | X |
E:last-of-type | E 요소 중 마지막 E 선택 | O | O | O | O | O | X | X | X |
E:only-child | E 요소가 유일한 자식이면 선택 | O | O | O | O | O | X | X | X |
E:only-of-type | E 요소가 같은 타입이면 선택 | O | O | O | O | O | X | X | X |
E:empty | 텍스트 및 공백을 포함하여 빈 자식을 가진 E를 선택 | O | O | O | O | O | X | X | X |
E:target | E의 URI의 대상이 되면 선택 | O | O | O | O | O | X | X | X |
E:enabled | 활성화된 폼 컨트롤 E요소 선택 | O | O | O | O | O | X | X | X |
E:disabled | 비활성화된 폼 컨트롤 E요소 선택 | O | O | O | O | O | X | X | X |
E:checked | 선택된 폼 컨트롤(라디오버튼,체크박스)을 선택 | O | O | O | O | O | X | X | X |
E:not(s) | s가 아닌 E 요소 선택 | O | O | O | O | O | X | X | X |
E~F | E 요소가 앞에 존재하면 F를 선택 | O | O | O | O | O | O | O | X |
<표 1> CSS 버전에 따른 선택자의 종류와 브라우저별 지원여부 – CSS1 – CSS2 – CSS3
'웹프로그래밍 > css' 카테고리의 다른 글
CSS 배경 스타일 (0) | 2014.07.27 |
---|---|
CSS 삽입방법 (0) | 2014.07.25 |
CSS - 메뉴 제작하기 (0) | 2014.06.09 |
필터 효과 (0) | 2011.02.18 |
레이어 (0) | 2011.02.18 |