::search-text
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Phần tử giả ::search-text trong CSS áp dụng kiểu cho các kết quả tìm kiếm được xác định bởi tính năng tìm kiếm văn bản "Find" hoặc "Find in page" của tác nhân người dùng.
Try it
p::search-text {
color: crimson;
background-color: wheat;
}
<p>
Using your browser's "Find in page" functionality, find a word or phrase that
appears in this sentence, and note how, in supporting browsers, each result is
highlighted using the specified custom styles.
</p>
Cú pháp
::search-text {
/* ... */
}
Mô tả
Hầu hết các trình duyệt đều có một loại chức năng tìm kiếm văn bản trong trang, thường được gọi là "Find" hoặc "Find in page". Phần tử giả ::search-text, một trong các phần tử giả highlight, cho phép bạn áp dụng một tập hợp kiểu giới hạn cho các kết quả văn bản được trình duyệt tô sáng bằng chức năng tìm kiếm.
Không phải tất cả các trình duyệt và phiên bản trình duyệt đều tô sáng kết quả tìm kiếm bằng các highlight trong trang có thể tạo kiểu bằng CSS. Trong những trường hợp như vậy, ::search-text có thể chưa được triển khai hoặc chỉ bị bỏ qua.
Sử dụng ::search-text làm bộ chọn đơn lẻ sẽ tạo kiểu cho các kết quả tìm kiếm của trình duyệt xuất hiện ở bất kỳ đâu trên trang. Nếu bạn chỉ muốn tạo kiểu cho kết quả tìm kiếm của trình duyệt xuất hiện bên trong một số phần tử nhất định, bạn có thể kết hợp ::search-text với các bộ chọn khác, ví dụ: section::search-text.
Ngoài ra, ::search-text có thể được kết hợp với lớp giả :current để cung cấp kiểu cụ thể cho kết quả tìm kiếm đang được tập trung, ví dụ:
p::search-text {
color: white;
background-color: purple;
}
p::search-text:current {
background-color: crimson;
}
Mô hình kế thừa
Phần tử giả ::search-text tuân theo mô hình kế thừa đặc biệt chung cho tất cả các phần tử giả highlight, trong đó kiểu được kế thừa từ cả phần tử cha của chúng và các phần tử giả của cha chúng. Để biết thêm chi tiết về cách kế thừa này hoạt động, xem phần Kế thừa của các phần tử giả highlight.
Các thuộc tính được phép sử dụng
Một tập hợp con giới hạn các thuộc tính CSS có thể được dùng với ::search-text:
colorbackground-color- Viết tắt
text-decorationvà các thuộc tính dài hạn liên quan:text-decoration-line: chỉ các giá trịgrammar-error,spelling-error,line-through,nonevàunderline.text-decoration-colortext-decoration-styletext-decoration-thicknesstext-decoration-skip-ink
text-underline-offsettext-shadow
Khả năng tiếp cận
Hãy hạn chế ghi đè kiểu kết quả tìm kiếm văn bản, đặc biệt khi làm vậy chỉ vì lý do thẩm mỹ. Đối với những người có vấn đề về nhận thức hoặc ít thành thạo về công nghệ, những thay đổi bất ngờ đối với các kiểu này có thể ảnh hưởng đến khả năng hiểu chức năng của họ.
Trường hợp sử dụng chính của ::search-text là tăng độ tương phản màu so với kiểu mặc định của trình duyệt. Khi tùy chỉnh văn bản được tô sáng, điều quan trọng là đảm bảo rằng tỷ lệ tương phản giữa màu nền trước và nền sau đủ lớn để người dùng khiếm thị có thể đọc được nội dung của văn bản được tô sáng.
Ví dụ
>Kiểu tùy chỉnh cho kết quả tìm kiếm văn bản
Ví dụ này cho thấy cách sử dụng ::search-text và :current để tạo kiểu tùy chỉnh cho kết quả tìm kiếm "Find in page" của trình duyệt.
HTML
HTML gồm một đoạn văn bản cơ bản. Chúng ta sẽ không hiển thị nguồn HTML, vừa để ngắn gọn, vừa để dễ dàng điều hướng kết quả tìm kiếm trong ví dụ được hiển thị.
CSS
Trong CSS, chúng ta bắt đầu bằng cách tạo kiểu cho phần tử giả ::search-text. Chúng ta đặt kiểu tùy chỉnh cho background-color, color và text-shadow.
::search-text {
background-color: purple;
color: white;
text-shadow: 1px 1px 1px black;
}
Cuối cùng, chúng ta tạo kiểu cho kết quả tìm kiếm đang được tập trung qua ::search-text:current, cung cấp cho nó một background-color khác và một số kiểu text-decoration để phân biệt với các kết quả còn lại.
::search-text:current {
background-color: crimson;
text-decoration-line: underline;
text-decoration-color: yellow;
text-decoration-thickness: 3px;
}
Kết quả
Ví dụ được hiển thị như sau:
Hãy thử dùng giao diện tìm kiếm trong trang của trình duyệt để tìm một từ xuất hiện nhiều lần trong văn bản ví dụ, chẳng hạn như "aliquam", "amet" hoặc "tortor". Di chuyển giữa các kết quả trước và tiếp theo để xem kiểu :current.
Thông số kỹ thuật
| Thông số kỹ thuật |
|---|
| CSS Pseudo-Elements Module Level 4> # selectordef-search-text> |