스타일 적용을 지정하기 위한 중요한 요소로
선택자를 모르면 진짜진짜 고생한다,,,
이참에 잘 정리해두자
* {
margin : ;
width : ;
}
h1 {}
p1 {}
<div id="myid">
...
</div>
#myid {
width: 500px;
}
<h1 class="myclass">hello wolrd</h1>
<p>Lorem ipsum dolor sit amt</p>
<p class="myclass">Lorem ipsum dolor sit amt</p>
.myclass {
color : blue;
}
아이디 선택자와 클래스 선택자를 잘 구분해서 사용하자
[type="button"]{
border:0;
cursor:pointer;
}
[class="btn"]{
color:#fff;
background: royalblue;
}
h1, h2, h3, h4, h5, h6{ font-weight:bold;}
이 아래부터는 복합 선택자이다.
보통 위에도 많이 사용하지만 실제 웹 페이지를 만들때는 상상이상으로 복잡한 구조가 필요하므로 정말 다양하게 특정 태그를 지정할 필요가 있어 보여 아래 복합 선택자를 많이 사용하게 될 것 같다.
(실제로 실습에서도 복합 선택자를 많이 사용하였다!)
section p { /*요기 section 다음 띄어쓰기 후 p*/
border: 3px solid skyblue;
}
section > p {
color : 아무컬러~;
}
section~p {
background : blue;
}
(일곱 여덟 아홉) 지정
section + p {
background : yellow;
}
(section 태그 다음에 오는 p 태그로 일곱만 해당한다)
가상 클래스
이름 | 설명 |
---|---|
:link | 방문하지 않은 링크 |
:visited | 방문한 링크 |
:hover | 마우스 커서를 올려 놓았을 때 |
:active | 마우스로 클릭했을 때 |
:focus | 포커스 될때(tab) |
:first-child
:last-child
:nth-child
/* 2번째 li */
li:nth-child(2) {
color: lime;
}
/* 홀수번째 li */
li:nth-child(odd) {
color: lime;
}
/* 짝수번째 li */
li:nth-child(even) {
color: lime;
}
/* 2n+1번째 li */
li:nth-child(2n+1) {
color: lime;
}
:not
/* li 중 첫번째가 아닌 li */
li:not(:first-child){
margin-top:20px;
}
진짜 많다 ㅋㅋㅋ,,
그치만 한번 공부해두면 두고두고 사용 가능!
아래 사이트에서 게임하듯이 css문제를 풀어볼 수 있다
시간이 나면 한번 해보는걸 추천한다
다 푸는데 한 시간 걸렸다 ㅠㅠ
https://flukeout.github.io/
https://css-speedrun.netlify.app/