4가지의 선택자가 있다.
✨ 그냥 비유인줄 알았는데 비유가 아닌 진짜 점수입니다!
아래에서 더 자세히 알아보자구여~
/* 0점 */
*{
color: red;
}
/* type 선택자 : 1점 */
p{
color: blue;
}
/* class 선택자 10점 */
.one{
color: green;
}
/* id 선택자 100점 */
#id{
color: green;
}
*
로 표현* {
margin: 0 auto;
}
p {
color: red;
}
.
으로 표현 <p class="blue">Blue</p>
.blue {
color: blue;
}
아이디 / 클래스 네임 정할 때
알파벳 소문자 또는 ‘_’ (언더바), ‘-’(하이픈)으로 시작!
선택자 우선순위에는 3가지의 원칙이 있다
p {
color: red;
}
p {
color: green;
}
이처럼 동일한 선택자가 연속으로 사용됐을 경우
p
태그에는 color:green
갚이 덮어씌워진다.
<head>
<style>
p.color-red {
color: red;
font-size: 20px;
}
p {
color: green;
}
</style>
</head>
<body>
<p class="color-red">
Lorem, ipsum dolor sit amet consectetur adipisicing
</p>
</body>
</html>
위에서처럼 후자선택에 따라 color:green
으로 나올 줄 알았지만?
p.color-red
의 갚이 우선이 된다. : 어떤 선택자가 더 구체적인가?를 판단할때 가중치를 기준으로 판단한다
<!DOCTYPE html>
<html lang="ko">
<head>
<style>
/* 타입셀렉터 : 1점 */
h1 {color: red}
/* 클래스셀렉터 10점 */
.yellowgreen {color: yellowgreen}
/* 아이디셀렉터 100점 */
#fourth {color: skyblue}
</style>
</head>
<body>
<h1>h1의 첫번째</h1>
<h1 class='yellowgreen'>h1의 두번째</h1>
<h1 class='yellowgreen'>h1의 세번째</h1>
<h1 id='fourth' class='yellowgreen'>h1의 네번째</h1>
</body>
</html>
일 때
<h1 id='fourth' class='yellowgreen'>h1의 네번째</h1>
에서는 class와 id 둘 다 있지만 더 점수가 높은 id 속성에 따른다 !
위 이미지 속 ul#primary-nav li.active
는 몇점일까?
ID
선택자 100점 + Class
선택자10점 + 2개의 Type
선택자를 사용하여 2점
=> 총 112점 !
참고 링크 : https://specificity.keegan.st/
또다른 예시를 적용해보자
라고 한다면 경기도 오산 ,,
<style>
/* 10점 */
.h1 {
color: red;
}
/* 1점*12개 = 12점 */
html body div div div div div div div div div h1 {
background: #000;
color: blue;
}
</style>
은 하나는 동 여러개보다 쎄다 !
그러니깐 클래스셀렉터가 타입 여러개보다 더 쎄다!
: 절대적 우선순위
가중치의 점수를 무시하고 무조건적인 우선순위 가짐
html 에 이렇게 작성해줘도
<body>
<button style="background-color:red">버튼</button>
</body>
!important 를 써주면 lightblue 가 우선순위됨
button{
background-color: lightblue !important;
}
body button {
background-color: green;
}
<button class="im" style="background-color:red">
버튼
</button>
인라인 스타일을 이길 !important 를 써줬는데
그냥 button 1점 보다
button.im 11 점의 가중치가 더 높기때문에 green 이 적용된다 !
<style>
button.im{
background-color: green !important;
}
button{
background-color: yellow !important;
}
body button{
background-color: pink;
}
</style>
이 이미지가 재밌게 참고하기 좋은듯 ㅎㅎ