Combinator trong CSS
Combinator (tổ hợp) thể hiện mối quan hệ giữa các selector, cho phép kết hợp các selector lại với nhau dưới dạng các chuỗi ký tự.
Trong CSS, có 4 combinator quen thuộc như sau:
- Descendant combinator (space): Select những phần tử là con cháu của một phần tử khác.
- Child combinator (>): Select những phần tử là con của một phần tử khác.
Chú ý ở đây "con cháu" được dùng để chỉ phần tử nằm trong phần tử khác, còn "con" là chỉ phần tử nằm trực tiếp ngay bên trong của phần tử khác. Ví dụ như <div><span><p>example</p><span></div> thì chỉ có span là "con" của div, còn cả span và p đều là "con cháu" của div.
- Adjacent sibling combinator (+): Select phần tử nằm liền kề và ngang hàng với phần tử khác (các phần tử "anh em" kề nhau).
- General sibling combinator (~): Select phần tử ngang hàng với phần tử khác (các phần tử "anh em").
Descendant combinator
Descendant combinator (space) cho phép kết hợp những phần tử là con cháu của một phần tử khác.
div p {
background-color: yellow;
}
Ở đây, phần tử con cháu là thẻ p, phần tử thứ nhất là div. Thẻ p nằm ở trong thẻ div sẽ có background-color: yellow.
Ví dụ:
<!DOCTYPE html>
<html>
<head>
<style>
div p {
background-color: yellow;
}
</style>
</head>
<body>
<h2>Ví dụ Descendant combinator</h2>
<div>
<p>Đoạn 1 nằm trong div.</p>
<p>Đoạn 2 nằm trong div.</p>
<span><p>Đoạn 3 nằm trong div.</p></span>
</div>
<p>Đoạn 4 không nằm trong div.</p>
<p>Đoạn 5 không nằm trong div.</p>
</body>
</html>
Child combinator
Child combinator (>) cho phép kết hợp những phần tử là con "trực tiếp" của một phần tử khác (như đã giải thích ở trên).
div > p {
background-color: yellow;
}
Ở đây, phần tử con là thẻ p, phần tử thứ nhất là div. Thẻ p nằm ở trong thẻ div sẽ có background-color: yellow, còn các thẻ khác nằm trong p thì không.
Ví dụ:
<!DOCTYPE html>
<html>
<head>
<style>
div > p {
background-color: yellow;
}
</style>
</head>
<body>
<h2>Ví dụ Descendant combinator</h2>
<div>
<p>Đoạn 1 nằm trong div.</p>
<p>Đoạn 2 nằm trong div.</p>
<span><p>Đoạn 3 nằm trong div.</p></span>
</div>
<p>Đoạn 4 không nằm trong div.</p>
<p>Đoạn 5 không nằm trong div.</p>
</body>
</html>
Adjacent sibling combinator
Adjacent sibling combinator (+) cho phép chọn những phần tử nằm liền kề và ngang hàng với phần tử được chỉ định (các phần tử "anh em" kề nhau).
div + p {
background-color: yellow;
}
Ở đây, phần tử p nằm liền kề và ngang hàng với div sẽ có background-color: yellow, còn các thẻ p khác nằm trong div hoặc thẻ p ngang hàng nhưng không liền kề với div thì không.
Ví dụ:
<!DOCTYPE html>
<html>
<head>
<style>
/* Viết bởi Quantrimang.com */
div + p {background-color: yellow;
}
</style>
</head>
<body>
<h2>Ví dụ Adjacent sibling combinator</h2>
<div>
<p>Đoạn 1 nằm trong div.</p>
<p>Đoạn 2 nằm trong div.</p>
<span><p>Đoạn 3 nằm trong div.</p></span>
</div>
<p>Đoạn 4 không nằm trong div.</p>
<p>Đoạn 5 không nằm trong div.</p>
</body>
</html>
General sibling combinator
General sibling combinator (~) cho phép chọn những phần tử nằm ngang hàng với phần tử được chỉ định (các phần tử "anh em").
div ~ p {
background-color: yellow;
}
Ở đây, phần tử p nằm ngang hàng với div sẽ có background-color: yellow, còn các thẻ p khác nằm trong div thì không.
Ví dụ:
<!DOCTYPE html>
<html>
<head>
<style>
/* Viết bởi Quantrimang.com */
div ~ p {
background-color: yellow;
}
</style>
</head>
<body>
<h2>Ví dụ General sibling combinator</h2>
<div>
<p>Đoạn 1 nằm trong div.</p>
<p>Đoạn 2 nằm trong div.</p>
<span><p>Đoạn 3 nằm trong div.</p></span>
</div>
<p>Đoạn 4 không nằm trong div.</p>
<p>Đoạn 5 không nằm trong div.</p>
</body>
</html>
Bạn nên đọc
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:


Cũ vẫn chất
-
Cách dùng Terabox lưu trữ với 1TB miễn phí
Hôm qua 5 -
Cách sửa lỗi không thấy bộ điều hợp mạng trên Windows 10
Hôm qua -
Cách sao chép hoặc tạo bản sao toàn bộ trang tính trong Google Sheets
Hôm qua -
Valentine đen là gì? Valentine đen là ngày nào?
Hôm qua -
Hàm COUNTIFS, cách dùng hàm đếm ô theo nhiều điều kiện trong Excel
Hôm qua -
Điều hòa không mát? Nguyên nhân và cách khắc phục
Hôm qua -
Cách đặt độ phân giải tùy chỉnh trong OBS
Hôm qua -
4 cách kiểm tra lịch sử giao dịch BIDV trên điện thoại, máy tính
Hôm qua -
Sạc không dây là gì? Nó nhanh hơn hay chậm hơn sạc dây? Danh sách smartphone Android hỗ trợ sạc không dây
Hôm qua -
Cách chặn từ khóa và Hashtag trên Twitter
Hôm qua