div {
color: blue;
margin: 20px;
}
브라우저가 해석하지 않는다
/*설명 작성*/
내장 방식
<head>
<style>
div {
color: red;
margin: 20px;
}
</style>
</head>
링크 방식
<link rel="stylesheet" href="./css/main.css">
인라인 방식
<div style="color: red; margin: 20px;"></div>
@import 방식
*: 모든 요소를 선택
태그 선택자: 태그 이름으로 요소 선택
div {
color: red;
}
li {
color: red;
}
class 선택자: class 속성 값으로 요소 선택
/* class="orange" 일때, */
.orange {
color: red;
}
id 선택자: id 속성 값으로 요소 선택
/* id="username" 일때, */
#username {
color: red;
}
일치 선택자: 선택자 A와 선택자 B를 동시에 만족하는 요소 선택
<span class="orange">오렌지</span>
span.orange {
color: red;
}
자식 선택자: 선택자 A의 자식 요소인 선택자 B 선택
<div>
<ul>
<li>사과</li>
<li class="orange">오렌지</li> <!-- 이 요소를 선택함 -->
</ul>
<div>당근</div>
<p>토마토</p>
<span class="orange">오렌지</span>
</div>
ul > .orange {
color: red;
}
하위(후손) 선택자: 선택자 A의 하위(후손) 요소인 선택자 B 선택
<div>
<ul>
<li>사과</li>
<li class="orange">오렌지</li> <!-- 이 요소를 선택함 -->
</ul>
<div>당근</div>
<p>토마토</p>
<span class="orange">오렌지</span> <!-- 이 요소를 선택함 -->
</div>
<span class="orange">오렌지</span> <!-- 이 요소는 선택안함 -->
div .orange {
color: red;
}
인접 형제 선택자: 선택자 A의 다음 형제 요소 선택자 B 하나를 선택
<ul>
<li>딸기</li>
<li>수박</li>
<li class="orange">오렌지</li>
<li>망고</li> <!-- 이 요소를 선택함 -->
<li>사과</li>
</ul>
.orange + li {
color: red;
}
일반 형제 선택자: 선택자 A의 다음 형제 요소 선택자 B 모두를 선택
<ul>
<li>딸기</li>
<li>수박</li>
<li class="orange">오렌지</li>
<li>망고</li> <!-- 이 요소를 선택함 -->
<li>사과</li> <!-- 이 요소를 선택함 -->
</ul>
.orange ~ li {
color: red;
}
hover: 선택자 A 요소에 마우스 커서가 올라가 있는 동안 선택(동작)
a:hover {
color: red;
}
active: 선택자 A 요소에 마우스를 클릭하고 있는 동안 선택(동작)
a:active {
color: red;
}
focus: 선택자 A 요소가 포커스되면 선택(동작)
input:focus {
color: orange;
}
first-child
<div class="fruits">
<span>딸기</span> <!-- 이 요소를 선택함 -->
<span>수박</span>
<div>오렌지</div>
<p>망고</p>
<h3>사과</h3>
</div>
/* class="fruits"의 후손 요소 중 첫째 span 요소를 선택 */
.fruits span:first-child {
color: red;
}
last-child
<div class="fruits">
<span>딸기</span>
<span>수박</span> <!-- 이 요소를 선택함 -->
<div>오렌지</div>
<p>망고</p>
<h3>사과</h3>
</div>
/* class="fruits"의 후손 요소 중 막내 span 요소를 선택 */
.fruits span:last-child {
color: red;
}
nth-child(n)
<div class="fruits">
<span>딸기</span>
<span>수박</span> <!-- 이 요소를 선택함 -->
<div>오렌지</div>
<p>망고</p> <!-- 이 요소를 선택함 -->
<h3>사과</h3>
</div>
/* class="fruits"의 모든 후손 요소 중 2n번째(짝수번) 형제 요소를 선택 */
.fruits *:nth-child(2n) {
color: red;
}
not
<div class="fruits">
<span>딸기</span>
<span>수박</span>
<div>오렌지</div> <!-- 이 요소를 선택함 -->
<p>망고</p> <!-- 이 요소를 선택함 -->
<h3>사과</h3> <!-- 이 요소를 선택함 -->
</div>
/* class="fruits"의 후손 요소 중 span 요소를 제외한 모든(*) 요소를 선택 */
.fruits *:not(span) {
color: red;
}
before
<div class="box">
<!-- 이 위치에 삽입된다 -->
Content!
</div>
.box::before {
content: "앞!";
}
after
<div class="box">
Content!
<!-- 이 위치에 삽입된다 -->
</div>
.box::before {
content: "뒤!";
}
[ABC]
<input type="text value="HEROPY" />
<input type="password value="1234" />
<input type="text value="ABCD" disabled /> <!-- 이 요소 선택 -->
[disabled] {
color: red;
}
[ABC=”XYZ”]
<input type="text value="HEROPY" />
<input type="password value="1234" /> <!-- 이 요소 선택 -->
<input type="text value="ABCD" disabled />
[type="password"] {
color: red;
}
![]() |
![]() |
점수 매기기: 점수가 높은 선언이 우선함
선언 순서: 점수가 같다면 가장 마지막에 해석된(마지막에 작성된 코드) 선언이 우선함
<div
id="color_yellow"
class="color_green"
style="color: orange;"> <!-- 인라인 선언=1000점 -->
Hello world!
</div>
div {color: red !important;} /* !important=9999999999(무한대)점 */
#color_yellow {color: yellow;} /* id 선택자=100점 */
.color_green {color: green;} /* class 선택자=10점 */
div {color: blue;} /* 태그 선택자=1점 */
body {color: violet;} /* 상속=점수 계산 안함 */
HTML 속성 = Attributes
CSS 속성 = Properties
JS 속성 = Properties
* 기본값 : 따로 설정하지 않아도 기본적으로 들어가있는 값
* em 사용 시 폰트 사이즈가 바뀌면 사이즈도 바뀔 수 있어 관리 필요함
요소의 외부 여백(공간)을 지정하는 속성, 음수 값 설정 가능
top right bottom left
;top bottom
left right
;top
left right
bottom
;top
right
bottom
left
;요소의 내부 여백(공간)을 지정하는 속성(요소 내부에 여백이 생기기 때문에 요소 자체의 크기가 커짐)
top right bottom left
;top bottom
left right
;top
left right
bottom
;top
right
bottom
left
;요소의 테두리 선을 지정하는 단축 속성
border: 선-두께(border-width) 선-종류(border-style) 선-색상(border-color)
방향마다 설정 가능함 (ex: border-left: 1px solid red;)
색을 사용하는 모든 속성에 적용 가능한 색상 표현
요소의 모서리를 둥글게 깎음
border-radius: 0 0 10px 0;
→ 우측 하단 모서리 10px 만큼 깎임div {
width: 100px;
height: 100px;
background-color: orange;
border: 4px solid red;
padding: 20px;
}
.item1 {
box-sizing: content-box;
}
.item2 {
box-sizing: border-box;
}
box-sizing: content-box (기본값)
box-sizing: border-box
padding, border 속성 적용 시 요소의 크기가 커질 수 있는데, 원하는 요소의 크기로 설정하려면 padding과 border의 사이즈까지 고려해서 설정해야 함
→ 수동 계산은 비효율이므로 box-sizing: border-box 속성을 이용한다.
요소의 화면 출력(보여짐)특성
font-style
font-weight (글자의 두께, 가중치)
font-size
line-height (한 줄의 높이, 행간과 유사)
font-family
font-family: 글꼴1, "글꼴2", ... 글꼴계열;