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

目錄
為什麼AST有用?
AST是用什麼?
安裝依賴項
AST長什麼樣?
等等。
AST轉(zhuǎn)換如何工作
如何修改AST的HTML輸出?
將降價AST轉(zhuǎn)換為HTML AST
為統(tǒng)一寫一個插件
將訪問者添加到插件
將圖像包裹在圖元素中
將圖像旁邊的文字用作標題
在圖中添加小提琴元素
將轉(zhuǎn)換的內(nèi)容保存到新文件
首頁 web前端 css教學(xué) 如何在抽象語法樹中修改節(jié)點

如何在抽象語法樹中修改節(jié)點

Apr 13, 2025 am 09:50 AM

如何在抽象語法樹中修改節(jié)點

我最近偶然發(fā)現(xiàn)的最強大的概念之一是抽象語法樹或AST的想法。如果您曾經(jīng)學(xué)習(xí)過煉金術(shù),您可能會記得,煉金術(shù)士的整個動機是通過科學(xué)或神秘的方法發(fā)現(xiàn)某種方法將非金牌轉(zhuǎn)化為黃金。

AST是這樣的。使用ASTS,我們可以將Markdown轉(zhuǎn)換為HTML,JSX變成JavaScript,等等。

為什麼AST有用?

在職業(yè)生涯的早期,我嘗試使用發(fā)現(xiàn)和重複方法來更改文件。這最終變得相當複雜,因此我嘗試使用正則表達式。我最終放棄了這個想法,因為它是如此脆弱。該應(yīng)用程序一直都破裂了,因為有人會以我沒想到的方式輸入文本,並且會打破我的正則表達式,從而導(dǎo)致整個應(yīng)用程序掉落。

之所以如此困難,是因為HTML靈活。這使得使用正則表達式很難解析?;蹲址奶娲泛苋菀状蚱?,因為它可能錯過了一場比賽,匹配過多或做一些怪異的事情,從而導(dǎo)致無效的標記使頁面看起來很笨拙。

另一方面,ASTS將HTML變成更加結(jié)構(gòu)化的東西,這使得潛入文本節(jié)點並僅在該文本上進行替換變得更加簡單,或者與元素混亂而無需完全處理文本。

這使AST轉(zhuǎn)換更安全,比純粹基於字符串的解決方案更安全,並且容易出錯。

AST是用什麼?

首先,讓我們使用幾行降價來查看最小文檔。將其保存為稱為home.md的文件,我們將保存在我們網(wǎng)站的內(nèi)容文件夾中。

 # 你好世界!

! [cardigan corgi](<https:>)一個可愛的corgi!

還有一些文字在這裡。</https:>

假設(shè)我們知道Markdown,我們可以推斷出,當這種降價解析時,最終將是一個H1標籤,上面寫著“ Hello World!”然後,文本的兩個段落:第一個包含corgi的圖像和一些旨在描述它的文本,第二個文本說:“還有一些文字在這裡?!?/p>

但是,如何從降價轉(zhuǎn)換為HTML呢?

那就是AST進來的地方!

由於它支持多種語言,因此我們將使用Unist語法樹規(guī)範,更具體地說是項目統(tǒng)一。

安裝依賴項

首先,我們需要安裝所需的依賴項將降價分析為AST並將其轉(zhuǎn)換為HTML。為此,我們需要確保將文件夾初始化為包裝。在您的終端中運行以下命令:

 #確保您在根文件夾中(``content''中的位置)
#將此文件夾初始化為NPM軟件包
npm init

#安裝依賴項
NPM安裝統(tǒng)一的備註備註html

如果我們假設(shè)我們的降價存儲在home.md中,則可以通過以下代碼獲得AST:

 const fs = require('fs');
const Unified = require('unified');
const markdown = require('eRext-parse');
const html = require('dempress-html');

const contents = unified()
  。
  .use(html)
  。
  .tostring();

console.log(內(nèi)容);

該代碼利用了Node的內(nèi)置FS模塊,這使我們能夠訪問和操縱文件系統(tǒng)。有關(guān)其工作原理的更多信息,請查看官方文檔。

如果我們將其保存為src/index.js並使用節(jié)點從命令行執(zhí)行此腳本,我們將在終端中看到以下內(nèi)容:

 $ node src/index.js 
<h1>你好世界! </h1>
<p> <img  src="%E2%80%9C" alt="如何在抽象語法樹中修改節(jié)點" >” alt =“ cardigan corgi”>
</p><p>還有更多文字。 </p>

我們告訴Unified使用Relecor-Parse將Markdown文件轉(zhuǎn)換為AST,然後使用Relever-HTML將Markdown AST變成HTML,或者更具體地說,它將其變成稱為VFILE的東西。使用ToString()方法將AST變成可以在瀏覽器中顯示的實際HTML字符串!

多虧了開源社區(qū)的辛勤工作,言論為將降級變成HTML所做的所有辛勤工作。 (請參閱差異)

接下來,讓我們看一下這是如何工作的。

AST長什麼樣?

要查看實際的AST,讓我們編寫一個小插件來記錄它:

 const fs = require('fs');
const Unified = require('unified');
const markdown = require('eRext-parse');
const html = require('dempress-html');

const contents = unified()
	。
  。
	.use(html)
	。
	.tostring();

運行腳本的輸出現(xiàn)在將為:

 {
  “ type”:“ root”,
  “孩子們”: [
    {
      “類型”:“標題”,
      “深度”:1,
      “孩子們”: [
        {
          “ type”:“ text”,
          “價值”:“你好世界!”,
          “位置”: {}
        }
      ],,
      “位置”: {}
    },,
    {
      “ type”:“段落”,
      “孩子們”: [
        {
          “類型”:“圖像”,
          “標題”:null,
          “ url”:“ <https:>”,
          “ Alt”:“ Cardigan Corgi”,
          “位置”: {}
        },,
        {
          “ type”:“ text”,
          “價值”:“可愛的corgi!”,
          “位置”: {}
        }
      ],,
      “位置”: {}
    },,
    {
      “ type”:“段落”,
      “孩子們”: [
        {
          “ type”:“ text”,
          “ value”:“還有更多文本?!保?          “位置”: {}
        }
      ],,
      “位置”: {}
    }
  ],,
  “位置”: {}
}</https:>

請注意,位置值已被截斷以節(jié)省空間。它們包含有關(guān)文檔中節(jié)點位置的信息。出於本教程的目的,我們不會使用此信息。 (請參閱差異)

這是有點不知所措,但是如果我們放大,我們可以看到降價的每個部分都變成了一種節(jié)點,其中包含文本節(jié)點。

例如,標題變?yōu)椋?/p>

 {
  “類型”:“標題”,
  “深度”:1,
  “孩子們”: [
    {
      “ type”:“ text”,
      “價值”:“你好世界!”,
      “位置”: {}
    }
  ],,
  “位置”: {}
}

這就是這意味著:

  • 這些類型告訴我們我們正在處理哪種節(jié)點。
  • 每個節(jié)點類型都有描述節(jié)點的其他屬性。標題上的深度屬性告訴我們它的標題是多少 - 深度為1是一個

    標籤,2表示

    等等。

  • 孩子們的數(shù)組告訴我們這個節(jié)點裡面有什麼。在標題和段落中,只有文字,但是我們也可以在這裡看到內(nèi)聯(lián)元素,例如

這是ASTS的力量:我們現(xiàn)在將Markdown文檔描述為計算機可以理解的對象。如果我們想將其打印回Markdown,Markdown編譯器將知道一個深度為1的“標題”節(jié)點以#開始,並且?guī)в小?Hello”的子文本節(jié)點意味著最終行應(yīng)該是#Hello。

AST轉(zhuǎn)換如何工作

通常使用訪問者模式進行轉(zhuǎn)換AST。知道這是如何生產(chǎn)力的來源的來源和出現(xiàn)並不重要的,但是如果您很好奇,Soham Kamani對人類的JavaScript設(shè)計模式有一個很好的例子,可以幫助解釋其工作原理。重要的是要知道的是,AST工作中的大多數(shù)資源都會談?wù)摗霸L問節(jié)點”,該節(jié)點大致轉(zhuǎn)化為“找到AST的一部分,以便我們可以用它來做些事情”。這種工作實踐的方式是,我們編寫了一個將應(yīng)用於與我們的標準匹配的AST節(jié)點的函數(shù)。

關(guān)於其工作原理的一些重要說明:

  • AST可能是巨大的,因此出於績效原因,我們將直接突變節(jié)點。這與我通常如何處理事物的方式背道而馳 - 作為一般規(guī)則,我不喜歡變異全球狀態(tài) - 但在這種情況下這是有意義的。
  • 訪客遞歸工作。這意味著,如果我們處理一個節(jié)點並創(chuàng)建相同類型的新節(jié)點,則訪問者也將在新創(chuàng)建的節(jié)點上運行,除非我們明確告訴訪客不這樣做。
  • 在本教程中,我們不會太深入,但是這兩個想法將幫助我們了解我們開始弄亂代碼時發(fā)生的事情。

如何修改AST的HTML輸出?

但是,如果我們想更改降價的輸出怎麼辦?假設(shè)我們的目標是用圖形元素包裝圖像標籤並提供標題,這樣:

 <figud>
  <img  src="%E2%80%9C" alt="如何在抽象語法樹中修改節(jié)點" >”
    alt =“ Cardigan Corgi”
  />
  <figcaption>可愛的corgi! </figcaption>
</figud>

為此,我們需要轉(zhuǎn)換HTML AST,而不是降價AST,因為Markdown沒有一種創(chuàng)建數(shù)字或Figcaption元素的方法。幸運的是,由於Unified與多個解析器可互操作,因此我們可以在不編寫一堆自定義代碼的情況下做到這一點。

將降價AST轉(zhuǎn)換為HTML AST

要將Markdown AST轉(zhuǎn)換為HTML AST,請?zhí)砑覴eform-Hearize,然後切換到將AST轉(zhuǎn)回HTML的重新構(gòu)造。

 NPM安裝插圖讀物重新構(gòu)造

在SRC/index.js中進行以下更改以切換到rehype:

 const fs = require('fs');
const Unified = require('unified');
const markdown = require('eRext-parse');
const備註2 heaute = require('eREAND-HERAIMET');
const html = require('rehype-stringify');

const contents = unified()
	。
  。
	。
	.use(html)
	。
	.tostring();

console.log(內(nèi)容);

請注意,HTML變量從RelectH-HTML更改為重新構(gòu)造 - 兩者都將AST轉(zhuǎn)換為可以將其串起為HTML的格式

如果我們運行腳本,我們可以在AST中看到圖像元素如下:

 {
  “類型”:“元素”,
  “ tagname”:“ img”,
  “特性”: {
    “ src”:“ https://images.dog.ceo/breeds/corgi-cardigan/n02113186_1030.jpg”,
    “ Alt”:“ Cardigan Corgi”
  },,
  “孩子們”: [],
  “位置”: {}
}

這是圖像的HTML表示形式的AST,因此我們可以開始更改它以使用圖形元素。 (請參閱差異)

為統(tǒng)一寫一個插件

為了用圖形元素包裝我們的IMG元素,我們需要編寫一個插件。在Unified中,使用use()方法添加插件,該方法接受插件作為第一個參數(shù),並將任何選項作為第二個參數(shù):

 .use(插件,選項)

插件代碼是接收選項的函數(shù)(在統(tǒng)一行話中稱為“附件”)。這些選項用於創(chuàng)建一個新功能(稱為“變壓器”),該功能接收AST並確實可以對其進行轉(zhuǎn)換。有關(guān)插件的更多詳細信息,請查看統(tǒng)一文檔中的插件概述。

它返回的功能將接收整個AST作為參數(shù),並且不會返回任何內(nèi)容。 (請記住,AST在全球範圍內(nèi)被突變。)創(chuàng)建一個與index.js同一文件夾中的稱為img-to-gigure.js的新文件,然後將以下內(nèi)容放置在內(nèi)部:

 Module.exports = options => tree => {
  console.log(tree);
};

要使用此功能,我們需要將其添加到src/index.js:

 const fs = require('fs');
const Unified = require('unified');
const markdown = require('eRext-parse');
const備註2 heaute = require('eREAND-HERAIMET');
const html = require('rehype-stringify');
const imgtofigure = require('./ img-to-to-figure');

const contents = unified()
  。
  。
  .use(imgtofigure)
  。
  .tostring();

console.log(內(nèi)容);

如果我們運行腳本,我們將看到整棵樹在控制臺中登錄:

 {
  類型:“根”,
  孩子們: [
    {
      類型:“元素”,
      tagname:'p',
      特性: {},
      孩子:[陣列],
      位置:[對象]
    },,
    {type:'text',value:'\\ n'},
    {
      類型:“元素”,
      tagname:'p',
      特性: {},
      孩子:[陣列],
      位置:[對象]
    }
  ],,
  位置: {
    開始:{行:1,列:1,偏移:0},
    結(jié)束:{行:4,列:1,偏移:129}
  }
}

(請參閱差異)

將訪問者添加到插件

接下來,我們需要添加一個訪客。這將使我們真正了解該代碼。統(tǒng)一利用了許多帶有Unist-util-*前綴的實用程序軟件包,使我們可以在不編寫自定義代碼的情況下使用AST進行常見的事情。

我們可以使用Unist-Util-訪問來修改節(jié)點。這給了我們一個參觀三個論點的訪問助手:

  • 我們正在與之合作的整個AST
  • 一個謂詞功能,以識別我們要訪問的節(jié)點
  • 對我們想要進行的任何更改的函數(shù)

要安裝,請在命令行中運行以下內(nèi)容:

 NPM安裝Unist-Util-訪問

讓我們通過添加以下代碼在插件中實現(xiàn)訪問者:

 cont訪問= require('Unist-util-visit');

  Module.exports = options => tree => {
    訪問(
      樹,
      //僅訪問包含IMG元素的P標籤
      節(jié)點=>
        node.tagname ==='p'&& node.children.some(n => n.tagname ===='img'),
      節(jié)點=> {
        console.log(node);
      }
    );
};

當我們運行此操作時,我們可以看到只有一個段落節(jié)點記錄了:

 {
  類型:“元素”,
  tagname:'p',
  特性: {},
  孩子們: [
    {
      類型:“元素”,
      tagname:'img',
      屬性:[對象],
      孩子們: [],
      位置:[對象]
    },,
    {type:'text',值:'可愛的corgi! ',位置:[object]}
  ],,
  位置: {
    開始:{行:3,列:1,偏移:16},
    結(jié)束:{行:3,列:102,偏移:117}
  }
}

完美的!我們只會獲得具有要修改的圖像的段落節(jié)點?,F(xiàn)在我們可以開始改變AST!

(請參閱差異)

將圖像包裹在圖元素中

現(xiàn)在我們已經(jīng)擁有圖像屬性,我們可以開始更改AST。請記住,因為AST確實可以很大,所以我們將它們變?yōu)檫m當?shù)牡胤?,以避免?chuàng)建大量副本並可能減慢腳本的速度。

我們首先將節(jié)點的標籤名更改為數(shù)字而不是段落。其餘的細節(jié)現(xiàn)在可以保持不變。

在src/img-to-gigure.js中進行以下更改:

 cont訪問= require('Unist-util-visit');

Module.exports = options => tree => {
  訪問(
    樹,
    //僅訪問包含IMG元素的P標籤
    節(jié)點=>
    node.tagname ==='p'&& node.children.some(n => n.tagname ===='img'),
    節(jié)點=> {
      node.tagname ='figie';
    }
  );
};

如果我們再次運行腳本並查看輸出,我們可以看到我們越來越近了!

 <h1>你好世界! </h1>
<figug> <img  src="%E2%80%9C" alt="如何在抽象語法樹中修改節(jié)點" >” alt =“ cardigan corgi”>
<p>還有更多文字。 </p></figug>

(請參閱差異)

將圖像旁邊的文字用作標題

為了避免需要編寫自定義語法,我們將使用帶有圖像的任何傳遞的文本作為圖像標題。

我們可以假設(shè)通常在Markdown中圖像沒有內(nèi)聯(lián)文字,但是值得注意的是,這可能100%會導(dǎo)致意外字幕出現(xiàn)給人們寫Markdown。我們將在本教程中承擔這種風險。如果您打算將其投入生產(chǎn)中,請確保權(quán)衡權(quán)衡取捨,並選擇最適合您的情況。

要使用文本,我們將在父節(jié)點內(nèi)尋找文本節(jié)點。如果我們找到一個,我們想抓住它的價值作為我們的標題。如果找不到字幕,我們根本不想轉(zhuǎn)換此節(jié)點,因此我們可以儘早返回。

對src/img-to-gigure.js進行以下更改以獲取標題:

 cont訪問= require('Unist-util-visit');

Module.exports = options => tree => {
  訪問(
    樹,
    //僅訪問包含IMG元素的P標籤
    節(jié)點=>
    node.tagname ==='p'&& node.children.some(n => n.tagname ===='img'),
    節(jié)點=> {
      //找到文本節(jié)點
      const textNode = node.children.find(n => n.type ===='text');
 
      //如果沒有字幕,我們不需要轉(zhuǎn)換節(jié)點
      如果(!textNode)返回;
 
      const標題= textnode.value.trim();
 
      console.log({catchion});
      node.tagname ='figie';
    }
  );
};

運行腳本,我們可以看到記錄的標題:

 {標題:'可愛的科吉! ' }

(請參閱差異)

在圖中添加小提琴元素

現(xiàn)在我們有字幕文本,我們可以添加一個圖形以顯示它。我們可以通過創(chuàng)建一個新的節(jié)點並刪除舊文本節(jié)點來做到這一點,但是由於我們正在將文本節(jié)點更改為元素並不那麼複雜。

不過,元素沒有文本,因此我們需要在Figcaption元素的孩子中添加一個新的文本節(jié)點來顯示字幕文本。

對src/img-to-gigure.js進行以下更改,以將標題添加到標記中:

 cont訪問= require('Unist-util-visit');

Module.exports = options => tree => {
  訪問(
    樹,
    //僅訪問包含IMG元素的P標籤
    節(jié)點=>
      node.tagname ==='p'&& node.children.some(n => n.tagname ===='img'),
    節(jié)點=> {
      //找到文本節(jié)點
      const textNode = node.children.find(n => n.type ===='text');

      //如果沒有字幕,我們不需要轉(zhuǎn)換節(jié)點
      如果(!textNode)返回;

      const標題= textnode.value.trim();
      //將文本節(jié)點更改為包含文本節(jié)點的figcaption元素
      textnode.type ='element';
      textnode.tagname ='figcaption';
      textnode.Children = [
        {
          類型:“文本”,
          價值:標題
        }
      ];

      node.tagname ='figie';
    }
  );
};

如果我們使用節(jié)點src/index.js再次運行腳本,我們會看到包裹在圖形元素中的轉(zhuǎn)換圖像,並用figcaption進行了描述!

 <h1>你好世界! </h1>
<figug> <img  src="%E2%80%9C" alt="如何在抽象語法樹中修改節(jié)點" >”

<p>還有更多文字。 </p></figug>

(請參閱差異)

將轉(zhuǎn)換的內(nèi)容保存到新文件

既然我們已經(jīng)進行了大量轉(zhuǎn)換,我們想將這些調(diào)整保存到實際文件中,以便我們可以共享它們。

由於Markdown不包含完整的HTML文檔,因此我們將添加一個名為Rehype-Document的Rehype插件,以添加完整的文檔結(jié)構(gòu)和標題標籤。

通過運行安裝:

 NPM安裝rehype-Document

接下來,對src/index.js進行以下更改:

 const fs = require('fs');
const Unified = require('unified');
const markdown = require('eRext-parse');
const備註2 heaute = require('eREAND-HERAIMET');
const doc = require('rehype-document');
const html = require('rehype-stringify');

const imgtofigure = require('./ img-to-to-figure');

const contents = unified()
	。
	。
	.use(imgtofigure)
    .use(doc,{title:'轉(zhuǎn)換文檔!'})
	.use(html)
	。
	.tostring();

 const outputdir =`$ {process.cwd()}/public`;

  如果(!fs.existsync(outputdir)){
    fs.mkdirsync(outputdir);
  }
 
  fs.WriteFileSync(`$ {outputDir}/home.html`,contents);

再次運行腳本,我們將能夠在Root中看到一個名為public的新文件夾,在內(nèi)部我們會看到home.html。在內(nèi)部,我們的轉(zhuǎn)換文檔保存了!

  

<meta charset="“" utf-8>
<title>轉(zhuǎn)換文檔! </title>
<meta name="“" viewport content="“" width="設(shè)備寬度,初始尺度=">


	<h1>你好世界! </h1>
	<figug> <img  src="%E2%80%9C" alt="如何在抽象語法樹中修改節(jié)點" >”
	<p>還有更多文字。 </p>
</figug>

以上是如何在抽象語法樹中修改節(jié)點的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(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視為關(guān)鍵資源,尤其是使用引入的樣式表、頭部大量內(nèi)聯(lián)CSS以及未優(yōu)化的媒體查詢樣式。 1.提取關(guān)鍵CSS並內(nèi)嵌至HTML;2.延遲加載非關(guān)鍵CSS通過JavaScript;3.使用media屬性優(yōu)化加載如打印樣式;4.壓縮合併CSS減少請求。建議使用工具提取關(guān)鍵CSS,結(jié)合rel="preload"異步加載,合理使用media延遲加載,避免過度拆分與復(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)避免使用促進性技術(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是一個根據(jù)目標瀏覽器範圍自動為CSS屬性添加廠商前綴的工具。 1.它解決了手動維護前綴易出錯的問題;2.通過PostCSS插件形式工作,解析CSS、分析需加前綴的屬性、依配置生成代碼;3.使用步驟包括安裝插件、設(shè)置browserslist、在構(gòu)建流程中啟用;4.注意事項有不手動加前綴、保持配置更新、非所有屬性都加前綴、建議配合預(yù)處理器使用。

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

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

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

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

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

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

See all articles