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

目錄
>來加載GSS樣式表。
此嵌套規(guī)則集:
>用于客戶端安裝,請通過鮑爾安裝:
>您還可以通過github作為zip文件下載版本2.0.0。
經(jīng)常詢問有關GSS(網(wǎng)格樣式)的問題
>什么是GSS(網(wǎng)格樣式表)?
> GSS與傳統(tǒng)CSS有何不同?
是的,是的,GSS旨在工作。與傳統(tǒng)CSS一起。這意味著您可以逐漸將GSS引入項目,而無需重寫現(xiàn)有的CSS代碼。 GSS代碼可以用單獨的文件編寫或與常規(guī)CSS代碼混合。
gss開源嗎?這意味著任何人都可以為其開發(fā)做出貢獻,并在其項目中免費使用它。 GSS的源代碼可在GitHub上獲得。
>由于我們已經(jīng)討論了GSS利用cassowary.js,因此這是GSS的另一個重要功能:一個元素可以以任何一行代碼為中心。這使得很多解決方法都不必要和過去的事情。
gss
刀片算法的計算限制
>安裝GSS
>我將使用該文件的Codepen托管版本,但是您可以在此處找到CDN托管版本。接下來,我將在GSS參考腳本(我剛剛添加的行)下添加以下代碼,以傳遞GSS文檔對象。
>添加一些基本樣式后,我可以添加一些GSS來創(chuàng)建布局。這是樂趣開始的地方。
>示例2:基于動態(tài)更改窗口寬度
首頁 web前端 css教程 介紹GSS:網(wǎng)格樣式表

介紹GSS:網(wǎng)格樣式表

Feb 23, 2025 am 09:26 AM

Introducing GSS: Grid Style Sheets

介紹GSS:網(wǎng)格樣式表

>您最近可能聽說過HTML和CSS世界中的網(wǎng)格樣式(GSS)。 GSS重新構(gòu)想CSS布局,并用利用來代替瀏覽器的布局引擎。那些不明白這句話的人……你好,歡迎!> GSS承諾將獲得更美好的未來。 GSS承諾相對定位和尺寸。 GSS承諾將任何元素以一行代碼為中心。 GSS提供。問題是:如何?

> 在本文中,我將介紹GSS的簡要歷史,并深入概述其所提供的功能。我還將查看GSS的基于約束的布局,Cassowary約束算法,并引導您完成安裝和使用GSS的過程。

那些寧愿不再等待W3C或瀏覽器趕上的人,我敦促您掛在那里并密切注意,而我解釋了GSS的謎團。在這一點上,讓我們從一點點歷史開始。

鑰匙要點

要開始使用GSS,需要通過bower安裝它或通過github作為zip文件下載,然后可以通過在a

>上添加type = type/gss或使用

>來加載GSS樣式表。

  • >簡短的歷史 GSS是與Dan Tocchini成為其創(chuàng)始人兼首席執(zhí)行官的網(wǎng)格的創(chuàng)建。這回答了為什么不是基于網(wǎng)格的樣式表被稱為網(wǎng)格樣式表。>
  • >網(wǎng)絡開發(fā)人員與前端技術之間的戰(zhàn)爭已經(jīng)持續(xù)了多年。在過去的十年中,CSS已被證明是勝利的。但是,Web開發(fā)人員會定期使用越來越多的工具來建立越來越復雜的用戶界面。例如,以CSS為中心的元素并不是最簡單的任務,尤其是使用可變的高度元素。

    >。

    flexbox是最新的解決方案之一,但是即使是小的更改也需要您深入HTML內(nèi)容和CSS演示并進行更改。

    > GSS是時候參加競技場了。 GSS解決了這些問題,還有更多的問題 - 開發(fā)人員十多年來遇到的問題。

    本質(zhì)上,GSS是利用CassoWary.js的CSS預處理器和JavaScript運行時。那些尚未知道的人Cassowary.js是Apple在Cocoa AutoLayout中使用的JavaScript端口。

    GSS和CASSOWARY都建立在約束編程上,使其非常適合授權CSS等聲明語言。約束編程是一個范式,Web開發(fā)人員關注聲明“什么”并將“如何”留給數(shù)學求解器。

    約束編程的重點是意圖,而不是實現(xiàn)。>

    >現(xiàn)在我們已經(jīng)建立了一些背景信息,讓我們繼續(xù)進行GSS優(yōu)惠的功能。

    GSS

    的概述 CSS最大的問題之一是相對論。您可以期望任何CSS元素都具有無休止的屬性列表 - 填充,高度,寬度,浮動,邊距,邊界,輪廓 - 但是這些信息都不告訴我們該元素在頁面上的其他元素(甚至整個頁面)。無盡的列表也沒有回答以不同的屏幕尺寸顯示元素的位置。>

    這使我們成為GSS的第一個功能:您定義了想要的布局?;ㄙM無數(shù)小時的試用和錯誤的日子已經(jīng)一去不復返了,制定了如何構(gòu)建布局的策略。

    >由于我們已經(jīng)討論了GSS利用cassowary.js,因此這是GSS的另一個重要功能:一個元素可以以任何一行代碼為中心。這使得很多解決方法都不必要和過去的事情。

    > 例如,如果要在網(wǎng)站頁面右側(cè)垂直添加訂閱按鈕,請使用以下代碼:>

    另一個功能:GSS使浮子,表單元,透明封碼和水平/垂直中心過時。告別危險的陷阱,因為我們有W3C本身,說浮子不是應用程序布局的理想之選。

    “隨著網(wǎng)站從簡單文檔演變?yōu)閺碗s的,交互式應用程序,文檔布局的工具,例如浮子不一定適合應用程序布局?!?

    - W3C網(wǎng)格布局模塊(工作草稿)
    .subscribe-button[right] == <span>::window[width];
    </span>.subscribe-button[center-y] == .header[center-y]<span>;</span>

    > CSS功能呢! GSS的第四個功能也有類似的事情:GSS采用約束層次結(jié)構(gòu)來優(yōu)先考慮優(yōu)勢的約束。我們在這里談論的四個內(nèi)置力量級別:


    !弱

    !

    !
    • 請注意,需要!
    • 特殊的
    • 強度,可確保約束成立,如果沒有,一切都會破裂。建議仔細且不經(jīng)常使用它。
    • >
    • >強度水平提高了列表,并且在執(zhí)行過程中,優(yōu)先級更高。讓我們看一個示例:
    • 您已經(jīng)做到了這么遠,讓我們現(xiàn)在看一些基于約束的布局。
    > 基于約束的布局

    gss 的約束基本上是兩個或多個變量之間可能存在或可能不存在的變量之間的關系。元素的所有數(shù)字屬性都有資格受到約束。這是一個示例:

    .subscribe-button[right] == <span>::window[width];
    </span>.subscribe-button[center-y] == .header[center-y]<span>;</span>
    • p稱為selector
    • >
    • > line-height是GSS將計算
    • >值的屬性
    • []用于訪問屬性
    • =定義不等式約束
    • 10和20是像素中的數(shù)值
    • >

    在上面給出的示例中,這兩個約束都有效。這是一個不存在的約束的示例。

    >
    #light[years] == <span>50 !weak;
    </span>#light[years] == <span>20 !medium;
    </span>#light[years] == <span>35 !strong;
    </span>
    <span>/* #light[years] will hold the value 35 */</span>

    最初,兩個元素elementa和Elementb都被約束為150px的高度。在第三行中,兩個元素的總和為225px。因此,這兩個元素的約束之一將無法成立。

    GSS

    中的選擇器 GSS中的選擇器是一組HTML元素的查詢,它們用于確定最終受約束影響的元素。選擇器很重要,因為您必須在對其應用約束之前從DOM中選擇和觀察元素。

    >

    GSS支持以下基本選擇器。

    GSS

    中的規(guī)則集

    規(guī)則集將使您在單個選擇器上定義多個約束。您也可以嵌套它們并在其中使用CSS屬性。
    p[line-height] >= <span>10;
    </span>p[line-height] <= <span>::window[height] / 20;</span>

    此嵌套規(guī)則集:

    與:

    相同

    GSS
    #elementa[height] == <span>150;
    </span>#elementb[height] == <span>150;
    </span>#elementa[height] <span>+ #elementb[height] == 225;</span>
    中的屬性

    >我已經(jīng)在上面的示例中介紹了屬性,但讓我們更仔細地看一下它們。在GSS中,屬性是屬于元素的變量。當我們使用CSS已知的屬性時,它們相應的GSS計算值將分配為元素上的內(nèi)聯(lián)樣式。

    類似的東西:
    #elementID[height] == <span>150;   /* id      */
    </span>div[height] == <span>150;         /* element */
    </span>.className[height] == <span>150; /* class   */</span>

    等于:

    >

    cassowary約束算法的簡介

    GSS使用Badros,Borning and Stuckey,1999年的CASSOWARY線性算術約束解決算法的JavaScript端口(cassowary.js),1999年。算法找到基于用戶使用自然語言給出的輸入約束的布局的最佳解決方案。
    <span>section < article {
    </span>  <span><span>.aclass</span> {
    </span>    <span>height: == 150;
    </span>  <span>}
    </span><span>}</span>

    >不需要用戶確保輸入約束不會彼此矛盾。實際上,這是刀片算法的本質(zhì)。它會逐步評估約束并自動發(fā)現(xiàn)最佳解決方案。

    >
    <span>(section < article .aclass)[height] == 150;</span>
    刀片算法的計算限制

    GSS背后的約束求解器稱為CASSOWARY算法。該算法只能計算線性的約束(即形式y(tǒng) = mx c)?;具\算符( - , *, /)由算法支持。兩個(或多個)約束變量的乘法和劃分不是線性的,因此會丟棄錯誤。

    >安裝GSS

    >用于客戶端安裝,請通過鮑爾安裝:

    然后將此代碼添加到您的標記的部分:>
    <span><span>.container</span> {
    </span>  <span>height: == #elm[height];
    </span><span>}</span>

    >您還可以通過github作為zip文件下載版本2.0.0。

    安裝GSS后,通過在上添加type = type/gss來加載.gss樣式表

    .subscribe-button[right] == <span>::window[width];
    </span>.subscribe-button[center-y] == .header[center-y]<span>;</span>
    或使用元素:

    #light[years] == <span>50 !weak;
    </span>#light[years] == <span>20 !medium;
    </span>#light[years] == <span>35 !strong;
    </span>
    <span>/* #light[years] will hold the value 35 */</span>
    >一旦您啟動并運行了所有內(nèi)容,就可以開始關注一些代碼示例。在下面,我將介紹初學者的教程。

    a GSS初學者的教程

    我將創(chuàng)建的示例將通過Codepen顯示,但我將像標準HTML文檔一樣瀏覽教程。首先,我將以下代碼行添加到我的HTML中以添加GSS引擎腳本:>

    >我將使用該文件的Codepen托管版本,但是您可以在此處找到CDN托管版本。接下來,我將在GSS參考腳本(我剛剛添加的行)下添加以下代碼,以傳遞GSS文檔對象。

    p[line-height] >= <span>10;
    </span>p[line-height] <= <span>::window[height] / 20;</span>

    如果您愿意,可以將其放置在引擎腳本后包含的單獨的JavaScript文件中。

    #elementa[height] == <span>150;
    </span>#elementb[height] == <span>150;
    </span>#elementa[height] <span>+ #elementb[height] == 225;</span>
    >示例1:垂直居中元素

    我將創(chuàng)建一個div,并將一些文本包裝在GSS布局中的H2標簽中,然后將其添加到HTML:

    >添加一些基本樣式后,我可以添加一些GSS來創(chuàng)建布局。這是樂趣開始的地方。

    #elementID[height] == <span>150;   /* id      */
    </span>div[height] == <span>150;         /* element */
    </span>.className[height] == <span>150; /* class   */</span>
    >我的目標是盡管大小尺寸將.foo元素垂直將.foo元素集中在視口內(nèi),并且即使元素的大小更改,也能夠?qū)⑾嗤膶R保持在適當?shù)奈恢谩?

    這是我將適用于實現(xiàn)此目標的限制:>

    >使用::窗口選擇器將元素與瀏覽器中的頁面的可見部分保持為中心。

    >使用:: [intinsic-height]屬性要獲得元素高度的相對值,該值將用于確定相對寬度。

      首先,我將帶有類型屬性設置為文本/GSS的HTML添加一個塊:
    • >
    • a 塊對于定義我要添加的GSS是必要的。我將通過在標簽中添加以下代碼來將元素放置在屏幕的中心:>
    >這就是需要的?,F(xiàn)在,使用GSS將該元素垂直(動態(tài)高度)居中。以下是演示:

    參見codepen上的SitePoint(@sitepoint)的GSS的筆垂直中心。
    <span>section < article {
    </span>  <span><span>.aclass</span> {
    </span>    <span>height: == 150;
    </span>  <span>}
    </span><span>}</span>

    >嘗試全屏演示,然后嘗試垂直調(diào)整瀏覽器大小以查看元素以任何窗口尺寸的中心保持。

    <span>(section < article .aclass)[height] == 150;</span>
    >示例2:基于動態(tài)更改窗口寬度

    的元素旋轉(zhuǎn) 在下一個示例中,

    >我將創(chuàng)建一個簡單的彩色正方形形狀,并動態(tài)旋轉(zhuǎn)。首先,讓我們通過在文檔的部分中添加以下代碼行來引導GSS:>
    .subscribe-button[right] == <span>::window[width];
    </span>.subscribe-button[center-y] == .header[center-y]<span>;</span>

    >請注意,您必須編輯上面的代碼才能指向文件的正確位置。您可以在此處獲取worker.js文件,然后在此處獲取GSS.JS文件。>

    >

    注意:由于某些錯誤,上面的文件路徑指向pre-2.0.0 gss的版本以使其工作。 現(xiàn)在,讓我們通過將其添加到html:來創(chuàng)建平方形狀。

    …并在CSS中添加一些樣式:

    >

    #light[years] == <span>50 !weak;
    </span>#light[years] == <span>20 !medium;
    </span>#light[years] == <span>35 !strong;
    </span>
    <span>/* #light[years] will hold the value 35 */</span>
    現(xiàn)在,我將返回HTML并添加一些GSS約束。

    >

    >請記住,使用GSS,您只需做出意圖,然后將數(shù)學計算留在算法上。在此示例中,我正在嘗試在窗口寬度動態(tài)變化時在元素和元素中產(chǎn)生旋轉(zhuǎn)的窗口之間創(chuàng)建一個約束。>>>>>。
    p[line-height] >= <span>10;
    </span>p[line-height] <= <span>::window[height] / 20;</span>
    這是我將適用于實現(xiàn)此目標的限制:>

    >使用::窗口[中心]選擇器將元素置于瀏覽器中的頁面的可見部分。

    >使用::窗口[width]用旋轉(zhuǎn)-Z創(chuàng)建約束,該約束將對其Z軸周圍的元素產(chǎn)生旋轉(zhuǎn)效果。在這里,從:: window [width]收到的值表示旋轉(zhuǎn)程度。

    >

      >就像我在第一個示例中一樣,我將在html上添加一個樣式塊,并在文本/gss上添加樣式塊。請記住,要定義我要添加的GSS的樣式塊是必需的。
    • >
    • >我將通過在樣式標簽中添加以下代碼來將方框與屏幕相關聯(lián):

    >就這樣做了。查看最終的Codepen演示:

    #elementa[height] == <span>150;
    </span>#elementb[height] == <span>150;
    </span>#elementa[height] <span>+ #elementb[height] == 225;</span>
    >請參閱codepen上的sitepoint(@sitepoint)使用GSS的筆動力旋轉(zhuǎn)。

    如果您查看全屏演示,請嘗試調(diào)整窗口大小。您會注意到,當窗口的寬度更改時,方框?qū)⒏淖兤湫D(zhuǎn)位置。
    #elementID[height] == <span>150;   /* id      */
    </span>div[height] == <span>150;         /* element */
    </span>.className[height] == <span>150; /* class   */</span>
    GSS

    的未來 GSS的未來看起來很有希望。是時候我們前進了前端技術了。我建議您在撕裂整個樣式表圖書館之前練習較小的原型。

    >

    我在這里介紹的只是您可以使用GSS的一小部分樣本,但我希望您發(fā)現(xiàn)本教程有用且有益的是讓您開始。

    您是否使用過GSS?您的經(jīng)歷如何?在評論部分中讓我知道。

    經(jīng)常詢問有關GSS(網(wǎng)格樣式)的問題

    >

    >什么是GSS(網(wǎng)格樣式表)?

    GSS或網(wǎng)格樣式表,是Web開發(fā)人員和設計師的強大工具。這是一種基于約束的布局引擎,可讓您使用簡單而直觀的語法創(chuàng)建響應式和靈活的布局。 GSS通過引入約束概念來擴展傳統(tǒng)的CSS模型,這使您能夠以更精確,更靈活的方式來定義元素之間的關系,并以更精確和靈活的方式來控制其行為。

    > GSS與傳統(tǒng)CSS有何不同?

    >傳統(tǒng)CSS使用框模型進行布局,在創(chuàng)建復雜的布局時,該模型可能會限制和復雜。另一方面,GSS使用基于約束的模型,該模型允許更具靈活性和精確度。使用GSS,您可以定義元素之間的關系,并以更直觀的方式控制其行為。

    >

    >我如何開始使用GSS?

    開始使用GSS,您需要包括GSS引擎在您的項目中。這可以通過從官方網(wǎng)站下載GSS庫或使用NPM等軟件包管理器來完成。項目中包含GSS引擎后,您可以在CSS文件中開始編寫GSS代碼。

    我可以將GSS與我現(xiàn)有的CSS代碼一起使用嗎?

    是的,是的,GSS旨在工作。與傳統(tǒng)CSS一起。這意味著您可以逐漸將GSS引入項目,而無需重寫現(xiàn)有的CSS代碼。 GSS代碼可以用單獨的文件編寫或與常規(guī)CSS代碼混合。

    >使用GSS?

    GSS提供了比傳統(tǒng)CSS的多種好處。它允許對布局進行更精確的控制,從而更輕松地創(chuàng)建復雜而響應的設計。 GSS還簡化了代碼,使閱讀和維護更加容易。此外,GSS支持實時編輯,這意味著您可以在代碼時實時看到更改。

    > GSS是所有瀏覽器支持的嗎?

    GSS使用JavaScript來實現(xiàn)其基于約束的布局引擎,這意味著它應該在支持JavaScript的任何現(xiàn)代瀏覽器中工作。但是,與任何新技術一樣,在多個瀏覽器中測試您的設計總是一個好主意??捎糜趯W習GSS的資源。 GSS官方網(wǎng)站提供了綜合指南和文檔。還有幾個在線教程和課程可深入覆蓋GSS。其基于約束的布局引擎允許適應不同屏幕尺寸和方向的響應式設計。這使得在不同設備上創(chuàng)建一致的用戶體驗變得更加容易。

    gss開源嗎?這意味著任何人都可以為其開發(fā)做出貢獻,并在其項目中免費使用它。 GSS的源代碼可在GitHub上獲得。

    GSS的未來是什么?但是,其強大的功能以及對基于約束的布局的日益興趣表明,它具有有希望的未來。隨著越來越多的開發(fā)人員采用GSS,我們可以期望看到更多的資源,工具和社區(qū)支持這項創(chuàng)新技術。

    網(wǎng)格樣式表(GSS)是CSS預處理器和JavaScript運行時,用CassoWary約束求解器,有前途的相對定位和尺寸以及將任何元素置于另一個代碼中的任何元素的能力。 >

    gss采用約束編程,該編程的重點是意圖而不是實施,使開發(fā)人員可以聲明“什么”并將“如何”留給數(shù)學求解器。 GSS

    使浮子,桌子細胞,透明封裝和水平/垂直居中過時,并采用約束層次結(jié)構(gòu)來優(yōu)先使用強度的約束,提供四個內(nèi)置的強度水平:!弱,中等,!強,!

    GSS使用CASSOWARY線性算術約束算法解決算法來根據(jù)用戶自然語言給出的輸入約束來找到最佳的布局解決方案,從而逐漸評估約束并自動發(fā)現(xiàn)最佳解決方案。>>>>>>>>>>>>
      。
    • 要開始使用GSS,需要通過bower安裝它或通過github作為zip文件下載,然后可以通過在a
    • >上添加type = type/gss或使用
    • >來加載GSS樣式表。
    • 簡短的歷史
    • GSS是與Dan Tocchini成為其創(chuàng)始人兼首席執(zhí)行官的網(wǎng)格的創(chuàng)建。這回答了為什么不是基于網(wǎng)格的樣式表被稱為網(wǎng)格樣式表。>
    • >網(wǎng)絡開發(fā)人員與前端技術之間的戰(zhàn)爭已經(jīng)持續(xù)了多年。在過去的十年中,CSS已被證明是勝利的。但是,Web開發(fā)人員會定期使用越來越多的工具來建立越來越復雜的用戶界面。例如,以CSS為中心的元素并不是最簡單的任務,尤其是使用可變的高度元素。>。 flexbox是最新的解決方案之一,但是即使是小的更改也需要您深入HTML內(nèi)容和CSS演示并進行更改。
    > GSS是時候參加競技場了。 GSS解決了這些問題,還有更多的問題 - 開發(fā)人員十多年來遇到的問題。

    本質(zhì)上,GSS是利用CassoWary.js的CSS預處理器和JavaScript運行時。那些尚未知道的人Cassowary.js是Apple在Cocoa AutoLayout中使用的JavaScript端口。

    GSS和CASSOWARY都建立在約束編程上,使其非常適合授權CSS等聲明語言。約束編程是一個范式,Web開發(fā)人員關注聲明“什么”并將“如何”留給數(shù)學求解器。

    約束編程的重點是意圖,而不是實現(xiàn)。>

    >現(xiàn)在我們已經(jīng)建立了一些背景信息,讓我們繼續(xù)進行GSS優(yōu)惠的功能。
    GSS

    的概述 CSS最大的問題之一是相對論。您可以期望任何CSS元素都具有無休止的屬性列表 - 填充,高度,寬度,浮動,邊距,邊界,輪廓 - 但是這些信息都不告訴我們該元素在頁面上的其他元素(甚至整個頁面)。無盡的列表也沒有回答以不同的屏幕尺寸顯示元素的位置。>

    這使我們成為GSS的第一個功能:您定義了想要的布局?;ㄙM無數(shù)小時的試用和錯誤的日子已經(jīng)一去不復返了,制定了如何構(gòu)建布局的策略。

    >由于我們已經(jīng)討論了GSS利用cassowary.js,因此這是GSS的另一個重要功能:一個元素可以以任何一行代碼為中心。這使得很多解決方法都不必要和過去的事情。

    > 例如,如果要在網(wǎng)站頁面右側(cè)垂直添加訂閱按鈕,請使用以下代碼:>

    另一個功能:GSS使浮子,表單元,透明封碼和水平/垂直中心過時。告別危險的陷阱,因為我們有W3C本身,說浮子不是應用程序布局的理想之選。

    “隨著網(wǎng)站從簡單文檔演變?yōu)閺碗s的,交互式應用程序,文檔布局的工具,例如浮子不一定適合應用程序布局?!?

    - W3C網(wǎng)格布局模塊(工作草稿)

    .subscribe-button[right] == <span>::window[width];
    </span>.subscribe-button[center-y] == .header[center-y]<span>;</span>
    > CSS功能呢! GSS的第四個功能也有類似的事情:GSS采用約束層次結(jié)構(gòu)來優(yōu)先考慮優(yōu)勢的約束。我們在這里談論的四個內(nèi)置力量級別:

    !弱


    !

    !

    請注意,需要!
      特殊的
    • 強度,可確保約束成立,如果沒有,一切都會破裂。建議仔細且不經(jīng)常使用它。
    • >

      >強度水平提高了列表,并且在執(zhí)行過程中,優(yōu)先級更高。讓我們看一個示例:

    .subscribe-button[right] == <span>::window[width];
    </span>.subscribe-button[center-y] == .header[center-y]<span>;</span>

    您已經(jīng)做到了這么遠,讓我們現(xiàn)在看一些基于約束的布局。

    > 基于約束的布局

    gss

    的約束基本上是兩個或多個變量之間可能存在或可能不存在的變量之間的關系。元素的所有數(shù)字屬性都有資格受到約束。這是一個示例:

    #light[years] == <span>50 !weak;
    </span>#light[years] == <span>20 !medium;
    </span>#light[years] == <span>35 !strong;
    </span>
    <span>/* #light[years] will hold the value 35 */</span>
    • p稱為selector
    • >
    • > line-height是GSS將計算
    • >值的屬性
    • []用于訪問屬性
    • =定義不等式約束
    • 10和20是像素中的數(shù)值
    • >

    在上面給出的示例中,這兩個約束都有效。這是一個不存在的約束的示例。

    >
    p[line-height] >= <span>10;
    </span>p[line-height] <= <span>::window[height] / 20;</span>

    最初,兩個元素elementa和Elementb都被約束為150px的高度。在第三行中,兩個元素的總和為225px。因此,這兩個元素的約束之一將無法成立。

    GSS

    中的選擇器 GSS中的選擇器是一組HTML元素的查詢,它們用于確定最終受約束影響的元素。選擇器很重要,因為您必須在對其應用約束之前從DOM中選擇和觀察元素。

    >

    GSS支持以下基本選擇器。

    GSS

    中的規(guī)則集

    規(guī)則集將使您在單個選擇器上定義多個約束。您也可以嵌套它們并在其中使用CSS屬性。
    #elementa[height] == <span>150;
    </span>#elementb[height] == <span>150;
    </span>#elementa[height] <span>+ #elementb[height] == 225;</span>

    此嵌套規(guī)則集:

    與:

    相同

    GSS
    #elementID[height] == <span>150;   /* id      */
    </span>div[height] == <span>150;         /* element */
    </span>.className[height] == <span>150; /* class   */</span>
    中的屬性

    >我已經(jīng)在上面的示例中介紹了屬性,但讓我們更仔細地看一下它們。在GSS中,屬性是屬于元素的變量。當我們使用CSS已知的屬性時,它們相應的GSS計算值將分配為元素上的內(nèi)聯(lián)樣式。

    類似的東西:
    <span>section < article {
    </span>  <span><span>.aclass</span> {
    </span>    <span>height: == 150;
    </span>  <span>}
    </span><span>}</span>

    等于:

    >

    cassowary約束算法的簡介

    GSS使用Badros,Borning and Stuckey,1999年的CASSOWARY線性算術約束解決算法的JavaScript端口(cassowary.js),1999年。算法找到基于用戶使用自然語言給出的輸入約束的布局的最佳解決方案。
    <span>(section < article .aclass)[height] == 150;</span>

    >不需要用戶確保輸入約束不會彼此矛盾。實際上,這是刀片算法的本質(zhì)。它會逐步評估約束并自動發(fā)現(xiàn)最佳解決方案。

    >

    刀片算法的計算限制

    GSS背后的約束求解器稱為CASSOWARY算法。該算法只能計算線性的約束(即形式y(tǒng) = mx c)?;具\算符( - , *, /)由算法支持。兩個(或多個)約束變量的乘法和劃分不是線性的,因此會丟棄錯誤。

    .subscribe-button[right] == <span>::window[width];
    </span>.subscribe-button[center-y] == .header[center-y]<span>;</span>

    >安裝GSS

    >用于客戶端安裝,請通過鮑爾安裝:

    #light[years] == <span>50 !weak;
    </span>#light[years] == <span>20 !medium;
    </span>#light[years] == <span>35 !strong;
    </span>
    <span>/* #light[years] will hold the value 35 */</span>

    然后將此代碼添加到您的標記的

    部分:>

    p[line-height] >= <span>10;
    </span>p[line-height] <= <span>::window[height] / 20;</span>
    >您還可以通過github作為zip文件下載版本2.0.0。

    安裝GSS后,通過在上添加type = type/gss來加載.gss樣式表

    或使用元素:

    #elementa[height] == <span>150;
    </span>#elementb[height] == <span>150;
    </span>#elementa[height] <span>+ #elementb[height] == 225;</span>

    >一旦您啟動并運行了所有內(nèi)容,就可以開始關注一些代碼示例。在下面,我將介紹初學者的教程。

    #elementID[height] == <span>150;   /* id      */
    </span>div[height] == <span>150;         /* element */
    </span>.className[height] == <span>150; /* class   */</span>
    a GSS初學者的教程

    我將創(chuàng)建的示例將通過Codepen顯示,但我將像標準HTML文檔一樣瀏覽教程。首先,我將以下代碼行添加到我的HTML中以添加GSS引擎腳本:>

    >我將使用該文件的Codepen托管版本,但是您可以在此處找到CDN托管版本。接下來,我將在GSS參考腳本(我剛剛添加的行)下添加以下代碼,以傳遞GSS文檔對象。

    如果您愿意,可以將其放置在引擎腳本后包含的單獨的JavaScript文件中。
    <span>section < article {
    </span>  <span><span>.aclass</span> {
    </span>    <span>height: == 150;
    </span>  <span>}
    </span><span>}</span>

    >示例1:垂直居中元素

    <span>(section < article .aclass)[height] == 150;</span>
    我將創(chuàng)建一個div,并將一些文本包裝在GSS布局中的H2標簽中,然后將其添加到HTML:

    >添加一些基本樣式后,我可以添加一些GSS來創(chuàng)建布局。這是樂趣開始的地方。

    >我的目標是盡管大小尺寸將.foo元素垂直將.foo元素集中在視口內(nèi),并且即使元素的大小更改,也能夠?qū)⑾嗤膶R保持在適當?shù)奈恢谩?

    這是我將適用于實現(xiàn)此目標的限制:>
    <span><span>.container</span> {
    </span>  <span>height: == #elm[height];
    </span><span>}</span>

    >使用::窗口選擇器將元素與瀏覽器中的頁面的可見部分保持為中心。

    >使用:: [intinsic-height]屬性要獲得元素高度的相對值,該值將用于確定相對寬度。

    首先,我將帶有類型屬性設置為文本/GSS的HTML添加一個塊:

    >
    • a 塊對于定義我要添加的GSS是必要的。我將通過在標簽中添加以下代碼來將元素放置在屏幕的中心:>
    • >這就是需要的?,F(xiàn)在,使用GSS將該元素垂直(動態(tài)高度)居中。以下是演示:
    • 參見codepen上的SitePoint(@sitepoint)的GSS的筆垂直中心。

      >嘗試全屏演示,然后嘗試垂直調(diào)整瀏覽器大小以查看元素以任何窗口尺寸的中心保持。

      >示例2:基于動態(tài)更改窗口寬度

      的元素旋轉(zhuǎn) 在下一個示例中,

      >我將創(chuàng)建一個簡單的彩色正方形形狀,并動態(tài)旋轉(zhuǎn)。首先,讓我們通過在文檔的

      部分中添加以下代碼行來引導GSS:>

    .subscribe-button[right] == <span>::window[width];
    </span>.subscribe-button[center-y] == .header[center-y]<span>;</span>
    >請注意,您必須編輯上面的代碼才能指向文件的正確位置。您可以在此處獲取worker.js文件,然后在此處獲取GSS.JS文件。>

    >

    注意:由于某些錯誤,上面的文件路徑指向pre-2.0.0 gss的版本以使其工作。

    現(xiàn)在,讓我們通過將其添加到html:來創(chuàng)建平方形狀。 …并在CSS中添加一些樣式:

    >

    現(xiàn)在,我將返回HTML并添加一些GSS約束。
    #light[years] == <span>50 !weak;
    </span>#light[years] == <span>20 !medium;
    </span>#light[years] == <span>35 !strong;
    </span>
    <span>/* #light[years] will hold the value 35 */</span>
    >

    >請記住,使用GSS,您只需做出意圖,然后將數(shù)學計算留在算法上。在此示例中,我正在嘗試在窗口寬度動態(tài)變化時在元素和元素中產(chǎn)生旋轉(zhuǎn)的窗口之間創(chuàng)建一個約束。>>>>>。

    這是我將適用于實現(xiàn)此目標的限制:>
    p[line-height] >= <span>10;
    </span>p[line-height] <= <span>::window[height] / 20;</span>

    >使用::窗口[中心]選擇器將元素置于瀏覽器中的頁面的可見部分。

    >使用::窗口[width]用旋轉(zhuǎn)-Z創(chuàng)建約束,該約束將對其Z軸周圍的元素產(chǎn)生旋轉(zhuǎn)效果。在這里,從:: window [width]收到的值表示旋轉(zhuǎn)程度。

    >

    >就像我在第一個示例中一樣,我將在html上添加一個樣式塊,并在文本/gss上添加樣式塊。請記住,要定義我要添加的GSS的樣式塊是必需的。
      >
    • >我將通過在樣式標簽中添加以下代碼來將方框與屏幕相關聯(lián):
    >就這樣做了。查看最終的Codepen演示:

    >請參閱codepen上的sitepoint(@sitepoint)使用GSS的筆動力旋轉(zhuǎn)。
    #elementa[height] == <span>150;
    </span>#elementb[height] == <span>150;
    </span>#elementa[height] <span>+ #elementb[height] == 225;</span>

    如果您查看全屏演示,請嘗試調(diào)整窗口大小。您會注意到,當窗口的寬度更改時,方框?qū)⒏淖兤湫D(zhuǎn)位置。

    GSS
    #elementID[height] == <span>150;   /* id      */
    </span>div[height] == <span>150;         /* element */
    </span>.className[height] == <span>150; /* class   */</span>
    的未來 GSS的未來看起來很有希望。是時候我們前進了前端技術了。我建議您在撕裂整個樣式表圖書館之前練習較小的原型。

    >

    我在這里介紹的只是您可以使用GSS的一小部分樣本,但我希望您發(fā)現(xiàn)本教程有用且有益的是讓您開始。

    您是否使用過GSS?您的經(jīng)歷如何?在評論部分中讓我知道。

    經(jīng)常詢問有關GSS(網(wǎng)格樣式)的問題

    > > 什么是GSS(網(wǎng)格樣式)?對于網(wǎng)絡開發(fā)人員和設計師來說, gss或網(wǎng)格樣式表是一個有力的工具。這是一種基于約束的布局引擎,可讓您使用簡單而直觀的語法創(chuàng)建響應式和靈活的布局。 GSS通過引入約束的概念來擴展傳統(tǒng)的CSS模型,該模型使您能夠以更精確,更靈活的方式來定義元素之間的關系。

    >傳統(tǒng)CSS使用框模型進行布局,在創(chuàng)建復雜的布局時,該模型可能會限制和復雜。另一方面,GSS使用基于約束的模型,該模型允許更具靈活性和精確度。使用GSS,您可以定義元素之間的關系,并以更直觀的方式控制其行為。>如何開始使用GSS?

    要開始使用GSS,您需要在項目中包括GSS引擎。這可以通過從官方網(wǎng)站下載GSS庫或使用NPM等軟件包管理器來完成。項目中包含GSS引擎后,您可以在CSS文件中開始編寫GSS代碼。

    >我可以將GSS與現(xiàn)有的CSS代碼一起使用嗎?是的,GSS旨在與傳統(tǒng)CSS一起工作。這意味著您可以逐漸將GSS引入項目,而無需重寫現(xiàn)有的CSS代碼。 GSS代碼可以用單獨的文件編寫或與常規(guī)CSS代碼混合。

    >使用GSS有什么好處? GSS比傳統(tǒng)CSS提供了多種好處。它允許對布局進行更精確的控制,從而更輕松地創(chuàng)建復雜而響應的設計。 GSS還簡化了代碼,使閱讀和維護更加容易。此外,GSS支持實時編輯,這意味著您可以在編碼時實時看到更改。 GSS是否由所有瀏覽器支持?

    gss使用JavaScript實現(xiàn)其基于約束的布局引擎,這意味著它應該在支持JavaScript的任何現(xiàn)代瀏覽器中工作。但是,與任何新技術一樣,在多個瀏覽器中測試您的設計總是一個好主意,以確保兼容性。

    > 是否有任何資源可以學習GSS?

    是的,有幾種資源可以學習GSS。 GSS官方網(wǎng)站提供了綜合指南和文檔。還有幾個在線教程和課程可深入涵蓋GSS。是的,GSS是移動Web開發(fā)的絕佳工具。其基于約束的布局引擎允許適應不同屏幕尺寸和方向的響應式設計。這使得更容易在不同設備上創(chuàng)建一致的用戶體驗。

    是的,GSS是一個開源項目。這意味著任何人都可以為其開發(fā)做出貢獻,并在其項目中免費使用它。 GSS的源代碼可在GitHub上獲得。

    GSS的未來是什么?作為一種相對較新的技術,GSS仍在發(fā)展。但是,其強大的功能以及對基于約束的布局的日益興趣表明,它具有有希望的未來。隨著越來越多的開發(fā)人員采用GSS,我們可以期望看到更多的資源,工具和社區(qū)支持這項創(chuàng)新技術。

    以上是介紹GSS:網(wǎng)格樣式表的詳細內(nèi)容。更多信息請關注PHP中文網(wǎng)其他相關文章!

    本站聲明
    本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權的內(nèi)容,請聯(lián)系admin@php.cn

    熱AI工具

    Undress AI Tool

    Undress AI Tool

    免費脫衣服圖片

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驅(qū)動的應用程序,用于創(chuàng)建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用于從照片中去除衣服的在線人工智能工具。

    Clothoff.io

    Clothoff.io

    AI脫衣機

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的代碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    功能強大的PHP集成開發(fā)環(huán)境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網(wǎng)頁開發(fā)工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級代碼編輯軟件(SublimeText3)

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

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

    外部與內(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 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是一個根據(jù)目標瀏覽器范圍自動為CSS屬性添加廠商前綴的工具。1.它解決了手動維護前綴易出錯的問題;2.通過PostCSS插件形式工作,解析CSS、分析需加前綴的屬性、依配置生成代碼;3.使用步驟包括安裝插件、設置browserslist、在構(gòu)建流程中啟用;4.注意事項有不手動加前綴、保持配置更新、非所有屬性都加前綴、建議配合預處理器使用。

    什么是圓錐級函數(shù)? 什么是圓錐級函數(shù)? Jul 01, 2025 am 01:16 AM

    theconic-Gradient()functionIncsscreatesCircularGradientsThatRotateColorStopSaroundAcentralPoint.1.IsidealForPieCharts,ProgressIndicators,colordichers,colorwheels和decorativeBackgrounds.2.itworksbysbysbysbydefindefingincolordefingincolorstopsatspecificains off.

    CSS教程,用于創(chuàng)建粘性標頭或頁腳 CSS教程,用于創(chuàng)建粘性標頭或頁腳 Jul 02, 2025 am 01:04 AM

    TocreatestickyheadersandfooterswithCSS,useposition:stickyforheaderswithtopvalueandz-index,ensuringparentcontainersdon’trestrictit.1.Forstickyheaders:setposition:sticky,top:0,z-index,andbackgroundcolor.2.Forstickyfooters,betteruseposition:fixedwithbot

    CSS自定義屬性的范圍是什么? CSS自定義屬性的范圍是什么? Jun 25, 2025 am 12:16 AM

    CSS自定義屬性的作用域取決于其聲明的上下文,全局變量通常定義在:root中,而局部變量則定義在特定選擇器內(nèi),以便組件化和隔離樣式。例如,定義在.card類中的變量僅對匹配該類的元素及其子元素可用。最佳實踐包括:1.使用:root定義全局變量如主題色;2.在組件內(nèi)部定義局部變量以實現(xiàn)封裝;3.避免重復聲明同一變量;4.注意選擇器特異性可能引發(fā)的覆蓋問題。此外,CSS變量區(qū)分大小寫,且應在使用前定義以避免錯誤。若變量未定義或引用失敗,則會采用回退值或默認值initial。調(diào)試時可通過瀏覽器開發(fā)者工

    解鎖CSS動畫的潛力:深度潛水 解鎖CSS動畫的潛力:深度潛水 Jun 20, 2025 am 12:14 AM

    cssanimationsenhancewebpagesbyimprovinguserexperienceandsiteFunctionallity.1)usetransitionsforsmoothstylechanges,asinthebuttoncolorexample.2)losplyKeyKeyframesforeSfordEteTailEdAnimations.3)

    See all articles