티스토리 뷰
pseudo-class
별도의 class를 지정하지 않고도 class를 지정한 것 처럼 요소를 선택할 수 있다.
:hover
마우스를 위에 올렸을 때 CSS값
:first-child(last-child)
해당 부모 컨테이너의 차일드 중 첫번째(마지막) 요소
:first-of-type(last-of-type)
해당 부모 컨테이너의 차일드 중 조건 요소를 만족하는 첫번째(마지막) 요소
<div class="container container-box">Mouse Hover</div>
<input type="text" class="focus-input" />
<div class="container-two">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
이렇게 html의 body를 구성하고, header에 style을 내부 서식으로 아래와 같이 작성한다.
<style>
.parent p:first-of-type { /*parent class에서 (pesudo) p element type인 first child*/
color: lightcoral;
}
.container {
background-color: lightpink;
padding: 10px;
margin-bottom: 30px;
}
.container:hover {/*container class가 (pesudo) hover 되는 경우*/
background-color: lightcoral;
}
.focus-input:focus {/*focus-input class가 (pesudo) focus 되는 경우*/
background-color: lightgreen;
}
.container-two > div { /*container-two class의 '>' 하위 자식 div들에 대해서*/
margin-top: 30px;
background-color: lightpink;
width: 100px;
height: 100px;
float: left;
}
.container-two > div:nth-child(2n + 1) { /*container-two class의 '>' 하위 자식들 중 2n+1(홀수)번째 자식들에 대해*/
background-color: lightskyblue;
}
.container-two > div:last-child { /*container-two class의 '>' 하위 자식들 중 div인 last child에 대해*/
width: 300px;
}
</style>
Mouse Hover
A
b
c
Pseudo Element
가상 클래스처럼 선택자에 추가되는데, 존재하지 않는 요소를 존재하는 것처럼 부여해 문서의 특정부분을 선택함
:: 로 표현
before와 after를 자주 쓴다.
<ul>
<li>A</li>
<li>B</li>
<li>C</li>
</ul>
<style>
li {
float: left;
margin-right: 30px;
font-size: 32px;
list-style: none;
}
</style>
이렇게 만든 html은
이렇게 보이게 된다.
여기서 style에
li::after {
/*모든 li element의 뒤에*/
content: "|";
}
li:last-of-type::after {
/*li element의 last-of-type의 뒤에*/
content: "";
}
li:first-of-type::before {
/*li element의 first-of-type의 앞에*/
content: "시작";
}
을 추가해주게 되면
가 되어서 li element의 모든 뒤에 |가 붙지만,
li element 중 마지막 타입은 content를 없애버렸기 때문에 C의 뒤에는 |가 붙지 않았다.
또한 li element 중 첫번째 타입의 앞에는 "시작"이라는 content를 붙였기 때문에 A 앞에는 시작이 적히게 된다.
꼭! before와 after는 content와 같이! 쓰여야만 한다.
HTML에 없던 정보를 CSS에서 새롭게 생성해주는 역할이다.
'■ FE 로드맵 > ◻ CSS' 카테고리의 다른 글
Margin & Padding & Border (0) | 2023.03.12 |
---|---|
Button의 CSS 만져보기 (0) | 2023.03.12 |
Float & Clear (0) | 2023.03.12 |
기초 (0) | 2023.03.12 |