Subsequent-sibling combinator
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Bộ kết hợp anh em tiếp theo (~, dấu ngã) phân tách hai bộ chọn và khớp với tất cả các phiên bản của phần tử thứ hai theo sau phần tử đầu tiên (không nhất thiết phải liền ngay) và có cùng phần tử cha.
Trong ví dụ sau, bộ kết hợp anh em tiếp theo (~) giúp chọn và tạo kiểu cho các đoạn văn là anh em của hình ảnh và xuất hiện sau bất kỳ hình ảnh nào.
img ~ p {
color: red;
}
Cú pháp
/* The white space around the ~ combinator is optional but recommended. */
former_element ~ target_element { style properties }
Ví dụ
>Sử dụng bộ kết hợp với các bộ chọn đơn giản
Ví dụ này hiển thị việc sử dụng bộ kết hợp ~ khi cả hai bộ chọn đều là bộ chọn đơn giản (p và span).
<article>
<span>This is not red because it appears before any paragraph.</span>
<p>Here is a paragraph.</p>
<code>Here is some code.</code>
<span>
This span is red because it appears after the paragraph, even though there
are other nodes in between.
</span>
<p>Whatever it may be, keep smiling.</p>
<h1>Dream big</h1>
<span>
Doesn't matter how many or what kind of nodes are in between, all spans from
the same parent after a paragraph are red.
</span>
</article>
<span>
This span is not red because it doesn't share a parent with a paragraph.
</span>
p ~ span {
color: red;
}
Sử dụng bộ kết hợp với các bộ chọn phức tạp
Ví dụ này chứa hai bộ chọn phức tạp, cả hai đều sử dụng bộ kết hợp anh em tiếp theo: .foo p ~ span và .foo p ~ .foo span.
- Bộ chọn phức tạp đầu tiên,
.foo p ~ span, khớp với tất cả span đến sau một đoạn văn nếu span và đoạn văn có cùng cha và cha đó hoặc một tổ tiên của cha đó có lớp.foo. - Bộ chọn phức tạp thứ hai,
.foo p ~ .foo span, khớp với tất cả span là phần tử con của phần tử có lớp.foonếu phần tử đó là anh em của đoạn văn đã đề cập trước đó.
Ví dụ dưới đây cho thấy rằng phần tử đích trong bộ chọn phức tạp phải có cùng cha với phần tử ban đầu trong bộ chọn phức tạp.
<h1>Dream big</h1>
<span>And yet again this is a red span!</span>
<div class="foo">
<p>Here is another paragraph.</p>
<span>A blue span</span>
<div class="foo">
<span>A green span</span>
</div>
</div>
.foo p ~ span {
color: blue;
}
.foo p ~ .foo span {
color: green;
}
Trong HTML trên, hai anh em của .foo p là span và .foo. span màu xanh lá là phần tử con của lớp .foo, là anh em của p.
- Khi bộ chọn đích là
span, phần tửspanlà anh em củapđược chọn. Phần tửplà phần tử con của.foo, các anh emspancủa nó cũng vậy. - Trong
.foo p ~ .foo span, bộ chọn đích làspanlà phần tử con của.foo. Trong trường hợp này, phần tửspanlà phần tử con của.foođược chọn nếu.foođó là anh em củap; về cơ bản, cả hai đều được lồng trong một tổ tiên của.foo.
Thông số kỹ thuật
| Specification |
|---|
| Selectors Level 4> # general-sibling-combinators> |