Chúng ta có thể thêm các style cụ thể cho các phần tử HTML hiện có bằng cách sử dụng CSS Pseudo-classes, chọn một phần tử ở một trạng thái đặc biệt như (hover, visited, disabled, v.v.)
LƯU Ý: Để phân biệt CSS Pseudo Classes với Pseudo Elements, trong CSS3, pseudo classes sử dụng ký hiệu dấu hai chấm đơn (:).
Cú pháp
Selector:pseudo-class {
css-property: /*value*/;
}
Danh sách đầy đủ các CSS Pseudo Classes
| STT | Pseudo-Class & Mô tả |
|---|---|
| 1 | :active - Chọn phần tử đang được kích hoạt (nhấn chuột) |
| 2 | :checked - Chọn mọi phần tử được tích chọn (checkbox, radio) |
| 3 | :disabled - Chọn mọi phần tử bị vô hiệu hóa |
| 4 | :empty - Chọn phần tử không có con |
| 5 | :enabled - Chọn mọi phần tử được kích hoạt |
| 6 | :first-child - Chọn phần tử là con đầu tiên của cha |
| 7 | :first-of-type - Chọn phần tử đầu tiên loại đó của cha |
| 8 | :focus - Chọn phần tử đang được focus |
| 9 | :hover - Chọn phần tử khi di chuột qua |
| 10 | :in-range - Chọn phần tử có giá trị trong phạm vi cho phép |
| 11 | :invalid - Chọn phần tử có giá trị không hợp lệ |
| 12 | :lang(language) - Chọn phần tử có thuộc tính lang bắt đầu bằng "language" |
| 13 | :last-child - Chọn phần tử là con cuối cùng của cha |
| 14 | :last-of-type - Chọn phần tử cuối cùng loại đó của cha |
| 15 | :link - Chọn tất cả liên kết chưa truy cập |
| 16 | :not(selector) - Chọn mọi phần tử KHÔNG khớp selector |
| 17 | :nth-child(n) - Chọn phần tử là con thứ n của cha |
| 18 | :nth-last-child(n) - Chọn con thứ n tính từ cuối |
| 19 | :nth-last-of-type(n) - Chọn phần tử thứ n loại đó tính từ cuối |
| 20 | :nth-of-type(n) - Chọn phần tử thứ n loại đó của cha |
| 21 | :only-of-type - Chọn phần tử là loại duy nhất của cha |
| 22 | :only-child - Chọn phần tử là con duy nhất của cha |
| 23 | :optional - Chọn phần tử không có thuộc tính "required" |
| 24 | :out-of-range - Chọn phần tử có giá trị ngoài phạm vi |
| 25 | :read-only - Chọn phần tử có thuộc tính "readonly" |
| 26 | :read-write - Chọn phần tử không có "readonly" |
| 27 | :required - Chọn phần tử có thuộc tính "required" |
| 28 | :root - Chọn phần tử gốc của tài liệu (thường là <html>) |
| 29 | :target - Chọn phần tử đang active (clicked URL chứa anchor name) |
| 30 | :valid - Chọn phần tử có giá trị hợp lệ |
| 31 | :visited - Chọn tất cả liên kết đã truy cập |
Ví dụ 1: Sử dụng :target, :last-child, :hover, :active, :visited
<!DOCTYPE html>
<html>
<head>
<title>CSS Anchor Pseudo Classes</title>
</head>
<style>
div {
color: #000;
padding: 20px;
background-image: linear-gradient(135deg, grey 0%, white 100%);
text-align: center;
}
.anchor { color: #FF8A00; }
.anchor:last-child { color: #03A9F4; }
.anchor:visited { color: #FEDC11; }
.anchor:hover { color: #C303C3; }
.anchor:active { color: #4CAF50; }
</style>
<body>
<div>
<h1>Search Engines</h1>
<a class="anchor" href="https://www.google.com" target="_blank">Go To Google</a>
<a class="anchor" href="https://www.bing.com" target="_blank">Go To Bing</a>
</div>
</body>
</html>
Kết quả

Ví dụ 2: Sử dụng :nth-of-type và :hover
<!DOCTYPE html>
<html>
<head>
<title>CSS Pseudo Classes</title>
<style>
form { width: 70%; margin: 0 auto; text-align: center; }
* { padding: 2px; margin: 5px; box-sizing: border-box; }
.child {
display: inline-block;
height: 40px; width: 40px;
color: white; border: 4px solid black;
}
.child:nth-of-type(1) { background-color: #FF8A00; }
.child:nth-of-type(2) { background-color: #F44336; }
.child:nth-of-type(3) { background-color: #C303C3; }
.child:nth-of-type(4) { background-color: #4CAF50; }
.child:nth-of-type(5) { background-color: #03A9F4; }
.child:nth-of-type(6) { background-color: #FEDC11; }
.child:hover { background-color: #000; }
</style>
</head>
<body>
<form>
<fieldset>
<legend>CSS-Pseudo-Classes</legend>
<div id="container">
<div class="child"></div><div class="child"></div><div class="child"></div>
<div class="child"></div><div class="child"></div><div class="child"></div>
</div><br>
</fieldset>
</form>
</body>
</html>
Kết quả
Khi KHÔNG di chuột qua các div:

Khi di chuột qua các div:
