真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

css樣式表優(yōu)先級,CSS樣式表的優(yōu)先級

Css中樣式的優(yōu)先級

當在一個樣式聲明中使用一個 !important 規(guī)則時,此聲明將覆蓋任何其他聲明。雖然,從技術上講, !important 與優(yōu)先級無關,但它與最終的結果直接相關。使用 !important 是一個 壞習慣 ,應該盡量避免,因為這破壞了樣式表中的固有的級聯(lián)規(guī)則 使得調試找bug變得更加困難了。當兩條相互沖突的帶有 !important 規(guī)則的聲明被應用到相同的元素上時,擁有更大優(yōu)先級的聲明將會被采用。

網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、成都小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了乳山免費建站歡迎大家使用!

一些經(jīng)驗法則:

什么的情況下可以使用 !important:

A) 覆蓋內聯(lián)樣式

你的網(wǎng)站上有一個設定了全站樣式的 CSS 文件,同時你(或是你同事)寫了一些很差的內聯(lián)樣式。

全局的CSS文件會在全局范圍內設置網(wǎng)站的外觀,而直接在各個元素上定義的內聯(lián)樣式可能會覆蓋您的全局CSS文件。 內聯(lián)樣式和!important都被認為是非常不好的做法,但是有時你可以在CSS文件里用!important去覆蓋內聯(lián)樣式。

在這種情況下,你就可以在你全局的 CSS 文件中寫一些 !important 的樣式來覆蓋掉那些直接寫在元素上的行內樣式。

css的優(yōu)先級順序是怎樣的

當創(chuàng)建的樣式表越來越復雜時,一個標簽的樣式將會受到越來越多的影響,這種影響可能來自周圍的標簽,也可能來自其自身。下面我們從這兩方面去看看 CSS 樣式的優(yōu)先級。

CSS 的繼承性

CSS 的繼承特性指的是應用在一個標簽上的那些 CSS 屬性被傳到其子標簽上??聪旅娴?HTML 結構:

div

p/p/div

如果?div?有個屬性?color: red,則這個屬性將被?p?繼承,即?p?也擁有屬性?color: red。

由上可見,當網(wǎng)頁比較復雜, HTML 結構嵌套較深時,一個標簽的樣式將深受其祖先標簽樣式的影響。影響的規(guī)則是:

CSS 優(yōu)先規(guī)則1:?最近的祖先樣式比其他祖先樣式優(yōu)先級高。

例1:

!-- 類名為 son 的 div 的 color 為 blue --div style="color: red"

div style="color: blue"

div class="son"/div

/div/div

如果我們把一個標簽從祖先那里繼承來的而自身沒有的屬性叫做"祖先樣式",那么"直接樣式"就是一個標簽直接擁有的屬性。又有如下規(guī)則:

CSS 優(yōu)先規(guī)則2:"直接樣式"比"祖先樣式"優(yōu)先級高。

例2:

!-- 類名為 son 的 div 的 color 為 blue --div style="color: red"

div class="son" style="color: blue"/div/div

選擇器的優(yōu)先級

上面討論了一個標簽從祖先繼承來的屬性,現(xiàn)在討論標簽自有的屬性。在討論 CSS 優(yōu)先級之前,先說說 CSS 7 種基礎的選擇器:

ID 選擇器, 如 #id{}

類選擇器, 如 .class{}

屬性選擇器, 如 a[href="segmentfault.com"]{}

偽類選擇器, 如 :hover{}

偽元素選擇器, 如 ::before{}

標簽選擇器, 如 span{}

通配選擇器, 如 *{}

CSS 優(yōu)先規(guī)則3:優(yōu)先級關系:內聯(lián)樣式 ID 選擇器 類選擇器 = 屬性選擇器 = 偽類選擇器 標簽選擇器 = 偽元素選擇器

例3:

// HTMLdiv class="content-class" id="content-id" style="color: black"/div// CSS#content-id {

color: red;}.content-class {

color: blue;}div {

color: grey;}

最終的 color 為 black,因為內聯(lián)樣式比其他選擇器的優(yōu)先級高。

所有 CSS 的選擇符由上述 7 種基礎的選擇器或者組合而成,組合的方式有 3 種:

后代選擇符: .father .child{}

子選擇符: .father .child{}

相鄰選擇符: .bro1 + .bro2{}

當一個標簽同時被多個選擇符選中,我們便需要確定這些選擇符的優(yōu)先級。我們有如下規(guī)則:

CSS 優(yōu)先規(guī)則4:計算選擇符中 ID 選擇器的個數(shù)(a),計算選擇符中類選擇器、屬性選擇器以及偽類選擇器的個數(shù)之和(b),計算選擇符中標簽選擇器和偽元素選擇器的個數(shù)之和(c)。按 a、b、c 的順序依次比較大小,大的則優(yōu)先級高,相等則比較下一個。若最后兩個的選擇符中 a、b、c 都相等,則按照"就近原則"來判斷。

例4:

// HTMLdiv id="con-id"

span class="con-span"/span/div// CSS#con-id span {

color: red;}div .con-span {

color: blue;}

由規(guī)則 4 可見,span 的 color 為 red。

如果外部樣式表和內部樣式表中的樣式發(fā)生沖突會出現(xiàn)什么情況呢?這與樣式表在 HTML 文件中所處的位置有關。樣式被應用的位置越在下面則優(yōu)先級越高,其實這仍然可以用規(guī)則 4 來解釋。

例5:

// HTMLlink rel="stylesheet" type="text/css" href="style-link.css"style type="text/css"@import url(style-import.css); div {

background: blue;}/stylediv/div// style-link.cssdiv {

background: lime;}// style-import.cssdiv {

background: grey;}

從順序上看,內部樣式在最下面,被最晚引用,所以 div 的背景色為 blue。

上面代碼中,@import?語句必須出現(xiàn)在內部樣式之前,否則文件引入無效。當然不推薦使用?@import?的方式引用外部樣式文件,原因見另一篇博客:CSS 引入方式。

CSS 還提供了一種可以完全忽略以上規(guī)則的方法,當你一定、必須確保某一個特定的屬性要顯示時,可以使用這個技術。

CSS 優(yōu)先規(guī)則5:屬性后插有?!important?的屬性擁有最高優(yōu)先級。若同時插有?!important,則再利用規(guī)則 3、4 判斷優(yōu)先級。

例6:

// HTMLdiv class="father"

p class="son"/p/div// CSSp {

background: red !important;}.father .son {

background: blue;}

雖然 .father .son 擁有更高的權值,但選擇器 p 中的 background 屬性被插入了 !important, 所以 p 的 background 為 red。

錯誤的說法

在學習過程中,你可能發(fā)現(xiàn)給選擇器加權值的說法,即 ID 選擇器權值為 100,類選擇器權值為 10,標簽選擇器權值為 1,當一個選擇器由多個 ID 選擇器、類選擇器或標簽選擇器組成時,則將所有權值相加,然后再比較權值。這種說法其實是有問題的。比如一個由 11 個類選擇器組成的選擇器和一個由 1 個 ID 選擇器組成的選擇器指向同一個標簽,按理說 110 100,應該應用前者的樣式,然而事實是應用后者的樣式。錯誤的原因是:權重的進制是并不是十進制,CSS 權重進制在 IE6 為 256,后來擴大到了 65536,現(xiàn)代瀏覽器則采用更大的數(shù)量。。還是拿剛剛的例子說明。11 個類選擇器組成的選擇器的總權值為 110,但因為 11 個均為類選擇器,所以其實總權值最多不能超過 100, 你可以理解為 99.99,所以最終應用后者樣式。

CSS 優(yōu)先級

繼承得到的樣式的優(yōu)先級是最低的;最近的祖先樣式比其他祖先樣式優(yōu)先級高;"直接樣式"比"祖先樣式"優(yōu)先級高。

1、無繼承性的屬性

①? display:規(guī)定元素應該生成的框的類型

②? 文本屬性:

vertical-align:垂直文本對齊

text-decoration:規(guī)定添加到文本的裝飾

text-shadow:文本陰影效果

white-space:空白符的處理

unicode-bidi:設置文本的方向

③? 盒子模型的屬性:width、height、margin 、margin-top、margin-right、margin-bottom、margin-left、border、 border-style、border-top-style、border-right-style、border-bottom-style、border-left-style、border-width、border-top-width、border-right-right、border-bottom-width、border-left-width、border-color、border-top-color、border-right-color、border-bottom-color、border-left-color、border-top、border-right、border-bottom、border-left、padding、padding-top、padding-right、padding-bottom、padding-left

④? 背景屬性:background、background-color、background-image、background-repeat、background-position、background-attachment

⑤? 定位屬性:float、clear、position、top、right、bottom、left、min-width、min-height、max-width、max-height、overflow、clip、z-index

⑥? 生成內容屬性:content、counter-reset、counter-increment

⑦? 輪廓樣式屬性:outline-style、outline-width、outline-color、outline

⑧? 頁面樣式屬性:size、page-break-before、page-break-after

⑨? 聲音樣式屬性:pause-before、pause-after、pause、cue-before、cue-after、cue、play-during

2、有繼承性的屬性

①? 字體系列屬性

font:組合字體

font-family:規(guī)定元素的字體系列

font-weight:設置字體的粗細

font-size:設置字體的尺寸

font-style:定義字體的風格

font-variant:設置小型大寫字母的字體顯示文本,這意味著所有的小寫字母均會被轉換為大寫,但是所有使用小型大寫 字體的字母與其余文本相比,其字體尺寸更小。

font-stretch:對當前的 font-family 進行伸縮變形。所有主流瀏覽器都不支持。

font-size-adjust:為某個元素規(guī)定一個 aspect 值,這樣就可以保持首選字體的 x-height。

②?文本系列屬性

text-indent:文本縮進

text-align:文本水平對齊

line-height:行高

word-spacing:增加或減少單詞間的空白(即字間隔)

letter-spacing:增加或減少字符間的空白(字符間距)

text-transform:控制文本大小寫

direction:規(guī)定文本的書寫方向

color:文本顏色 a元素除外

③? 元素可見性:visibility

④? 表格布局屬性:caption-side、border-collapse、border-spacing、empty-cells、table-layout

⑤? 列表布局屬性:list-style-type、list-style-image、list-style-position、list-style

⑥? 生成內容屬性:quotes

⑦? 光標屬性:cursor

⑧? 頁面樣式屬性:page、page-break-inside、windows、orphans

⑨? 聲音樣式屬性:speak、speak-punctuation、speak-numeral、speak-header、speech-rate、volume、voice-family、 pitch、pitch-range、stress、richness、、azimuth、elevation

3、所有元素可以繼承的屬性

①? 元素可見性:visibility

②? 光標屬性:cursor

4、內聯(lián)元素可以繼承的屬性

①? 字體系列屬性

②? ?除text-indent、text-align之外的文本系列屬性

5、塊級元素可以繼承的屬性

?text-indent、text-align

CSS 7 種基礎的選擇器:

ID 選擇器, 如 #id{}

類選擇器, 如 .class{}

屬性選擇器, 如 a[href="segmentfault.com"]{}

偽類選擇器, 如 :hover{}

偽元素選擇器, 如 ::before{}

標簽選擇器, 如 span{}

通配選擇器, 如 *{}

優(yōu)先級關系 :內聯(lián)樣式 ID 選擇器 類選擇器 = 屬性選擇器 = 偽類選擇器 標簽選擇器 = 偽元素選擇器

屬性后插有?!important?的屬性擁有最高優(yōu)先級

:is()和:not():其偽類在計算選擇器數(shù)量時當做普通選擇器進行計數(shù)。


名稱欄目:css樣式表優(yōu)先級,CSS樣式表的優(yōu)先級
鏈接分享:http://weahome.cn/article/hodisc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部