国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
我們討論的是哪種間距?
根級(jí)填充
填充感知對(duì)齊
useRootPaddingAwareAlignments
塊佈局控件
寬塊
使用受約束的佈局
Flex、Flow和受約束的佈局
更新您的主題以支持受約束的佈局
禁用佈局樣式
總結(jié)
附加資源
教程
WordPress文章
GitHub pull request和問(wèn)題
首頁(yè) web前端 css教學(xué) 在WordPress塊主題中使用新的約束佈局

在WordPress塊主題中使用新的約束佈局

Mar 09, 2025 am 10:07 AM

Using The New Constrained Layout In WordPress Block Themes

WordPress站點(diǎn)編輯器(現(xiàn)已正式命名)的主要目標(biāo)之一是將基本的塊樣式從CSS遷移到結(jié)構(gòu)化的JSON。 JSON文件是機(jī)器可讀的,這使得基於JavaScript的站點(diǎn)編輯器可以直接在WordPress中配置主題的全局樣式。

但這項(xiàng)工作尚未完全完成!如果我們查看Twenty Twenty-Two (TT2)默認(rèn)主題,有兩個(gè)主要問(wèn)題尚未解決:樣式交互(如:hover、:active、:focus)以及佈局容器的邊距和填充。您可以看到這些問(wèn)題是如何在TT2的style.css文件中臨時(shí)修復(fù)的,而不是將其添加到theme.json文件中。

WordPress 6.1修復(fù)了這些問(wèn)題,我想專門研究後者?,F(xiàn)在我們有了佈局容器邊距和填充的JSON化樣式,這為我們提供了更靈活、更強(qiáng)大的方法來(lái)定義主題佈局中的間距。

我們討論的是哪種間距?

首先,我們已經(jīng)有了根級(jí)填充,這是對(duì)元素填充的一種花哨的說(shuō)法。這很好,因?yàn)樗_保了在所有頁(yè)面和文章中共享的元素上的一致間距。但還有更多內(nèi)容,因?yàn)楝F(xiàn)在我們有一種方法可以讓塊繞過(guò)該填充並使其全寬對(duì)齊。這要?dú)w功於填充感知對(duì)齊,這是theme.json中一個(gè)新的可選功能。因此,即使您有根級(jí)填充,您仍然可以允許,例如,圖像(或其他一些塊)突破並全寬顯示。

這讓我們想到了另一件事:受約束的佈局。這裡的想法是,嵌套在佈局中的任何塊都遵守佈局的內(nèi)容寬度(這是一個(gè)全局設(shè)置),並且不會(huì)流出該寬度。我們可以使用對(duì)齊方式逐塊覆蓋此行為,但稍後我們會(huì)討論。

讓我們從……開(kāi)始

根級(jí)填充

再說(shuō)一次,這不是什麼新鮮事。自從實(shí)驗(yàn)性的Gutenberg插件在11.7版本中引入它以來(lái),我們就有能力在theme.json中設(shè)置元素的填充。我們將其設(shè)置在styles.spacing對(duì)像上,在這裡我們有margin和padding對(duì)象來(lái)定義body的頂部、右側(cè)、底部和左側(cè)間距:

<code>{
  "version": 2,
  "styles": {
    "spacing": {
      "margin": {
        "top": "60px",
        "right": "30px",
        "bottom": "60px",
        "left": "30px"
      },
      "padding": {
        "top": "30px",
        "right": "30px",
        "bottom": "30px",
        "left": "30px"
      }
    }
  }
}</code>

這是一個(gè)全局設(shè)置。因此,如果我們打開(kāi)DevTools並檢查元素,我們將看到這些CSS樣式:

<code>body {
  margin-top: 60px;
  margin-right: 30px;
  margin-bottom: 60px;
  margin-left: 30px;
  padding-top: 30px;
  padding-right: 30px;
  padding-bottom: 30px;
  padding-left: 30px;
}</code>

不錯(cuò)。但問(wèn)題是如何允許某些塊突破該間距以填充整個(gè)屏幕,邊緣到邊緣。這就是間距存在的原因,對(duì)吧?它有助於防止這種情況發(fā)生!

但是,在塊編輯器中工作時(shí),確實(shí)有很多情況下您可能希望在一個(gè)性實(shí)例中突破該間距。假設(shè)我們?cè)陧?yè)面上放置一個(gè)圖像塊,並且我們希望它全寬顯示,而其餘內(nèi)容遵守根級(jí)填充?

進(jìn)入……

填充感知對(duì)齊

在嘗試創(chuàng)建第一個(gè)在theme.json文件中定義所有樣式的默認(rèn)WordPress主題時(shí),首席設(shè)計(jì)師Kjell Reigstad在這個(gè)GitHub問(wèn)題中說(shuō)明了突破根級(jí)填充的挑戰(zhàn)性方面。

WordPress 6.1中的新功能旨在解決此問(wèn)題。讓我們接下來(lái)深入研究這些內(nèi)容。

useRootPaddingAwareAlignments

創(chuàng)建了一個(gè)新的useRootPaddingAwareAlignments屬性來(lái)解決這個(gè)問(wèn)題。它實(shí)際上是在Gutenberg插件v13.8中首次引入的。原始的pull request很好地介紹了它的工作原理。

<code>{
  "version": 2,
  "styles": {
    "spacing": {
      "margin": {
        "top": "60px",
        "right": "30px",
        "bottom": "60px",
        "left": "30px"
      },
      "padding": {
        "top": "30px",
        "right": "30px",
        "bottom": "30px",
        "left": "30px"
      }
    }
  }
}</code>

首先要注意,這是一個(gè)我們必須選擇加入的功能。該屬性默認(rèn)設(shè)置為false,我們必須將其顯式設(shè)置為true才能啟用它。還要注意,我們也已將appearanceTools設(shè)置為true。這使我們能夠在站點(diǎn)編輯器中使用UI控件來(lái)設(shè)置樣式邊框、鏈接顏色、排版以及間距(包括邊距和填充)。

將appearanceTools設(shè)置為true會(huì)自動(dòng)使塊選擇邊距和填充,而無(wú)需將settings.spacing.padding或setting.spacing.margin設(shè)置為true。

當(dāng)我們啟用useRootPaddingAwareAlignments時(shí),我們將獲得具有在前端元素上設(shè)置的根填充值的自定義屬性。有趣的是,它還將填充應(yīng)用於.editor-styles-wrapper類,以便在後端塊編輯器中工作時(shí)顯示間距。太酷了!我在四處挖掘時(shí)能夠在DevTools中確認(rèn)這些CSS自定義屬性。

啟用useRootPaddingAwareAlignments還會(huì)將左右填充應(yīng)用於支持上述全局樣式圖像中的“內(nèi)容”寬度和“寬”寬度值的任何塊。我們也可以在theme.json中定義這些值:

<code>body {
  margin-top: 60px;
  margin-right: 30px;
  margin-bottom: 60px;
  margin-left: 30px;
  padding-top: 30px;
  padding-right: 30px;
  padding-bottom: 30px;
  padding-left: 30px;
}</code>

如果全局樣式設(shè)置與theme.json中定義的不同,則全局樣式優(yōu)先。您可以在我的上一篇文章中了解所有關(guān)於管理塊主題樣式的信息。

  • contentSize是塊的默認(rèn)寬度。
  • wideSize提供“寬”佈局選項(xiàng),並為塊伸展創(chuàng)建一個(gè)更寬的列。

因此,最後一個(gè)代碼示例將給我們以下CSS:

<code>{
  "version": 2,
  "settings": {
    "appearanceTools": true,
    "useRootPaddingAwareAlignments": true,
    // etc.
  },</code>

[id]表示W(wǎng)ordPress自動(dòng)生成的唯一數(shù)字。

但猜猜我們還得到了什麼?全對(duì)齊!

<code>{
  "version": 2,
  "settings": {
    "layout": {
      "contentSize": "640px",
      "wideSize": "1000px"
    }
  }
}</code>

看到了嗎?通過(guò)啟用useRootPaddingAwareAlignments並定義contentSize和wideSize,我們還獲得了用於控制添加到頁(yè)面和文章的塊寬度的三種容器配置的全對(duì)齊CSS類。

這適用於以下特定於佈局的塊:列、組、文章內(nèi)容和查詢循環(huán)。

塊佈局控件

假設(shè)我們將上述任何特定於佈局的塊添加到頁(yè)面。當(dāng)我們選擇塊時(shí),塊設(shè)置UI將根據(jù)我們?cè)趖heme.json(或全局樣式UI)中定義的settings.layout值提供新的佈局設(shè)置。 “內(nèi)部塊使用內(nèi)容寬度”設(shè)置默認(rèn)啟用。如果我們將其關(guān)閉,則容器沒(méi)有max-width,並且其中的塊會(huì)邊緣到邊緣顯示。

如果我們保持切換打開(kāi),則嵌套塊將遵守contentWidth或wideWidth值(稍後會(huì)詳細(xì)介紹)?;蛘撸覀兛梢允褂脭?shù)字輸入在此一次性實(shí)例中定義自定義contentWidth和wideWidth值。這是極大的靈活性!

寬塊

我們剛剛查看的設(shè)置是在父塊上設(shè)置的。一旦我們將塊嵌套在內(nèi)部並選擇它,我們就可以在該塊中使用contentWidth、wideWidth或全寬顯示的附加選項(xiàng)。

請(qǐng)注意,WordPress如何將根級(jí)填充CSS自定義屬性乘以-1以在選擇“全寬”選項(xiàng)時(shí)創(chuàng)建負(fù)邊距。

使用受約束的佈局

我們剛剛介紹了WordPress 6.1帶來(lái)的新的間距和對(duì)齊方式。這些是特定於塊以及塊內(nèi)任何嵌套塊的。但是WordPress 6.1還引入了新的佈局功能,以在主題模板中獲得更大的靈活性和一致性。

例如:WordPress完全重構(gòu)了其Flex和Flow佈局類型,並為我們提供了一種受約束的佈局類型,這使得使用站點(diǎn)編輯器的全局樣式UI中的內(nèi)容寬度設(shè)置更容易在主題中對(duì)齊塊佈局。

Flex、Flow和受約束的佈局

這三種佈局類型之間的區(qū)別在於它們輸出的樣式。 Isabel Brison有一篇優(yōu)秀的文章很好地概述了這些差異,但讓我們?cè)谶@裡對(duì)其進(jìn)行釋義以供參考:

  • Flow佈局:在margin-block方向上在嵌套塊之間添加垂直間距。這些嵌套塊也可以左對(duì)齊、右對(duì)齊或居中對(duì)齊。
  • 受約束的佈局:與Flow佈局完全相同,但對(duì)嵌套塊的寬度約束基於contentWidth和wideWidth設(shè)置(在theme.json或全局樣式中)。
  • Flex佈局:這在WordPress 6.1中沒(méi)有更改。它使用CSS Flexbox創(chuàng)建一個(gè)默認(rèn)水平流動(dòng)(一行)的佈局,但也可以垂直流動(dòng),因此塊一個(gè)接一個(gè)地堆疊。使用CSS gap屬性應(yīng)用間距。

這種新的佈局類型為每個(gè)佈局創(chuàng)建語(yǔ)義類名:

Justin Tadlock對(duì)不同的佈局類型和語(yǔ)義類進(jìn)行了廣泛的介紹,包括用例和示例。

更新您的主題以支持受約束的佈局

如果您已經(jīng)在使用自己製作的塊主題,您將需要將其更新以支持受約束的佈局。在theme.json中只需要交換幾件事:

<code>{
  "version": 2,
  "styles": {
    "spacing": {
      "margin": {
        "top": "60px",
        "right": "30px",
        "bottom": "60px",
        "left": "30px"
      },
      "padding": {
        "top": "30px",
        "right": "30px",
        "bottom": "30px",
        "left": "30px"
      }
    }
  }
}</code>

這些是最近發(fā)布的已啟用useRootPaddingAwareAlignments的間距設(shè)置並具有更新的theme.json文件來(lái)定義受約束佈局的塊主題:

禁用佈局樣式

基本佈局樣式是WordPress 6.1 Core中默認(rèn)的功能。換句話說(shuō),它們開(kāi)箱即用。但是,如果我們需要,我們可以使用functions.php中的這段小代碼禁用它們:

<code>{
  "version": 2,
  "styles": {
    "spacing": {
      "margin": {
        "top": "60px",
        "right": "30px",
        "bottom": "60px",
        "left": "30px"
      },
      "padding": {
        "top": "30px",
        "right": "30px",
        "bottom": "30px",
        "left": "30px"
      }
    }
  }
}</code>

這裡有一個(gè)重要的警告:禁用對(duì)默認(rèn)佈局類型的支持也會(huì)刪除這些佈局的所有基本樣式。這意味著您需要為間距、對(duì)齊方式以及在不同模板和塊上下文中顯示內(nèi)容所需的任何其他內(nèi)容編寫自己的樣式。

總結(jié)

作為全寬圖像的忠實(shí)粉絲,新的包含WordPress 6.1佈局和填充感知對(duì)齊功能是我最喜歡的兩個(gè)功能。與其他工具一起使用,包括更好的邊距和填充控制、流暢的排版以及更新的列表和引用塊等,這充分證明了WordPress正在朝著更好的內(nèi)容創(chuàng)建體驗(yàn)邁進(jìn)。

現(xiàn)在,我們必須等待並觀察普通設(shè)計(jì)師和內(nèi)容創(chuàng)建者如何使用這些令人難以置信的工具並將其提升到一個(gè)新的水平。

由於站點(diǎn)編輯器開(kāi)發(fā)迭代正在進(jìn)行中,我們應(yīng)該始終預(yù)料到前方道路的艱難。但是,作為一個(gè)樂(lè)觀主義者,我很想看看WordPress 6.2的下一個(gè)版本會(huì)發(fā)生什麼。我密切關(guān)注的一些事情包括正在考慮包含的功能、對(duì)粘性定位的支持、內(nèi)部塊包裝器的新的佈局類名、更新的頁(yè)腳對(duì)齊選項(xiàng)以及向封面塊添加受約束和流動(dòng)佈局選項(xiàng)。

此GitHub問(wèn)題#44720列出了計(jì)劃用於WordPress 6.2的與佈局相關(guān)的討論。

附加資源

在深入研究所有這些內(nèi)容時(shí),我諮詢並參考了許多來(lái)源。以下是我發(fā)現(xiàn)有幫助並且我認(rèn)為您也可能喜歡的大量列表。

教程

  • 佈局樣式(樣式 | 開(kāi)發(fā)人員資源)
  • theme.json佈局和間距選項(xiàng)(全站編輯)
  • 填充感知對(duì)齊(全站編輯)
  • WordPress中的佈局和寬對(duì)齊:過(guò)去、現(xiàn)在和即將發(fā)生的變化(Gutenberg Times)
  • WordPress 6.1中佈局類的演練(Gutenberg Times)

WordPress文章

  • 6.1重構(gòu)後更新的編輯器佈局支持(製作WordPress核心)
  • 將核心塊樣式移動(dòng)到JSON(製作WordPress核心)

GitHub pull request和問(wèn)題

  • 核心CSS支持根填充和alignfull塊(GitHub PR 42085)
  • 佈局:修復(fù)沒(méi)有contentSize的受約束佈局的has-global-padding類名(GitHub PR #43689)
  • 佈局:使用語(yǔ)義類名,集中佈局定義,減少重複,並修復(fù)theme.json中的blockGap(GitHub PR 40875)
  • 跟蹤:其他佈局選項(xiàng)、設(shè)計(jì)工具和改進(jìn)(GitHub問(wèn)題44720)

以上是在WordPress塊主題中使用新的約束佈局的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

什麼是'渲染障礙CSS”? 什麼是'渲染障礙CSS”? Jun 24, 2025 am 12:42 AM

CSS會(huì)阻塞頁(yè)面渲染是因?yàn)闉g覽器默認(rèn)將內(nèi)聯(lián)和外部CSS視為關(guān)鍵資源,尤其是使用引入的樣式表、頭部大量?jī)?nèi)聯(lián)CSS以及未優(yōu)化的媒體查詢樣式。 1.提取關(guān)鍵CSS並內(nèi)嵌至HTML;2.延遲加載非關(guān)鍵CSS通過(guò)JavaScript;3.使用media屬性優(yōu)化加載如打印樣式;4.壓縮合併CSS減少請(qǐng)求。建議使用工具提取關(guān)鍵CSS,結(jié)合rel="preload"異步加載,合理使用media延遲加載,避免過(guò)度拆分與復(fù)雜腳本控制。

外部與內(nèi)部CSS:最好的方法是什麼? 外部與內(nèi)部CSS:最好的方法是什麼? Jun 20, 2025 am 12:45 AM

thebestapphachforcssdepprodsontheproject'sspefificneeds.forlargerprojects,externalcsSissBetterDuoSmaintoMaintainability andReusability; forsMallerProjectsorsingle-pageApplications,InternaltCsmightBemoresobleable.InternalCsmightBemorese.it.it'sclucialtobalancepopryseceneceenceprodrenceprodrenceNeed

我的CSS必須在較低的情況下嗎? 我的CSS必須在較低的情況下嗎? Jun 19, 2025 am 12:29 AM

否,CSSDOESNOTHAVETOBEINLOWERCASE.CHOMENDENS,使用flowercaseisrecommondendendending:1)一致性和可讀性,2)避免使用促進(jìn)性技術(shù),3)潛在的Performent FormanceBenefits,以及4)RightCollaboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraborationWithInteams。

CSS案例靈敏度:了解重要的 CSS案例靈敏度:了解重要的 Jun 20, 2025 am 12:09 AM

cssismostlycaseminemintiment,buturlsandfontfamilynamesarecase敏感。 1)屬性和valueslikeColor:紅色; prenotcase-sensive.2)urlsmustmustmatchtheserver'server'scase,例如

什麼是AutoPrefixer,它如何工作? 什麼是AutoPrefixer,它如何工作? Jul 02, 2025 am 01:15 AM

Autoprefixer是一個(gè)根據(jù)目標(biāo)瀏覽器範(fàn)圍自動(dòng)為CSS屬性添加廠商前綴的工具。 1.它解決了手動(dòng)維護(hù)前綴易出錯(cuò)的問(wèn)題;2.通過(guò)PostCSS插件形式工作,解析CSS、分析需加前綴的屬性、依配置生成代碼;3.使用步驟包括安裝插件、設(shè)置browserslist、在構(gòu)建流程中啟用;4.注意事項(xiàng)有不手動(dòng)加前綴、保持配置更新、非所有屬性都加前綴、建議配合預(yù)處理器使用。

什麼是CSS計(jì)數(shù)器? 什麼是CSS計(jì)數(shù)器? Jun 19, 2025 am 12:34 AM

csscounterscanautomationallymentermentermentections和lists.1)usecounter-ensettoInitializize,反插入式發(fā)芽,andcounter()orcounters()

CSS:何時(shí)重要(何時(shí)不)? CSS:何時(shí)重要(何時(shí)不)? Jun 19, 2025 am 12:27 AM

在CSS中,選擇器和屬性名不區(qū)分大小寫,而值、命名顏色、URL和自定義屬性則區(qū)分大小寫。 1.選擇器和屬性名不區(qū)分大小寫,例如background-color和Background-Color相同。 2.值中的十六進(jìn)制顏色不區(qū)分大小寫,但命名顏色區(qū)分大小寫,如red有效而Red無(wú)效。 3.URL區(qū)分大小寫,可能導(dǎo)致文件加載問(wèn)題。 4.自定義屬性(變量)區(qū)分大小寫,使用時(shí)需注意大小寫一致。

CSS中的情況敏感性:選擇器,屬性和值所解釋的 CSS中的情況敏感性:選擇器,屬性和值所解釋的 Jun 19, 2025 am 12:38 AM

cssselectorsand and propertynamesarecase-insimentimentiment.1)selectorSlike like'div'div'div'div'and'and'and'And'Andiv'areequivalent.2)propertioessuchas'backusuchas'backusuchas'backusuchas'backusuchas'backer'back-and'background and backorgook crolor'backorground-artreateateDthesementhesame.3)

See all articles