描述
CSS 中的 ::part() 伪元素用于表示 shadow 树,具有匹配的部分属性;即 ::part() 伪元素的作用类似于函数,并将部件作为参数。
part 属性是一个全局属性,表示元素的部件名称的空格分隔列表。这些部分名称允许使用 ::part() 伪元素选择影子树的特定元素并设置其样式。
语法
selector::part(+) {
/* ... */
}
CSS ::part() 示例
这是 ::part() 伪元素的示例。在此示例中:
使用 JavaScript (new-widget) 创建模板。
声明一个模板的一部分作为小部件。
将"widget"作为参数传递给 ::part() 伪元素,其中指定了 CSS 样式。
由于部件(小部件)包含 <p> 标签,因此 CSS 样式将应用于此 <p> 标签。
<html>
<head>
<style>
.container {
max-width: 500px;
margin: 0 auto;
padding: 2em;
}
body {
font: 1em/1.618 Segoe UI, sans-serif;
}
new-widget::part(widget) {
max-width: 300px;
padding: 1em;
background-color: lightgoldenrodyellow;
border-radius: 20%;
}
</style>
</head>
<body>
<div class="container">
<p>该段落正常渲染,没有任何样式。</p>
<template id="new-widget">
<div part="widget">
<p>该段落呈现为主段落的一部分,因此此处应用 ::part() 伪元素。</p>
</div>
</template>
<new-widget></new-widget>
<script>
let template = document.querySelector("#new-widget");
globalThis.customElements.define(
template.id,
class extends HTMLElement {
constructor() {
super()
.attachShadow({ mode: "open" })
.append(template.content);
}
}
);
</script>
</div>
</body>
</html>