當(dāng)前位置:首頁>WordPress資訊>WordPress 6.1 中更新了編輯器布局支持

WordPress 6.1 中更新了編輯器布局支持

WordPress 6.1 為塊編輯器的布局控件和功能帶來了相當(dāng)大的靈活性。一種新的布局類型,“受約束(constrained)”,被添加到已經(jīng)可用的 Flow 和 Flex 布局類型中。此外,布局重構(gòu)工作帶來了新的布局樣式、新的塊級間距、布局的更多語義類名稱、根填充(root padding)以及禁用所有主題的所有布局樣式的方法。

新的“受約束”布局類型

新的“約束”布局類型已從“流體(flow)”布局中分離出來。這意味著“流體”現(xiàn)在僅對應(yīng)于基本布局配置。此更改將內(nèi)容寬度邏輯移動到一種稱為?“受約束(constrained)”的新布局類型,?這使得將塊設(shè)置為默認使用內(nèi)容寬度變得更加容易。

每種布局類型輸出什么樣式?

流體(Flow)布局

  • 子塊之間的間距用margin-block-startmargin-block-end;
  • 子塊的左、右和中心對齊。

約束布局

  • 子塊之間的間距用margin-block-start,?margin-block-end;
  • 子塊的左、右和中心對齊;
  • 子塊的寬度限制(基于 settings > layout > contentSize 和 settings > layout > wideSize from theme.json?);
  • 可選地,所有子塊的左/右/中心對齊

Flex 布局(未更改)

  • 基本 flex 顯示規(guī)則,默認為水平方向;
  • 子塊之間的間距用gap;
  • 可選地,左/右/中心/對齊和水平/垂直方向之間的空間。

布局塊支持重構(gòu)

在wordpress 6.1 中,為組、按鈕、社交圖標(biāo)和列等塊提供布局樣式的布局塊支持已被重構(gòu)。在此版本之前,布局塊支持將在渲染時為每個存儲在帖子內(nèi)容或模板中的塊的每個實例輸出布局樣式,從而導(dǎo)致在此 Gutenberg 問題中報告的站點前端輸出冗余樣式# 41434

為了解決這個問題,重構(gòu)通過在核心WordPress theme.json 文件中存儲一組布局定義來添加基本布局樣式的概念,其中包含每個當(dāng)前布局類型的默認規(guī)則。這些基本布局樣式通過帶有前綴的語義類名附加到每個布局類型is-layout-,從而產(chǎn)生以下基于類名的規(guī)則:

  • is-layout-flow(與 Group 和其他容器塊中使用的 Flow 布局相關(guān)的基本布局規(guī)則)
  • is-layout-constrained(與 Group 和其他設(shè)置內(nèi)容和寬尺寸的容器塊中使用的約束布局類型相關(guān)的基本布局規(guī)則)
  • s-layout-flex(與 Flex 布局類型相關(guān)的基本布局規(guī)則,用于按鈕、社交圖標(biāo)和列塊)

現(xiàn)在,當(dāng)渲染使用布局支持的塊時,上述類名之一將被注入到塊的輸出中,將基本布局樣式附加到該塊。結(jié)果是布局支持現(xiàn)在只輸出一個wp-container-123類名(其中 123 是一個半隨機數(shù)),以及當(dāng)塊使用非默認布局屬性時相關(guān)的樣式。這意味著使用默認布局設(shè)置的包含許多組塊的帖子或頁面的冗余CSS規(guī)則將大大減少。

另外,Layout support在輸出wp-container-123規(guī)則時,會通過新增的樣式引擎功能將規(guī)則排入隊列,從而將所有規(guī)則組合在一個style 標(biāo)簽中輸出。這進一步整理了 CSS 輸出。

在 theme.json 中的塊級別啟用塊間距

布局重構(gòu)的一個副產(chǎn)品是blockGap現(xiàn)在可以在 theme.json 中的塊級別和通過全局樣式UI設(shè)置,因為間隙樣式現(xiàn)在也可以通過上述布局類型類名稱輸出,使用直接 CSS 值,而不是塊間??隙 CSS 變量--wp--style--block-gap。為了向后兼容依賴 CSS 變量的主題和塊,為根styles.spacing.blockGap樣式定義的值也作為 CSS 屬性輸出。

注意:?圖庫Gallery 塊目前不支持 theme.json 中的 blockGap 樣式,因為它依賴于間隙間距的特殊方法來考慮圖像塊的寬度。

布局支持中的語義類名

從 WordPress 6.0 開始,布局支持為布局屬性輸出語義類名稱orientationjustifyContentflexWrap,從而產(chǎn)生諸如 is-verticalis-content-justification-leftis-nowrap類的名稱。

隨著 WordPress 6.1 中的更改,結(jié)合基于布局類型的類名稱,現(xiàn)在可以針對 組Group 塊的特定配置,例如,通過諸如.wp-block-group.is-layout-flex.is-vertical.

這些語義類名稱僅為已顯式設(shè)置的 Layout 屬性輸出。

根填充

默認情況下,可以在 Styles > Layout > Padding 中設(shè)置的根填充應(yīng)用于最外層的包裝元素。在前端是wp-site-blocks; 在編輯器中是editor-styles-wrapper.

這種方法的問題是它不允許塊擴展到完整的視口寬度。

useRootPaddingAwareAlignments更改應(yīng)用左右填充的位置,以便設(shè)置為全寬的塊實際上可以跨越整個視口寬度。 

它是如何工作的?

代替包裝器,將左右填充添加到具有約束布局集的最外層容器塊。然后,將相同值的負邊距添加到該塊的任何全寬子級。此外,這些全寬塊的非全寬子代也將應(yīng)用左右填充。這是為了使全寬容器塊的內(nèi)容不會撞到視口的側(cè)面。

要啟用此設(shè)置,請在 theme.json 中,"useRootPaddingAwareAlignments": true在設(shè)置對象中添加。

參看古騰堡工單 #42085 中的更多背景。

禁用布局樣式主題支持

默認情況下,WordPress 會輸出組、列、社交圖標(biāo)和按鈕等塊的結(jié)構(gòu)布局樣式,作為布局塊支持的一部分。到目前為止,一些主題已經(jīng)通過使用未記錄的方法覆蓋或render_layout_support_flag刪除render_block filter.

在 WordPress 6.1 中,基本布局樣式已合并為全局樣式輸出的一部分,因此現(xiàn)有的選擇退出生成的布局樣式的方法將不再有效。取而代之的是,主題現(xiàn)在可以使用一個新的主題支持標(biāo)志,稱為disable-layout-styles。主題可以使用以下代碼選擇加入此功能:

// 可以同來禁用布局樣式

add_theme_support( 'disable-layout-styles' );

使用這個新的主題支持標(biāo)志可確保在代碼中明確處理預(yù)期的行為。它還允許使用此標(biāo)志的主題仍然使用在渲染時注入布局塊的語義類名稱,例如內(nèi)容對齊類。

注意:選擇加入此功能將刪除組、列、社交圖標(biāo)和按鈕等塊所需的樣式,因此使用此功能的主題將需要提供自己的結(jié)構(gòu)布局樣式,以便這些塊在編輯器中正確呈現(xiàn)和在網(wǎng)站的前端。在大多數(shù)情況下,特別是對于基于塊的主題,生成的布局樣式更適合確保正確呈現(xiàn)核心塊。對于希望調(diào)整塊間距的主題,請查看手冊條目“什么是塊間隙以及如何使用它?”?.

有關(guān)更多詳細信息:文檔 > 塊編輯器 > 說明 > 架構(gòu) >布局樣式

聲明:本站所有文章,如無特殊說明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個人或組織,在未征得本站同意時,禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進行處理。

給TA打賞
共{{data.count}}人
人已打賞
歡迎關(guān)注WordPress大學(xué)公眾號 WPDAXUE
WordPress開發(fā)WordPress資訊

WordPress 6.1 新增必填字段相關(guān)函數(shù)和鉤子

2022-10-11 20:14:00

WordPress資訊

WordPress 6.1 中塊編輯器首選項的更改

2022-10-11 20:49:10

0 條回復(fù) A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個人中心
購物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索

云阳县| 昭平县| 定边县| 开阳县| 邢台市| 本溪| 广河县| 河北省| 乌审旗| 清水河县| 博白县| 博客| 阿克| 麦盖提县| 青龙| 云龙县| 墨竹工卡县| 文山县| 永仁县| 岳西县| 丰都县| 徐汇区| 永年县| 金沙县| 梁山县| 武邑县| 民丰县| 花垣县| 盐城市| 温宿县| 庆元县| 格尔木市| 敖汉旗| 汉川市| 日土县| 托里县| 耒阳市| 怀安县| 临澧县| 安宁市| 西城区|