首頁 web前端 前端問答 css權重有什麼意義

css權重有什麼意義

Dec 09, 2021 pm 01:45 PM
css 權重

CSS權重指的是樣式的優先權,決定了css規則怎樣被瀏覽器解析直到生效;當兩條或多條樣式作用於一個元素時,權重高的那條樣式對元素起作用,而權重相同的,後寫的樣式會覆蓋前面寫的樣式。

css權重有什麼意義

本教學操作環境:windows7系統、CSS3&&HTML5版、Dell G3電腦。

CSS權重指的是樣式的優先權,有兩條或多條樣式作用於一個元素,權重高的那條樣式對元素起作用,權重相同的,後寫的樣式會覆蓋前面寫的樣式。

  • 權重決定了你css規則怎麼被瀏覽器解析直到生效。 「css權重關係到你的css規則是怎麼顯示的」。

  • 當很多的規則被應用在某一個元素上時,權重是一個決定哪一個規則生效,或是優先權的過程。

  • 每個選擇器都有自己的權重。你的每條css規則,都包含一個權重等級。這個等級是由不同的選擇器加權計算的,透過權重,不同的樣式最終會作用到你的網頁中 。

  • 如果兩個選擇器同時作用到一個元素上,權重高者就會生效。

權重的基本規則

1、相同的權重:以後面出現的選擇器為最後規則(例如寫了相同的兩個樣式#content h1 {color:red} )

2、不同的權重,權重值高則生效

3、! important(無限大)>行內樣式(權重1000)>id選擇器(權重100)>類別選擇器(10)=偽類選擇器(10)=屬性選擇器(10)>元素選擇器(1)>通用選擇器(0)>繼承的樣式>瀏覽器預設的樣式。

4、元素選擇器相加永遠沒有類別選擇器的權重大。

選擇器可能會包含一個或多個與權重相關的計算點,若經過計算得到的權重值越大,則認為這個選擇器的權重高

css權重計算

如果多個不同類型的選擇器同時為一個物件設定樣式時,該物件將如何顯示最終樣式,下面給出一個簡單的計算方法。對於常規選擇器它們都擁有一個優先權加權值,說明如下。

  • 標籤選擇器:優先權加權值為 1。

  • 偽元素或偽物件選擇器:優先權加權值為 1。

  • 類別選擇器:優先權加權值為 10。

  • 屬性選擇器:優先權加權值為 10。

  • ID選擇器:優先權加權值為 100。

  • 其他選擇器:優先權加權值為 0,如通配選擇器等。

然後,以上方加權值數為起點來計算每個樣式中選擇器的總加權值數。計算的規則如下:

  • 統計選擇器中 ID 選擇器的個數,然後乘以100。

  • 統計選擇器中類別選擇器的個數,然後乘以 10。

  • 統計選擇器中的標籤選擇器的個數,然後乘以 1。

依此方法類別推,最後把所有加權值數相加,即可得到目前選擇器的總加權值,最後根據加權值來決定哪個樣式的優先權大。

對於由多個選擇器組合而成的複合型選擇器,首先分別計算每個組成選擇器的加權值,接著相加得出當前選擇器的總分,最後根據選擇器的分值大小,分數越高則優先順序越高,那麼就將套用它所設定的樣式。

如果分數相同,則根據位置關係來判斷,靠近物件的樣式就應有高的優先權。

【範例】透過內嵌樣式為同一個元素使用不同的複合選擇器為其設定樣式屬性,透過優先權規則進行比較得出最終樣式屬性值。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>CSS样式优先级</title>
<style type="text/css">
div{
    margin: 0 auto;  /*div居中*/
    text-align: center;  /*文本居中*/
}
.Cent{
    width: 400px;  /*设置宽度,否则居中看不见效果*/
    border: 1px dashed #CC0099;  /*类别选择器设置边框线*/
    padding: 10px 15px;  /*设置间距*/
}
#imp{border: 1px dashed #3366FF;  /*ID 选择器设置边框线*/ }
.Cent{ font-size: 14px;  /*类别选择器设置字体大小*/ }
.Cent p{
    font-size: 16px;  /*类别选择器和标记选择器一起设置字体大小*/
    font-weight: bold;  /*字体加粗*/
}
.Cent .duanluo {
    font-weight: normal;  /*两次类别选择器设置取消加粗效果*/
    line-height:1.5em;  /*段落行髙*/
    text-align:left;  /*文本左对齐*/
}
.Cent .duanluo span{ color:#009966;  /*复合选择器设置字体彦员色*/ }
#imp span{
    color: #669933;  /*ID选择器和标签选择器进行定义*/
    font-weight: bold;  /*字体加粗*/
    font-size:22px;  /*字体22像素,要比较的地方*/
}
span{ font-size: 30px important;  /*<span>标签使用优先级最高的 !important 命令*/ }
span{ font-size: 40px; ! important  /*错误手写 !important 命令的位置*/ }
</style>
</head>
<body>
<div class="Cent" id="imp">
    <p class="duanluo" id="DL"><span>CSS</span>(Cascading Style Sheet,可译为“层叠样式表”或“级联样式表”)是一组格式设置规则,用于控制 Web 页面的外观。通过使用 CSS 样式设置页面的格式,可将页面的内容与表现形式分离。页面内容存放在 HTML 文档中,而用于定义表现形式的 CSS 规则则存放在另一个文件中或 HTML 文档的某一部分,通常为文件头部分。将内容与表现形式分离,不仅可使维护站点的外观更加容易,而且还可以使 HTML 文档代码更加简练,缩短浏览器的加载时间。
</p>
</div>
</body>
</html>
登入後複製

頁面效果如下圖所示。

css權重有什麼意義

在上面範例中,查看瀏覽器效果並進行逐步分析程式碼,需要注意的是測試時:在下面每一步測試時,後面的程式碼需要刪除,故瀏覽器有多次顯示結果,每個步驟都進行瀏覽器顯示查看結果。

第 1 步

實作瀏覽器居中,針對 div 標籤設定元素居中屬性margin: 0 auto;,以及文字居中屬性text-align:center;。

div { margin: 0 auto; text-align: center; }
登入後複製
  • 第2 步驟

Cent 層設定寬度為400 像素,如果沒有寬度設置,則瀏覽器上的居中也會無效,接著設定4 個方向的內間距,最後設定1 像素顏色為粉紅色虛線邊框線。

.Cent{ width: 400px; border: 1px dashed #CC0099; padding:10px 15px; }
登入後複製
  • 第 3 步

通过 ID 值引用 Cent 层,定义 1 像素颜色为粉蓝色虚线边框线,根据前面介绍的优先级规则:类选择器 10 分、ID 选择器 100 分,最终边框线颜色为蓝色。

如果将类别选择器 Cent 层和 ID 选择器 #imp 定义的顺序颠倒过来(如下所示),最终结果依然是蓝色,其原因在于 ID 选择器优先级别高于类选择器。

.Cent{ width: 400px; border: 1px dashed #CC0099; padding: 10px 15px; }
#imp { border: 1px dashed #3366FF; }
登入後複製
  • 第 4 步

.Cent{ } 定义字体大小为 14 像素,而 .Cent p{} 定义字体大小为 16 像素。根据前面介绍的优先级规则:类选择器 10 分、标签选择器 1 分,那么 .Cent{ } 为 10 分、.Cent p{} = 10+1 = 11分,故最终结果为段落字体大小为 16 像素且字体加粗显示。

.Cent { font-size: 14px; }
.Cent p { font-size: 16px; font-weight: bold; }
登入後複製
  • 第 5 步

Cent 层中段落添加 class 名 duanluo,定义字体不再加粗显示、行高 1.5em、文本左对齐,上一步的加粗设置如果字体大小无效,则查看加粗结果,行高设置使用相对单位,这样可以避免字体大小的改变而影响原先段落文字之间的距离。

段落内的 标签设置字体颜色为 #009966,而通过 ID 值设置字体颜色为 #669933。根据前面介绍的优先级规则:类选择器 10 分、标签选择器 1 分、ID 选择器 100 分,故 .Cent .duanluo span 得分 = 10+10+1 = 21分,而 #imp span 得分 = 100+1 = 101 分,最终字体颜色为 #669933。

.Cent .duanluo { font-weight:normal; line-height:1.5em; text-align:left }
.Cent .duanluo span{ color: #009966; }
#imp span{ color:#669933; font-weight:bold; font-size:22px }
登入後複製
  • 第 6 步

在设置段落字体大小时,最终 .Cent p 设置的字体大小为浏览器显示结果:16像素,而通过 ID 选择器定义字体大小后,字体大小变为 22 像素。

这里通过 !important 命令将 字体大小设置为 30 像素,因 !important 命令权限无限大,即分数值较高,暂定值为 1000,故 #imp span 分数为 101,小于 !important 命令值 1000,最终结果为 30 像素。

若span{ font-size:30px !important; }和#imp span{ font-size:5Opx !important; }进行比较,根据前面介绍的优先级规则:ID 选择器 100 分、标签选择器 1 分、!important 命令值 1000,故 span{} 得分为 1000(内部属性中 !important)+1(标签选择器)= 1001 分,而 #imp span 得分为 1000(内部属性中 !important)+100(ID选择器)+1(标签选择器)= 1101 分。

针对 !important 命令进行一次错误的写法并定义字体大小为 40 像素,通过浏览器发现:!important 命令放置在声明语句与分号之间,否则无效。

.Cent p { font-size: 16px; }
#imp span{ color:#669933; font-weight:bold; font-size:22px }
span{ font-size: 30px !important; }
span { font-size: 40px; !important }  /*错误书写方法*/
登入後複製

(学习视频分享:css视频教程

以上是css權重有什麼意義的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

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整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vue中怎麼用bootstrap vue中怎麼用bootstrap Apr 07, 2025 pm 11:33 PM

在 Vue.js 中使用 Bootstrap 分為五個步驟:安裝 Bootstrap。在 main.js 中導入 Bootstrap。直接在模板中使用 Bootstrap 組件。可選:自定義樣式。可選:使用插件。

HTML,CSS和JavaScript的角色:核心職責 HTML,CSS和JavaScript的角色:核心職責 Apr 08, 2025 pm 07:05 PM

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

了解HTML,CSS和JavaScript:初學者指南 了解HTML,CSS和JavaScript:初學者指南 Apr 12, 2025 am 12:02 AM

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

bootstrap怎麼設置框架 bootstrap怎麼設置框架 Apr 07, 2025 pm 03:27 PM

要設置 Bootstrap 框架,需要按照以下步驟:1. 通過 CDN 引用 Bootstrap 文件;2. 下載文件並將其託管在自己的服務器上;3. 在 HTML 中包含 Bootstrap 文件;4. 根據需要編譯 Sass/Less;5. 導入定製文件(可選)。設置完成後,即可使用 Bootstrap 的網格系統、組件和样式創建響應式網站和應用程序。

bootstrap怎麼寫分割線 bootstrap怎麼寫分割線 Apr 07, 2025 pm 03:12 PM

創建 Bootstrap 分割線有兩種方法:使用 標籤,可創建水平分割線。使用 CSS border 屬性,可創建自定義樣式的分割線。

bootstrap怎麼插入圖片 bootstrap怎麼插入圖片 Apr 07, 2025 pm 03:30 PM

在 Bootstrap 中插入圖片有以下幾種方法:直接插入圖片,使用 HTML 的 img 標籤。使用 Bootstrap 圖像組件,可以提供響應式圖片和更多樣式。設置圖片大小,使用 img-fluid 類可以使圖片自適應。設置邊框,使用 img-bordered 類。設置圓角,使用 img-rounded 類。設置陰影,使用 shadow 類。調整圖片大小和位置,使用 CSS 樣式。使用背景圖片,使用 background-image CSS 屬性。

bootstrap按鈕怎麼用 bootstrap按鈕怎麼用 Apr 07, 2025 pm 03:09 PM

如何使用 Bootstrap 按鈕?引入 Bootstrap CSS創建按鈕元素並添加 Bootstrap 按鈕類添加按鈕文本

bootstrap怎麼調整大小 bootstrap怎麼調整大小 Apr 07, 2025 pm 03:18 PM

要調整 Bootstrap 中元素大小,可以使用尺寸類,具體包括:調整寬度:.col-、.w-、.mw-調整高度:.h-、.min-h-、.max-h-

See all articles