css派生選擇器優先級,css3中偽類選擇器由什么組成?
w3c規范中偽類有:
active、hover、link、visited 【css1】
所有主流瀏覽器都支持以上偽類,但是只在對標簽上的支持最好。
【css2】的有3個
focus : 如果規定了<!doctype>,將在主流瀏覽器&ie8+中支持(否則ie不支持)
first-child:必須聲明<!doctype>才能夠確保在ie中正常支持
lang:如果規定了<!doctype>,將在主流瀏覽器&ie8+中支持(否則ie不支持)
css后代選擇器可以寫幾個?
css后代選擇器可以寫5個,本來css的后代選擇器可以選擇多個,但是層級越深,效率越低,所以最好寫5個就行
什么是派生選擇器?
通過依據元素在其位置的上下文關系來定義樣式 比如 div span{color:red;} 如果之前有定義 span{color:blue;}那么 派生選擇器就是 不需要再去設置一個class 使用上下文關系來定義你需要的樣式比如這里 需要變成紅色 比單個span具有更高優先級 這樣可以讓html代碼更加簡潔 id 選擇器具有更高的優先級
postcss和cssmodule是什么?
postcss是什么?
根據官網的解釋,它是一種javascript編寫的工具,用來轉化css的??梢哉J為它是處理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屬性就變得不那么容易了!
喜歡我的回答就關注我吧,有問題可以發表評論,我們一起學習,共同成長!