CSSContainerRule: containerName 属性
CSSContainerRule 接口的只读 containerName 属性代表关联的 CSS @container at-rule 的容器名称。
例如,下面 @container 的 containerName 值为 sidebar
css
@container sidebar (width >= 700px) {
.card {
font-size: 2em;
}
}
值
一个字符串,其中包含与此 CSSContainerRule 关联的 @container 的 container-name。如果 @container 未 命名,则函数返回空字符串 ("")。
示例
下面的示例定义了一个命名的 @container 规则,并显示了相关的 CSSContainerRule 的属性。CSS 与 @container 示例 创建命名容器上下文 中的 CSS 非常相似。
首先,我们定义了一个包含在 post 中的 card (<div>) 的 HTML。
html
<div class="post">
<div class="card">
<h2>Card title</h2>
<p>Card content</p>
</div>
</div>
容器元素的 CSS 指定了容器的类型,也可能指定一个名称。卡片有一个默认的字体大小,如果宽度大于 700px,则会被命名为 sidebar 的 @container 覆盖。
html
<style id="example-styles">
.post {
container-type: inline-size;
container-name: sidebar;
}
/* Default heading styles for the card title */
.card h2 {
font-size: 1em;
}
@container sidebar (width >= 700px) {
.card {
font-size: 2em;
}
}
</style>
下面的代码使用其 id 获取与示例关联的 HTMLStyleElement,然后使用其 sheet 属性获取 StyleSheet。从 StyleSheet 中,我们得到添加到该工作表的 cssRules 集合。由于我们将 @container 添加为上面的第三条规则,所以我们可以使用 cssRules 中的第三个条目(索引为 "2")来访问相关的 CSSContainerRule。最后,我们记录容器名称和查询属性(用于记录的代码未显示)。
js
const exampleStylesheet = document.getElementById("example-styles").sheet;
const exampleRules = exampleStylesheet.cssRules;
const containerRule = exampleRules[2]; // a CSSContainerRule representing the container rule.
log(`CSSContainerRule.containerName: "${containerRule.containerName}"`);
示例输出如下所示。日志部分列出了容器名称字符串。当页面宽度超过 700px 时,卡片部分中的标题应该会增大一倍。
规范
| 规范 |
|---|
| CSS 条件规则模块第五版 # dom-csscontainerrule-containername |
浏览器兼容性
加载中…
另见
- CSS
container简写属性 - CSS 遏制模块
- 容器查询
- 使用容器大小和样式查询