欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

css選擇器對優先級無影響,postcss和cssmodule是什么

老白2年前25瀏覽0評論

css選擇器對優先級無影響,postcss和cssmodule是什么?

postcss是什么?

根據官網的解釋,它是一種javascript編寫的工具,用來轉化css的。可以認為它是處理css的插件集合,需要配合諸如webpack、gulp等編譯工具才能展現它強大的能力。

目前社區提供了非常多的插件,比較有名的如下:

autoprefixer 可以為css的屬性配置兼容性的前綴,不需要手動添加postcss-preset-env 允許你使用更加現代的css特性stylelint 檢查css語法錯誤cssnano css的壓縮器等等postcss的原理

如果大家了解babel的原理,那就應該聽說過AST即抽象語法樹。編譯器將字符串進行詞法分析、語法分析,再做轉換,最終達到預期的結果。postcss也是同樣的原理,這個包已經為使用者提供了解析的方法parse,并且也提供了很多轉化的API,利用這些就可以自己開發一款postcss插件了。

css Module是什么?

先前呢,我們使用css選擇器,它是對整個頁面是有效的,也就是全局的,當你每次迭代需求的時候,需要考慮每次添加新的css是否會影響到其他地方,所以我們有時選擇為樣式表添加命名空間。css Module為我們提供了另外一種開發方式,它可以使css具有局部作用域。

用法如下:

用法是如此的簡單,基本一看就會,css-loader為我們提供了css Module的開關,只要為css-loader添加參數選項modules就可以開啟。注意:它必須放在less或者sass的loader之前。

那它如何做到局部作用域的呢?

打開element面板可以發現,它把class變成了md5戳,對應每個組件,保持唯一。

vue的scoped

由此我們聯想到vue的scoped,它也解決了css局部作用域的問題!

它在dom上生成了一個data屬性,并且給class選擇器添加了屬性選擇器,類似于之前的md5戳。不過由于添加了屬性選擇器,使得選擇器的優先級變高了,想在組件外面覆蓋css屬性就變得不那么容易了!

喜歡我的回答就關注我吧,有問題可以發表評論,我們一起學習,共同成長!

css選擇器對優先級無影響,postcss和cssmodule是什么

如果css內聯樣式和外部樣式重復會有效果么?

內聯、外部沒有太大的關系重點是選擇器的優先級,優先級別高的會覆蓋級別低的不同的樣式會疊加,如果是同一種樣式,則會覆蓋同一級優先級級別的選擇器,后者高于前者(在網頁中的位置)

css的類選擇器用什么屬性引用?

用于來定義一類可以在同一個頁面內重復利用的樣式。 如比較常用的.clearfix(一般是用于清除浮動),或者自己定義的用于新聞列表的樣式,詳細的寫好鏈接、列表、邊框以及背景等屬性,有些人還會習慣把一些常用的屬性作為一個類。

怎樣區分后代選擇器和子代選擇器?

1.第一從符號上來區分后代選擇器:是用空格來分隔開來 例如<h1>一個<span>人</span>的戰爭</h1> 就是h1 span{}子代選擇器:用特殊符號> 例如 h1>span{}

2.第二從用法上區分后代選擇器html部分:<ul class="study"> <li>物理 <ul> <li>力學</li> <li>聲學</li> <li>電磁學</li> </ul> </li> <li>數學 <ul> <li>微積分</li> <li>概率論</li> <li>博弈論</li> </ul> </li> </ul> css部分//使用子代選擇器的效果.study >li{ border:1px solid red;/*只給物理和數學加一個紅色方框*/}//使用后代選擇器的效果.study li{ border:1px solid red;/*給物理 力學 聲學 電磁學 和數學 微積分 概率論博弈論都加一個紅色方框*/}這說明子代是他是單傳只給物理和數學就斷子絕孫,后代是一代傳一代。

子代選擇器時效果圖:

后代選擇器時效果圖: