특정 클래스를 가진 요소들 중에서 서로 인접한 형제 요소들을 선택한다.
ex)
.TodoItem + .TodoItem {
padding: 1rem;
}
.TodoItem + .TodoItem은 .TodoItem 클래스를 가진 요소 뒤에 바로 또다른 .TodoItem 클래스를 가진 요소가 나타날 때 적용된다.
특정 클래스를 가진 연속된 요소들에 스타일을 적용할 때 쓰인다.
map으로 이용해서 뿌리는 경우에 유용하게 쓸 수 있다.
.parentElement .childElement {
/* 스타일 */
}
특정 부모 요소 아래에 있는 모든 자식 요소를 선택하는 규칙이다.
.parentElement > .childElement {
/* 스타일 */
}
특정 부모 요소의 직계 자식 요소만 선택하는 규칙.
.element:hover {
/* 마우스를 올렸을 때의 스타일 */
}
.element:first-child {
/* 첫 번째 자식 요소의 스타일 */
}
사용자 상호작용이나 요소의 상태에 따라 스타일을 적용.
:hover, :first-child 등이 대표적인 가상 클래스다.
.element::before {
content: "내용";
/* 요소의 내용 앞에 내용을 추가 */
}
.element::after {
content: "내용";
/* 요소의 내용 뒤에 내용을 추가 */
}
가상 요소는 문서의 특정 부분에 스타일을 추가하는 데 사용된다.
주로 요소의 내용 앞이나 뒤에 내용을 추가하는데 사용된다.
.element:empty {
display: none;
}
내용이 비어 있는 요소를 선택하여 화면에 표시하지 않도록 한다.
img {
/* 이미지에 스타일 적용 */
}
input[type="text"] {
/* 텍스트 입력 필드에 스타일 적용 */
}
a:hover {
/* 링크에 마우스를 올렸을 때의 스타일 */
}
li::before {
/* 리스트 아이템 앞에 내용을 추가하는 가상 요소에 스타일 적용 */
}
.parentElement img {
/* 특정 부모 요소 안에 있는 이미지에 스타일 적용 */
}
HTML 요소의 class 속성에 공백으로 구분된 여러 개의 클래스명을 지정할 수 있다.
따라서 className="content checked borderline confirmed"와 같이 클래스명이 공백으로 구분되어 있는 경우, 해당 요소는 .content, .checked, .borderline, .confirmed 네 가지 클래스를 모두 가지게 된다.
CSS에서는 공백으로 구분된 클래스명을 선택할 때는 각 클래스를 독립적인 클래스로 해석한다. 따라서 .content.checked와 .borderline.confirmed와 같이 동시에 적용된 클래스를 가진 요소를 선택할 수 있다.
참고 사이트
https://www.tcpschool.com/css/css_selector_pseudoClass
헷갈릴 때도 있고 까먹을 때도 있어서 포스팅 😁