: 서로 다른 두 개 이상의 선택자에게 동일한 CSS 속성을 적용하기 위해 사용.
'선택자A', '선택자B', '선택자C', ... { ... }
<style> a, b, strong, sup, sub { color: red; } </style> <div> <a>I'm a.</a> <b>I'm b</b> <strong>I'm strong</strong> <sup>I'm sup</sup> <sub>I'm sub</sub> </div>
: '선택자 A'에 의해 선택된 요소 바로 뒤에 붙어서 나오는
'선택자 B'에 해당하는 요소를 선택한다.'선택자 A' + '선택자 B' { ... }
<style> a + b { color: red; } </style> <div> <a>1</a> <b>2</b> <b>3</b> </div>
<div>
<a>1</a>
<strong>0</strong>
<b>2</b>
<b>3</b>
</div>
: 위 선택자는 '선택자 A'애 의해 선택된 요소 뒤에 바로 오는 '선택자 B'애 해당하는 요소를 선택한다.
'선택자 A' ~ '선택자 B' { ... }
<style> a ~ b { background-color: yellow; } </style> <div> <b>0</b> <a>1</a> <strong>11</strong> <b>2</b> <b>3</b> </div>
: HTML 태그에 부여된 class 속성(Attribute)을 기준으로 선택
.'클래스 이름' {
...
}
<style> .color-red { color: red; background-color: yellow; } </style> <div> <a>1</a> <a class="color-red">2</a> <a>3</a> </div>
<style> a.color-red { color: red; } <!-- a태그 이면서 color-red 클래스를 가지는 것 --> a.back-yellow { background-color: yellow; } <!-- a태그 이면서 back-yellow클래스를 가지는 것 --> </style> <div> <a>1</a> <a class="color-red back-yellow">2</a> <a>3</a> </div>
<style> a.color-red { color: red; } a.back-yellow { background-color: yellow; } a.color-red.back-yellow { text-decoration: underline; } </style>
- color-red와 back-yellow 두 개의 클래스를 모두 가진 애만 적용이 된다.
- ❗️띄워쓰기를 하면 안된다!
a .color-red .back-yellow
이렇게 되버리면 전혀 다른 의미가 되버리기 때문이다.
: 마우스를 올리면...
: 마우스를 누르고 있으면...
<style> a { color: red; } a:hover { color: blue; } a:active { text-decoration: underline; } </style> <body> <a>I'm a</a> </body>
- 아무것도 하지 않은 상태
- hover시
: 같은 부모를 가지는 요소 전체 중 x번째. x는 1부터
div > b:nth-child(1) { color: red; } <div> <b>A</b> <a>B</a> <b>C</b> <a>D</a> <b>E</b> </div>
= div의 자식 전체 중 첫번째 이면서 b인 요소
: 홀수번째
: 짝수번쨰
: 같은 부모를 가지는 x요소 중 y번째
div > b:nth-of-type(2) { color: red; } <div> <b>A</b> <a>B</a> <b>C</b> <a>D</a> <b>E</b> </div>
: 같은 부모를 가지는 x요소 마지막
: x요소 이면서 마지막
div > a:last-child { color: orange }
-> 얘는 아무런 변화가 없다. 마지막 요소 이면서 a태그는 존재하지 않기 때문이다.
: 마지막 요소만 선택
div > :last-child { color: orange }
: last-chlid 와 속성같다.
div > :not(:last-child) { color: orange } <div> <b>A</b> <a>B</a> <b>C</b> <a>D</a> <b>E</b> </div>
: 어떤 요소가 체크되었을 때..
<style> a { color: red; } input:checked + a { color: black; } </style> <body> <input type="checkbox"> <a>Hi!</a> </body>
- check시 검은색으로 변화
- hideen : 보이지 않음.
- visible : 보임.
<style> a { color: red; visibility: hidden; } input:checked + a { color: black; visibility: visible; } </style> <body> <input type="checkbox"> <a>Hi!</a> </body>
- checkbox 체크시 보인다.
< 활용 예제 >
<style>
.read {
color: red;
visibility: visible;
}
input:checked ~ .read {
visibility: hidden;
}
.a {
background-color: black;
color: #fff;
}
.b {
visibility: hidden;
}
.a:hover + .b{
visibility: visible;
}
</style>
<body>
<input type="checkbox">
<span class="agree">이용 약관에 동의합니다.</span><br>
<span class="read">이용약관을 읽고 동의해주세요!</span>
<br><br>
<div class="a">이용약관 보기</div>
<div class = b>이용약관이용약관이용약관이용약관이용약관이용약관이용약관이용약관
이용약관이용약관이용약관이용약관이용약관이용약관</div>
</body>