CSSPageRule: style 属性
style
是 CSSPageRule
接口的只读属性,返回一个 CSSPageDescriptors
对象。它表示 CSS @page
at-规则 的 CSS 声明块,并为页面公开样式信息以及各种与样式相关的 方法和属性。
值
一个 CSSPageDescriptors
对象,其属性与关联的 @page
at-规则 匹配。
注意: 规范的早期版本将此属性定义为 CSSStyleDeclaration
。请查看下面浏览器兼容性数据。
示例
检查页面规则
此示例使用 Web API 检查 @page
规则的内容。
CSS
下面我们使用 @page
规则为页面定义样式。我们使用 margin
简写为每个边距属性分配不同的值,并指定 size
。我们没有设置 page-orientation
。这让我们可以看到属性如何在 Web API 对象中映射。
css
@page {
margin: 1cm 2px 3px 4px;
/* page-orientation: upright; */
size: A4;
}
JavaScript
代码首先获取索引为 1
的文档样式表,然后获取该样式表中定义的 cssRules
。我们需要获取此样式表,因为示例嵌入在一个单独的帧中,该帧有自己的样式表(索引 0
是此页面的 CSS)。
js
const myRules = document.styleSheets[1].cssRules;
然后,我们遍历为实时示例定义的规则,并匹配任何类型为 CSSPageRule
的规则,因为这些规则对应于 @page
规则。对于匹配的对象,我们然后记录 style
及其所有值。
js
for (let i = 0; i < myRules.length; i++) {
if (myRules[i] instanceof CSSPageRule) {
log(`${myRules[i].style}`);
log(`margin: ${myRules[i].style.margin}`);
// Access properties using CamelCase properties
log(`marginTop: ${myRules[i].style.marginTop}`);
log(`marginRight: ${myRules[i].style.marginRight}`);
log(`marginBottom: ${myRules[i].style.marginBottom}`);
log(`marginLeft: ${myRules[i].style.marginLeft}`);
log(`pageOrientation: ${myRules[i].style.pageOrientation}`);
// Access properties using snake-case properties
log(`margin-top: ${myRules[i].style["margin-top"]}`);
log(`margin-right: ${myRules[i].style["margin-right"]}`);
log(`margin-left: ${myRules[i].style["margin-left"]}`);
log(`margin-bottom: ${myRules[i].style["margin-bottom"]}`);
log(`page-orientation: ${myRules[i].style["page-orientation"]}`);
log(`size: ${myRules[i].style.size}`);
log("\n");
}
}
结果
结果显示在下面。请注意,该对象应该是 CSSPageDescriptors
以匹配当前规范,但在某些浏览器中可能是 CSSStyleDeclaration
。另请注意,属性在骆驼式和蛇形命名法中的对应值彼此匹配,并与 @page
声明匹配,并且 page-orientation
是空字符串 ""
,因为它未在 @page
中定义。
规范
规范 |
---|
CSS 对象模型 (CSSOM) # dom-csspagerule-style |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。