항상 같은 css를 적용하는 것이 아닌, 특정 상태가 되었을 때만 css를 사용하고 싶은 경우도 있다.
이러한 상황에 의사 클래스라는 것을 사용한다.
의사 클래스(가상클래스)는 선택자에 추가하는 키워드로, 어떤 특정한 상태가 되었을 때 css를 적용하겠다는 의미이다.
의사클래스는 다양한 형태가 있는데 그중 대표적인 것을 알아보려고 한다.
코드 예시
<head>
<style>
a:hover{
color: white;
background-color: gray;
}
a:active{
color: white;
background-color: black;
}
li:nth-child(3){
color: white;
background-color: gray;
}
li:nth-child(n){
color: white;
background-color: gray;
}
li:nth-child(2n-1){
color: white;
background-color: gray;
}
</style>
</head>
<body>
<ul class="menu">
<li><a href="#">사진</li>
<li><a href="#">사진</li>
<li><a href="#">사진</li>
<li><a href="#">사진</li>
</ul>
</body>
위에서부터 순서대로
hover와 active는 설명한 바와 같고 nth-child에 대해 알아보자면,
뒤의 괄호에 3이라고 쓰여있을 경우 li태그들 중 3번째를 선택했다는 것을 의미한다.
n의 경우에는 모든 li태그의 선택을 의미하며
2n-1의 경우 2의 배수에서 -1의 순서에 해당하는 태그를 의미한다. 즉 홀수만을 선택한 것이며 "-1"가 없을 경우에는 짝수를 의미한다.
다음은 의사 요소이다.
의사 요소는 선택자에 추가하는 키워드로 선택한 요소의 특정 부분만 집어 css를 적용할 수 있다.
코드 예시
<head>
<style>
a::first-letter{
color: white;
}
a::after{
content: "보기";
}
a::before{
content: "보기";
}
</style>
</head>
<body>
<ul class="menu">
<li><a href="#">사진</li>
<li><a href="#">사진</li>
<li><a href="#">사진</li>
<li><a href="#">사진</li>
</ul>
</body>
순서대로