

{} 안에 작성하며 여러 개일 경우 ;으로 구분/* 주석 내용 */)의 주석 사용style="property:value; 형태로 지정<body style="color: blue">
. . .
</body>
<head>의 <style>에 집중해서 작성<head>
<style>
h1 {
color : red;
}
</style>
</head>
<link> 태그로 연결@importstyle tag 안에 설정하며 다른 CSS 파일 내부에서도 사용 가능<style> 태그의 맨 상단에 위치해야 함@import utl("file path"); 또는 @import "file path"; 형태로 사용



| 그룹 | 상속되는 속성 | 상속되지 않는 속성 |
|---|---|---|
| font & text | fontXXX, textXXX, wordXXX, lineBreak, lineHeight, letterSpacing, whiteSpace, direction | rubyXXX, verticalAlign |
| color & background | XXXcolor | backgroundXXX, background-color |
| layout | listXXX, layoutGridXXX, visibility | borderXXX, marginXXX, paddingXXX, tableLayout, float, clear, display |
| position | (상속되는 속성 없음) | position, bottom, left, right, top, clip, overflow, height, width, zIndex |
| 선택자 | 명시도 | 설명 | 활용 예 |
|---|---|---|---|
| 전체 선택자 (*) | 0-0-0 | HTML 문서 내 모든 요소를 선택. 주로 user agent의 CSS를 reset하는 용도로 사용 | * { margin: 0; } |
| 태그 선택자 | 0-0-1 | 지정된 태그명을 가진 요소를 선택 | p { color: blue; } |
| 클래스 선택자 (.) | 0-1-0 | 특정 클래스 속성값을 가진 요소를 선택. 하나의 태그에 여러 클래스 선언 가능 | .header { color: blue; } |
| ID 선택자 (#) | 1-0-0 | 특정 id 속성값을 가진 요소를 선택. ID는 문서 내에서 유일해야 함 | #logo { width: 100px; } |
| 선택자 | 명시도 | 설명 | 활용 예 |
|---|---|---|---|
자식 선택자 (>) | 각 선택자의 합 | 부모 요소의 직계 자식 요소를 선택 | section > p { background-color: blue; } |
| 자손 선택자 (공백) | 각 선택자의 합 | 부모 요소의 하위 모든 요소(자손)를 선택 | section p { background-color: blue; } |
인접 형제 선택자 (+) | 각 선택자의 합 | 지정된 요소의 바로 다음 형제 요소를 선택 | header + span { background-color: blue; } article + p { background-color: blue; } |
일반 형제 선택자 (~) | 각 선택자의 합 | 지정된 요소의 다음에 오는 모든 형제 요소를 선택 | header ~ p { background-color: blue; } |
| 선택자 | 명시도 | 설명 | 활용 예 |
|---|---|---|---|
[attr] | 0-1-0 | 특정 속성을 가진 요소를 선택 | [data-type] { color: blue; } |
[attr=val] | 0-1-0 | 특정 속성의 값이 정확히 일치하는 요소를 선택 | [type="text"] { color: blue; } |
[attr^=val] | 0-1-0 | 특정 속성값으로 시작하는 요소를 선택 | [href^="https"] { color: blue; } |
[attr$=val] | 0-1-0 | 특정 속성값으로 끝나는 요소를 선택 | [href$=".pdf"] { color: blue; } |
[attr~=val] | 0-1-0 | 특정 속성값을 "단어"로 포함하는 요소를 선택 예: class="button primary" 중 button 선택 | [class~="button"] { color: blue; } |
[attr*=val] | 0-1-0 | 특정 속성값을 부분적으로 포함하는 요소를 선택 (Like) 예: class="dark-primary"에서 dark 선택 | [class*="dark"] { color: blue; } |
| 선택자 | 명시도 | 설명 | 활용 예 |
|---|---|---|---|
:hover | 0-1-0 | 이벤트 관련: 마우스 커서가 올라간 상태 | a:hover { color: red; } |
:active | 0-1-0 | 이벤트 관련: 마우스로 클릭된 상태 | button:active { background: #ddd; } |
:focus | 0-1-0 | 이벤트 관련: 포커스가 된 상태 | input:focus { border: 2px solid blue; } |
:link | 0-1-0 | 링크 관련: 아직 방문하지 않은 링크 | a:link { color: black; } |
:visited | 0-1-0 | 링크 관련: 한 번 이상 방문한 링크 | a:visited { color: black; } |
| 선택자 | 명시도 | 설명 | 활용 예 |
|---|---|---|---|
:first-child:last-child | 0-1-0 | 각각 E가 첫 번째 또는 마지막 자식으로 등장한 요소 | li:first-child { color: red; }li:last-child { color: red; } |
:nth-child(n):nth-last-child(n) | 0-1-0 | 앞에서 또는 뒤에서 n번째 자식 요소 선택 n=1부터 시작, 2n-1 등 수식 가능, even/odd 사용 가능 | tr:nth-child(2n) { color: red; }tr:nth-child(even) |
:not() | 0-1-0 | 해당 선택자가 아닌 요소 선택 (not 자체는 명시도에 영향 없음) | div:not(.exclude) { color: red; } |
:empty | 0-1-0 | 자식 요소나 텍스트가 없는 빈 요소 선택 | p:empty { display: none; } |
:first-of-type:last-of-type | 0-1-0 | 같은 타입 중에서 첫 번째 또는 마지막 요소 선택 | li:first-of-type { color: red; }li:last-of-type { color: red; } |
:nth-of-type(n):nth-last-of-type(n) | 0-1-0 | 같은 타입 중에서 앞/뒤에서 n번째 요소 선택 | tr:nth-of-type(2n) { color: red; }tr:nth-of-type(even) |
:only-child | 0-1-0 | 형제 요소가 없는 요소 선택 | p:only-child { font-size: 1.5em; } |
:only-of-type | 0-1-0 | 같은 타입의 형제 요소가 없는 요소 선택 | img:only-of-type { color: red; } |
| 선택자 | 명시도 | 설명 | 활용 예 |
|---|---|---|---|
:checked | 0-1-0 | 체크된 상태 | input:checked { background: yellow; } |
:disabled | 0-1-0 | 비활성화된 상태 | button:disabled { opacity: 0.5; } |
:enabled | 0-1-0 | 활성화된 상태 | button:enabled { opacity: 0.5; } |
:valid | 0-1-0 | HTML5 제약 조건(type 등)에 만족하는 요소 | input[type="email"]:valid { opacity: 0.5; } |
:invalid | 0-1-0 | HTML5 제약 조건에 만족하지 않는 요소 | input[required]:invalid { opacity: 0.5; } |
| 선택자 | 명시도 | 설명 | 활용 예 |
|---|---|---|---|
::before | 0-0-1 | 지정된 요소의 기존 내용 앞에 content 내용 추가 | p::before { content: "내용 : "; } |
::after | 0-0-1 | 지정된 요소의 기존 내용 뒤에 content 내용 추가 | p::after { content: "내용 : "; } |
::first-letter | 0-0-1 | 요소의 첫 번째 글자만 선택 | div::first-letter { font-size: 2em; } |
::first-line | 0-0-1 | 요소의 첫 번째 줄만 선택 | div::first-line { font-size: 2em; } |
::selection | 0-0-1 | 사용자가 드래그한 부분 선택 | div::selection { background: yellow; } |


| 속성명 | 설명 |
|---|---|
| width | 요소의 너비를 지정하는 속성min-width < width < max-width / 기본형: width: 값;값: auto, 길이값(px, em, vw 등), 백분율(%) em: 부모의 font-size 기준vw: viewport width, vh: viewport height |
| height | 요소의 높이를 지정하는 속성min-height < height < max-height 기본형: height: 값;값: auto, 길이값(px, em, vh 등), 백분율(%) |
| min-width | 요소의 최소 너비를 지정하는 속성 / 기본형: min-width: 값;값: 0, 길이값(px, em, vw 등), 백분율(%) |
| min-height | 요소의 최소 높이를 지정하는 속성 / 기본형: min-height: 값;값: 0, 길이값(px, em, vh 등), 백분율(%) |
| max-width | 요소의 최대 너비를 지정하는 속성 / 기본형: max-width: 값;값: none, 길이값(px, em, vw 등), 백분율(%) |
| max-height | 요소의 최대 높이를 지정하는 속성 / 기본형: max-height: 값;값: none, 길이값(px, em, vh 등), 백분율(%) |
| 속성명 | 설명 |
|---|---|
| padding-[dir] | dir은 top / right / bottom / left 각 방향의 여백을 지정하는 속성 / 기본형: padding-[dir]: 값;값: 0, 길이값(px, em 등), 백분율(%) |
| padding | 단축형으로 한 번에 여러 방향 지정 가능padding: 10px; → 모든 방향padding: 10px 20px; → 상하 / 좌우padding: 10px 20px 30px; → 상 / 좌우 / 하padding: 10px 20px 30px 40px; → 상 / 우 / 하 / 좌 (시계방향) |
| 구분 | block 요소 | inline 요소 |
|---|---|---|
| 좌우 | 모두 패딩 적용 | 모두 패딩 적용 |
| 상하 | 모두 패딩 적용 | 시각적으로는 보임 - 실제 레이아웃에는 영향 없음 (다른 요소를 밀어내지 않음) |
| 속성명 | 설명 |
|---|---|
| border-[dir]-width | 테두리 두께 지정 기본형: border-width: 값;값: thin, medium, thick, 길이값(px 등) |
| border-[dir]-style | 테두리 스타일 지정 기본형: border-style: 값;값: none, solid, dashed, dotted, double, groove, ridge, inset, outset |
| border-[dir]-color | 테두리 색상 지정 기본형: border-color: 값;값: 색상명, RGB, HEX |
| border-[dir]-radius | 모서리 둥글기 지정 dir은 두 방향의 조합 (top/bottom - left/right) 기본형: border-radius: 값;값: 0, 길이값(px), 백분율(%) |
| border-[dir] | 단축 속성 기본형: border: width style color;값은 border-width border-style border-color 순서 |
| 속성명 | 설명 |
|---|---|
| box-sizing | 요소의 크기 계산 방식을 지정하는 속성 기본형: box-sizing: 계산방식;값: content-box (콘텐츠 영역만 포함, 기본값)border-box (padding과 border를 포함) |
| 속성명 | 설명 |
|---|---|
| margin-[dir] | dir은 top / right / bottom / left 각 방향의 바깥 여백을 지정하는 속성 기본형: margin-[dir]: 값;값: 0, 길이값(px, em 등), 백분율(%) |
| margin | 단축형으로 한 번에 여러 방향 지정 가능margin: 10px; → 모든 방향margin: 10px 20px; → 상하 / 좌우margin: 10px 20px 30px; → 상 / 좌우 / 하margin: 10px 20px 30px 40px; → 상 / 우 / 하 / 좌 (시계방향) |