선택자 {
속성: 값;
...
}
/* */ 로 작성<style></style> 안에 작성style="속성: 값; ..." 으로 작성<link rel="stylesheet" href="./css/main.css"> 으로 적용@import 방식main.css 내에 @import url("./box.css"); 로 import 함.* 로 작성 * {
color: red;
}
li {
color: red;
}
.orange {
color: red;
}
#orange {
color: red;
}
span.orange {
color: red;
}
span 태그 중에 class=orange 인 애들을 선택 ul > .orange {
color: red;
}
ul 의 자식 중에 class=orange 인 요소들을 선택. ul .orange {
color: red;
}
ul 의 하위 요소 중에 class=orange 인 요소들을 선택.선택자 다음의 형제요소 딱 하나만을 선택
.orange + li {
color: red;
}
<ul>
<li>딸기</li>
<li>수박</li>
<li class="orange"></li>
<li>망고</li> /* 이놈만 선택 */
<li>사과</li>
</ul>
선택자 다음의 형제요소 모두를 선택
.orange ~ li {
color: red;
}
<ul>
<li>딸기</li>
<li>수박</li>
<li class="orange"></li>
<li>망고</li> /* 이놈도 선택 */
<li>사과</li> /* 이놈도 선택 */
</ul>
어떤 동작에 대해 반응함
마우스를 올려놓았을 때 동작
a:hover
마우스로 클릭하는 중에 동작
a:active
선택자 요소가 포커스 되면 동작
focus 가 가능하지는 않음.focus가 가능하지 않은 요소를 focus가 가능하도록 만들어주려면? 다음과 같이 tabindex=-1을 추가 <div class="box" tabindex="-1"></div>
input:focus
선택자 ABC가 형제 요소 중 첫째라면 선택. 첫째가 아니면 선택하지 않음.
.fruits span:first-child {
color: red;
}
<div class="fruits">
<span>딸기</span> /* 이놈만 선택 */
<span>수박</span>
<div class="orange"></div>
<p>망고</p>
<h3>사과</h3>
</ul>
.fruits *:nth-child(2) {
color: red;
}
<div class="fruits">
<span>딸기</span>
<span>수박</span> /* 이놈만 선택 */
<div class="orange"></div>
<p>망고</p>
<h3>사과</h3>
</ul>
.fruits *:nth-child(2n) {
color: red;
}
<div class="fruits">
<span>딸기</span>
<span>수박</span> /* 이놈 선택 */
<div class="orange"></div>
<p>망고</p> /* 이놈도 선택 */
<h3>사과</h3>
</ul>
.fruits *:not(span) {
color: red;
}
<div class="fruits">
<span>딸기</span>
<span>수박</span>
<div class="orange"></div> /* 이놈 선택 */
<p>망고</p> /* 이놈도 선택 */
<h3>사과</h3> /* 이놈도 선택 */
</ul>
::으로 선택
content 속성이 존재해야 함.width, height 속성을 주어도 적용이 안 되므로, 이를 block 요소로 바꾸려면 display: block; 을 속성에 추가. .box::before {
content: "앞!";
}
content 속성이 존재해야 함.width, height 속성을 주어도 적용이 안 되므로, 이를 block 요소로 바꾸려면 display: block; 을 속성에 추가.[속성이름] 혹은 [속성이름=값] 으로 씀.
[type="password"] {
color: red;
}
[data-fruit-name] { /* data속성도 가능 */
color: red;
}
거의 글자 관련된 속성들 위주.
원래 상속 안되는 스타일도 강제로 상속시킴
.parent {
height: 200px;
}
.child {
height: inherit; /* 강제상속 */
}
'명시도' 라고 함.
<div
id="color_yellow"
class="color_green"
style="color: orange;"> <!-- 점수: 1000점 -->
Hello world! <!-- 글자색은? -->
</div>
div { color: red !important; }
#color_yellow { color: yellow; }
.color_green { color: green; }
div { color: blue; }
* { color: darkblue; }
body { color: violet; }
!important: 무한대 div { color: red !important; } /* 무한대 */
#color_yellow { color: yellow; } /* 100 */
.color_green { color: green; } /* 10 */
div { color: blue; } /* 1 */
* { color: darkblue; } /* 0 */
body { color: violet; } /* 점수없음 */
.list li.item {} /* 21점. class 두개, 태그 하나. */
.list li:hover {} /* 21점. 가상클래스도 결국 클래스니까 10점으로 계산 */
.box::before {} /* 11점. ::는 가상요소이고 얘는 태그랑 비슷하므로 1점으로 계산. */
#submit span {} /* 101점. id선택자 + tag선택자 */
header .menu li:nth-child(2) {} /* 22점. 1점/10점/1점/10점 */
h1 {} /* 1점 */
:not(.box) {} /* 10점. not 은 점수계산 안함 */