기본문법 및 주석
- HTML
<div>Hello</div>
- CSS
div {
font-size: 50px;
color: blue;
text-decoration: underline;
}
-주석
/**/
CSS 선언방식
html에서 style 태그로 작성하는 방식
<style>
div{
color: red;
}
</style}
요소의 style속성에 직접 스타일을 작성하는 방식
선택자가 없음
유지보수 측면에서 단점을 가짐 (우선순위)
<div style="color: red;></div>
link 태그로 외부 css 문서를 가져와서 연결하는 방식
<link rel="stylesheet" href="./css/main.css">
- main.css
div{
color: red;
}
CSS의 @import 규칙으로 CSS문서 안에서
다른 CSS 문서를 가져와 연결하는 방식
연결을 지연시키는 용도로 사용가능
<link rel="stylesheet" href="./css/main.css">
- main.css
@import url(./box.css)
div{
color: red;
}
- box.css
.box {
background-color: red;
}
CSS 선택자
기본 선택자
* {
color: red;
}
li {
color: red;
}
.ABC {
color: red;
}
#ABC {
color: red;
}
복합선택자
기본 선택자를 조합한 선택자
ABC.XYZ {
color: red;
}
ABC>XYZ {
color: red;
}
ABC. XYZ {
color: red;
}
ABC + XYZ {
color: red;
}
ABC ~ XYZ {
color: red;
}
Pseudo-Classes(가상 클래스 선택자)
Pseudo-Classes(가상 클래스 선택자)
a:hover {
color: red;
}
a:active {
color: red;
}
input:focus {
background-color: red;
}
cf. tabindex 속성을 통해 Focus가 될 수 있는 요소로 만들 수 있다.
.fruits div:first-child {
color: red;
}
.fruits div:first-child {
color: red;
}
- 2
.fruits *:nth-child(2) {
color: red;
}
- 2, 4, 6, ...
.fruits *:nth-child(2n) {
color: red;
}
.fruits *:NOT(span){
color: red;
}
Pseudo-Elements (가상 요소 선택자)
Pseudo-Elements (가상 요소 선택자)
- HTML
<div class = "box"
content!
</div>
- CSS
.box::before{
content: "앞"
}
.box::after{
content: "뒤"
}
- print
앞content!뒤
Attribute (속성선택자)
- HTML
<input type="text" value = "Hello">
<input type="password" value = "1234">
<input type="text" value = "ABCD" disabled>
- CSS
[disabled] {
color: red;
}
- HTML
<input type="text" value = "Hello">
<input type="password" value = "1234">
<input type="text" value = "ABCD" disabled>
- CSS
[type="password"] {
color: red;
}
스타일 상속
스타일 상속
글자/문자 관련 속성들은 상속됨
상속되지 않는 속성들은 inherit를 사용해서 상속할 수 있음
선택자 우선순위
선택자 우선순위
같은 요소가 여러 선언의 대상이 된 경우, 어떤 선언의 CSS 속성을 우선 적용할지 결정하는 방법
1. 점수가 높은 선언이 우선함
2. 점수가 같다면, 가장 마지막에 해석된 선언이 우선함
- HTML
<div id="color_yellow"
class="color_green"
style="color: orange;">
hello!
</div>
- CSS
div {color: red !important;} -> 태그
#color_yellow {color: yellow} -> ID
.color_green {color: green;} -> Class
div {color: blue;} -> 태그
* {color: darkblue} -> 전체
body {color: violet} -> 태그
!important : infinity
인라인 : 1000
ID : 100
CLASS : 10
태그 : 1
전체 선택자 : 0
상속 : X