这settings.useRootPaddingAwareAlignments
财产可能是最令人困惑的设置之一theme.json
。它与接口选项无关。它也不用于注册预设。相反,它是为了配置WordPress放置主题的水平填充样式的位置。
这意味着它与styles.spacing.padding
在theme.json
。您可以在 样式文档,但是您将了解这种特定样式与此设置一起工作。
什么是根填充?
在了解如何settings.useRootPaddingAwareAlignments
属性工作,您必须首先了解什么是根填充。
根填充是应用于网页的“根”元素的填充物。对于WordPress主题,这是<body>
元素。要自定义根部元素的间距,您必须针对styles.spacing.padding
元素在theme.json
。
采取以下内容theme.json
例如,摘要。它添加0
用于顶部和底部填充物以及2rem
对于左右填充:
{
"version": 2,
"styles": {
"spacing": {
"padding": {
"top": "0",
"bottom": "0",
"left": "2rem",
"right": "2rem"
}
}
}
}
默认情况下,这将添加2rem
在左右两侧的填充<body>
(root)元素。
如该屏幕截图所示,根部有水平填充,并且全宽盖块伸展直到击中填充物:
这是WordPress基于上述输出的CSStheme.json
代码:
body {
padding-top: 0;
padding-right: 2rem;
padding-bottom: 0;
padding-left: 2rem;
}
但是 – 这是经验丰富的设计师看起来很奇怪的地方settings.useRootPaddingAwareAlignments
已启用,“根”填充不再应用于根部元素。它应用于组等容器块。
您将了解有关下一节为什么会发生这种情况的更多信息。目前的主要目标是了解根填充传统上是应用于<body>
元素,这就是大多数主题作者所期望的。
对于根填充的意识对齐,WordPress仅关注水平(左右)填充。因此,垂直(顶部和底部)填充与此文档无关。
启用根填充的意识对齐
默认情况下,WordPress将将根填充物应用于<body>
元素。如果这对您的主题设计很有意义,那么您无需做任何其他事情。
但是,如果您想让全宽项目伸展到屏幕的边缘和根部元素上有填充吗?
与第一个屏幕截图相比,请注意盖子块如何伸展到屏幕的边缘,但此处仍然有填充物在嵌套的块上:
这是一种常见的设计模式,有几种方法可以将元素扩展到CSS中的容器之外。但是WordPress具有一种标准方法,可以与任何主题一起使用。
那就是那里settings.useRootPaddingAwareAlignments
进来。当将此属性设置为true
,将根填充物放在容器元素上,而不是<body>
。这也必须与styles.spacing.padding
物体,特别是使用水平填充物。
在您的theme.json
:
{
"version": 2,
"settings": {
"useRootPaddingAwareAlignments": true
},
"styles": {
"spacing": {
"padding": {
"top": "0",
"bottom": "0",
"left": "2rem",
"right": "2rem"
}
}
}
}
没有正确或错误的方法来处理根填充物。这是一个情况,您必须确定哪种选项最适合您的主题设计。
这是如何运作的?
知道WordPress如何在引擎盖下处理所有这些并不是特别重要,但是有时您可能只想更深入地了解正在发生的事情。
当您启用时settings.useRootPaddingAwareAlignments
,如上最后theme.json
例如,WordPress将生成两个新的CSS。首先是它为根填充定义了一些CSS自定义属性:
body {
--wp--style--root--padding-top: 0;
--wp--style--root--padding-right: 2rem;
--wp--style--root--padding-bottom: 0;
--wp--style--root--padding-left: 2rem;
}
第二个是添加了.has-global-padding
班级:
.has-global-padding {
padding-right: var(--wp--style--root--padding-right);
padding-left: var(--wp--style--root--padding-left);
}
然后将此类给予使用约束布局的容器块(例如,与 布局>内部块使用内容宽度 启用选项):
<div class="wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">
<!-- nested blocks... -->
</div>
除此之外,WordPress还添加了内联CSS,以将嵌套的宽阔和全宽块拉伸到其父块的宽度之外(包括添加到宽度中的额外填充物)。