settings.useRootPaddingAwareAlignments财产可能是最令人困惑的设置之一theme.json。它与接口选项无关。它也不用于注册预设。相反,它是为了配置WordPress放置主题的水平填充样式的位置。

这意味着它与styles.spacing.paddingtheme.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 site header with a Cover block background. It has padding to the left and right of it so that it doesn't stretch the full width of the screen.

这是WordPress基于上述输出的CSStheme.json代码:

body {
	padding-top: 0;
	padding-right: 2rem;
	padding-bottom: 0;
	padding-left: 2rem;
}

但是 – 这是经验丰富的设计师看起来很奇怪的地方settings.useRootPaddingAwareAlignments已启用,“根”填充不再应用于根部元素。它应用于组等容器块。

您将了解有关下一节为什么会发生这种情况的更多信息。目前的主要目标是了解根填充传统上是应用于<body>元素,这就是大多数主题作者所期望的。

对于根填充的意识对齐,WordPress仅关注水平(左右)填充。因此,垂直(顶部和底部)填充与此文档无关。

启用根填充的意识对齐

默认情况下,WordPress将将根填充物应用于<body>元素。如果这对您的主题设计很有意义,那么您无需做任何其他事情。

但是,如果您想让全宽项目伸展到屏幕的边缘根部元素上有填充吗?

与第一个屏幕截图相比,请注意盖子块如何伸展到屏幕的边缘,但此处仍然有填充物在嵌套的块上:

WordPress site header with a Cover block background that stretches the full width of the screen.

这是一种常见的设计模式,有几种方法可以将元素扩展到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,以将嵌套的宽阔和全宽块拉伸到其父块的宽度之外(包括添加到宽度中的额外填充物)。

By zhuon

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注