Ngoài những cách viết selector cơ bản trong CSS đã trình bày như chọn phần tử theo thuộc tính class, theo id ... phần này trình bày thêm cách chọn phần tử có tên pseudo class.
Pseudo-Class trong CSS
Pseudo-class là tên (như focus, disabled, hover ... ) được thêm vào
selector css
để cho biết mã CSS sẽ áp dụng vào phần tử khi phần tử ở trạng thái nào đó của phần tử HTML
(đang focus nhập dữ liệu, bị vô hiệu, đang có chuột ở trên ...).
Sử dụng Pseudo-class cho phép định kiểu hiện thị phần tử mà không cần phải dùng đến JavaScript
.
Một pseudo-classe thêm vào selector bằng cách viết dấu hai chấm :
sau đó là tên (từ khóa) trạng thái. Ví dụ, pseudo :hover
là trạng thái phần tử khi có chuột
ở trên, để chọn phần tử khi ở trạng thái này bạn viết selector:hover.
Một ví dụ cụ thể sau:
<style> /* Phần tử p trong id=parent có màu chữ blue */ #parent > p { color: blue; } /* Phần tử p trong id=parent, khi chuột phía trên có màu chữ green và gạch chân */ #parent > p:hover { color: green; text-decoration: underline; } </style> <div id="parent"> <p>Đoạn văn thứ nhất</p> <p>Đoạn văn thứ hai</p> <p>Đoạn văn thứ ba</p> </div>
Kết quả
Đoạn văn thứ nhất
Đoạn văn thứ hai
Đoạn văn thứ ba
Cách sử dụng tương tự cho danh sách các pseudo-class khác sau đây.
Danh sách các Pseudo-Class trong CSS
Pseudo-Class | Ví dụ | Diễn tả ví dụ |
---|---|---|
:active | a:active { ... } |
Chọn khi phần tử active (giai đoạn thẻ a từ nhấn chuột đến trước nhả chuột) |
:hover | a:hover { ... } |
Chọn phần tử a mà chuột ở phía trên |
:focus | input:focus { ... } |
Chọn phần tử đang là focus (đang nhận nhập liệu từ người dùng). |
:visited | a:visited { ... } |
Chọn các thẻ a và đã từng truy cập (có trong lịch sử truy cập của trình duyệt). |
:checked | input[type="checkbox"]:checked { ... } |
Điều khiển Radio (<input type="radio">), CheckBox (<input type="checkbox">) như đã biết (xem thẻ HTML <input>) người dùng có thể chuyển trạng thái của nó (chọn/không chọn). Khi người dùng chọn thì nó ở trạng thái checked |
:enabled | input[type="submit"]:enabled { color: green; } |
Chọn các phần tử trạng thái enabled (có thể nhận tương tác của người dùng), chủ yếu áp dụng các phần tử control trong FORM |
:disabled | textarea:disabled { ... } |
Chọn khi phần tử bị vô hiệu. Các phần tử khi bị vô hiệu không tiếp nhận tương tác của người dùng thì nó ở trạng thái disabled, đặc biệt là các phần tử control như <input>, <textarea>, <button>, <select> |
:empty | p:empty { ... } |
chọn các phần tử <p> không chứa phần tử con nào, không có text |
:link | a:link { ... } |
Chọn phần tử có link truy cập được (thẻ a có thuộc tinh href, nếu không có href sẽ không được chọn) |
:only-child | p:only-child { ... } |
Chọn phần tử (ví dụ <p>) là phần tử con duy nhất của phần tử cha |
:first-child | p:first-child { ... } |
Chọn các phần tử (ví dụ <p>) là phần tử con đầu tiên trong phần tử cha của nó. |
:first-of-type | p:first-of-type { ... } |
Chọn phần tử (ví dụ <p>) mà nó là phần tử đầu tiên (trong danh sách các phần tử cùng loại, cùng cha - không cần phải là con đầu tiên của cha) |
:last-child | p:last-child { ... } |
Chọn phần tử (ví dụ <p>) là phần tử cuối cùng trong phần tử cha của nó |
:last-of-type | p:last-of-type { ... } |
Chọn phần tử <p> là phần tử cuối cùng trong phần tử cha |
:not(selector) | :not(p) { ... } |
Phủ định của selector, chọn các phần tử không xác định được bởi selector. |
:nth-child(n) | p:nth-child(2) { ... } |
|
:nth-last-child(n) | p:nth-last-child(2) { ... } |
Chọn phần tử theo thứ tự các tập các phần tử cùng loại của nó trong phần tử chứa. Áp dụng đúng công thức n giống :nth-child(n) |