::highlight()
::highlight() CSS 偽元素用於為自定義高亮應用樣式。
自定義高亮是 Range 物件的集合,並透過 HighlightRegistry 在網頁上註冊。
::highlight() 偽元素遵循所有高亮偽元素共有的特殊繼承模型。有關此繼承如何工作的更多詳細資訊,請參閱高亮偽元素繼承部分。
允許的屬性
只有某些 CSS 屬性可以與 ::highlight() 一起使用:
colorbackground-colortext-decoration及其相關屬性text-shadow-webkit-text-stroke-color、-webkit-text-fill-color和-webkit-text-stroke-width
特別是,background-image 會被忽略。
語法
css
::highlight(custom-highlight-name)
示例
高亮字元
HTML
html
<p id="rainbow-text">CSS Custom Highlight API rainbow</p>
CSS
css
#rainbow-text {
font-family: monospace;
font-size: 1.5rem;
}
::highlight(rainbow-color-1) {
color: violet;
text-decoration: underline;
}
::highlight(rainbow-color-2) {
color: purple;
text-decoration: underline;
}
::highlight(rainbow-color-3) {
color: blue;
text-decoration: underline;
}
::highlight(rainbow-color-4) {
color: green;
text-decoration: underline;
}
::highlight(rainbow-color-5) {
color: yellow;
text-decoration: underline;
}
::highlight(rainbow-color-6) {
color: orange;
text-decoration: underline;
}
::highlight(rainbow-color-7) {
color: red;
text-decoration: underline;
}
JavaScript
js
const textNode = document.getElementById("rainbow-text").firstChild;
if (!CSS.highlights) {
textNode.textContent =
"The CSS Custom Highlight API is not supported in this browser!";
}
// Create and register highlights for each color in the rainbow.
const highlights = [];
for (let i = 0; i < 7; i++) {
// Create a new highlight for this color.
const colorHighlight = new Highlight();
highlights.push(colorHighlight);
// Register this highlight under a custom name.
CSS.highlights.set(`rainbow-color-${i + 1}`, colorHighlight);
}
// Iterate over the text, character by character.
for (let i = 0; i < textNode.textContent.length; i++) {
// Create a new range just for this character.
const range = new Range();
range.setStart(textNode, i);
range.setEnd(textNode, i + 1);
// Add the range to the next available highlight,
// looping back to the first one once we've reached the 7th.
highlights[i % 7].add(range);
}
結果
規範
| 規範 |
|---|
| CSS 自定義高亮 API 模組級別 1 # custom-highlight-pseudo |
| CSS 偽元素模組 Level 4 # selectordef-highlight-custom-ident |
瀏覽器相容性
載入中…
另見
- CSS 自定義高亮 API 模組
- CSS 自定義高亮 API
- CSS 偽元素模組