css選擇器腦圖,css新元素是選擇器還是別的?
css中的所有元素都是選擇器,不論新元素還是舊元素,都是對標(biāo)簽的選擇。CSS中有哪些常用選擇器?
一、CSS選擇器有哪些
CSS中的選擇器很多,比如:ID選擇器,類選擇器,通配符選擇器,偽類選擇器等等,接下來主要介紹常用的幾個。
1.標(biāo)簽選擇器
語法:標(biāo)簽名{},eg:h1{}//為所有的h1元素設(shè)置樣式。
2.ID選擇器
語法:#id名{}//id值唯一不能重復(fù),eg:#top{}//為id為top的元素設(shè)置樣式。
3.類選擇器
語法:.class{},eg:.box{}//為所有的class值為box的元素設(shè)置樣式。
4.組選擇器
語法:選擇器1,選擇器2,選擇器N{},eg:#box1,.box2,p{}//為id為box1,class為box2和p的元素共同設(shè)置樣式。
5、通配符選擇器
語法:*{},eg:*{font-size:16px}//將整個頁面字體大小設(shè)為16px。
6.后代選擇器
語法:選擇器1選擇器2{},eg:p.aa{}//選中指定祖先元素p的指定后代.aa。
7.子元素選擇器
語法:父元素>子元素{},eg:p>.box{}//選中父元素p的指定子元素.box。注意與后代元素選擇器的區(qū)別
8.偽類選擇器
偽類可以用來表示一些特殊的狀態(tài),如:
:link-未訪問過的超鏈接。
:visited-已訪問過的超鏈接。
:hover-鼠標(biāo)經(jīng)過的元素。
:active-正在點(diǎn)擊的元素。
eg:a:hover{color:red}//鼠標(biāo)經(jīng)過a標(biāo)簽時,顏色變?yōu)榧t色。
二、CSS選擇器的優(yōu)先級順序
當(dāng)同一屬性的不同值都作用到了同一個元素時,如果定義的屬性之間有沖突,那么應(yīng)該用誰的值的,這個時候就涉及到CSS的優(yōu)先級順序了。
1.在屬性后面使用!important會覆蓋頁面內(nèi)任何位置定義的元素樣式。
2.作為style屬性寫在元素內(nèi)的內(nèi)部樣式
3.id選擇器
4.類選擇器
5.標(biāo)簽選擇器
6.通配符選擇器
7.瀏覽器自定義或繼承的
css的類選擇器用什么屬性引用?
用于來定義一類可以在同一個頁面內(nèi)重復(fù)利用的樣式。 如比較常用的.clearfix(一般是用于清除浮動),或者自己定義的用于新聞列表的樣式,詳細(xì)的寫好鏈接、列表、邊框以及背景等屬性,有些人還會習(xí)慣把一些常用的屬性作為一個類。
postcss和cssmodule是什么?
postcss是什么?
根據(jù)官網(wǎng)的解釋,它是一種javascript編寫的工具,用來轉(zhuǎn)化css的。可以認(rèn)為它是處理css的插件集合,需要配合諸如webpack、gulp等編譯工具才能展現(xiàn)它強(qiáng)大的能力。
目前社區(qū)提供了非常多的插件,比較有名的如下:
autoprefixer 可以為css的屬性配置兼容性的前綴,不需要手動添加postcss-preset-env 允許你使用更加現(xiàn)代的css特性stylelint 檢查css語法錯誤cssnano css的壓縮器等等postcss的原理如果大家了解babel的原理,那就應(yīng)該聽說過AST即抽象語法樹。編譯器將字符串進(jìn)行詞法分析、語法分析,再做轉(zhuǎn)換,最終達(dá)到預(yù)期的結(jié)果。postcss也是同樣的原理,這個包已經(jīng)為使用者提供了解析的方法parse,并且也提供了很多轉(zhuǎn)化的API,利用這些就可以自己開發(fā)一款postcss插件了。
css Module是什么?先前呢,我們使用css選擇器,它是對整個頁面是有效的,也就是全局的,當(dāng)你每次迭代需求的時候,需要考慮每次添加新的css是否會影響到其他地方,所以我們有時選擇為樣式表添加命名空間。css Module為我們提供了另外一種開發(fā)方式,它可以使css具有局部作用域。
用法如下:
用法是如此的簡單,基本一看就會,css-loader為我們提供了css Module的開關(guān),只要為css-loader添加參數(shù)選項(xiàng)modules就可以開啟。注意:它必須放在less或者sass的loader之前。
那它如何做到局部作用域的呢?
打開element面板可以發(fā)現(xiàn),它把class變成了md5戳,對應(yīng)每個組件,保持唯一。
vue的scoped由此我們聯(lián)想到vue的scoped,它也解決了css局部作用域的問題!
它在dom上生成了一個data屬性,并且給class選擇器添加了屬性選擇器,類似于之前的md5戳。不過由于添加了屬性選擇器,使得選擇器的優(yōu)先級變高了,想在組件外面覆蓋css屬性就變得不那么容易了!
喜歡我的回答就關(guān)注我吧,有問題可以發(fā)表評論,我們一起學(xué)習(xí),共同成長!