在CSS基礎學習的篇章中,從第四篇博客開始說選擇器,到昨天基本已經說完了。今天我們總結一下,選擇器作
用:告知瀏覽器需要設置哪個dom元素的樣式。最后來說說選擇器一個重要的問題,選擇器的優先級。判斷優先級的
方法就是嘗試!!!
### 一,簡單選擇器的優先級
簡單的選擇器包括我們在第四篇,第五篇,第六篇博客的元素選擇器(標簽選擇器),類選擇器和id選擇器。
我們來試驗:
~~~
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>CSS選擇器優先級</title>
<style type="text/css">
/*標簽選擇器的渲染紅色*/
div{
background-color:#FF0000;
width:900px;
height:400px;
}
/*類選擇器的渲染藍色*/
.test{
background-color:#0000FF;
width:900px;
height:300px;
}
/*id選擇器的渲染紫色*/
#test{
background-color:#FF00FF;
width:900px;
height:200px;
}
</style>
</head>
<body>
<div id="test" class="test"></div>
</body>
</html>
~~~
運行的結果為:id選擇器的優先級最高。

注釋掉id選擇器后的結果為:類選擇器的優先級居其次。

因此這三個簡單選擇器的優先級順序為:HTML標簽屬性>id選擇器>類選擇器>元素選擇器
### 二,同類型選擇器的優先級
同類型:指的是相同類型的選擇器,理論上優先級是一樣的。比如:div和p。.btn和.button。#header和
#footer,它們的優先級是相同的。但是當同類型的選擇器作用到相同的HTML標簽上的時候優先級就不一樣了。
我們繼續試驗:
~~~
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>CSS選擇器優先級</title>
<style type="text/css">
/*test類選擇器的渲染淺綠色*/
.test{
background-color:#00FF00;
width:900px;
height:200px;
}
/*test1類選擇器的渲染淺藍色*/
.test1{
background-color:#00FFFF;
width:900px;
height:200px;
}
</style>
</head>
<body>
<div class="test test1"></div>
</body>
</html>
~~~
運行的結果為:

我們嘗試的結果為:CSS規則寫在最后面的生效!!
如果這還不能信服我們再來嘗試< div class="test1 test">< /div>有什么不一樣的效果?
~~~
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>CSS選擇器優先級</title>
<style type="text/css">
/*test類選擇器的渲染淺綠色*/
.test{
background-color:#00FF00;
width:900px;
height:200px;
}
/*test1類選擇器的渲染淺藍色*/
.test1{
background-color:#00FFFF;
width:900px;
height:200px;
}
</style>
</head>
<body>
<div class="test test1"></div>
<hr/>
<div class="test1 test"></div>
</body>
</html>
~~~
運行的結果為:

最終我們得出的結論依然是:同類型的選擇器,CSS規則寫在最后面的生效!
### 三,選擇器的優先級
CSS選擇器組合出很多復雜的選擇器規則,那么我們就不能像簡單的選擇器那樣一個一個嘗試。下面我們介紹一
個很實用的判斷優先級的方法。
判斷優先級:我們約定?id選擇器的權重為100,類選擇器權重為10,標簽選擇器權重為1。一個復雜的選擇器的權
重等于所有選擇器的權重之和。一般,選擇器越特殊,優先級(權重)越高。
我們先來看兩個復雜的選擇器規則:
第一個選擇器的權重為:1+10+10+1=22
? ? ?div.test .item span{
? ? ?background-color:#00FF00;
? ? ?}
第二個選擇器的權重為:100+1+1=102
? ? ?#test div span{
? ? ?background-color:#FF0000;
? ? ?}?
從我們約定的規則來看,顯然是第二個生效!
~~~
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>CSS選擇器優先級</title>
<style type="text/css">
/*第一個選擇器渲染的是綠色*/
div.test .item span{
background-color:#00FF00;
}
/*第一個選擇器渲染的是紅色*/
#test div span{
background-color:#FF0000;
}
</style>
</head>
<body>
<div id="test" class="test">
<div class="item">
<span>12345</span>
</div>
</div>
</body>
</html>
~~~
運行的結果為與我們的理論是一致的!

那么我們可能會有一個疑問:同樣的權重,那個選擇器起作用呢?從一系列的理論和試驗我們可以得出這與同類
型選擇器的優先級問題相似,我們還是能輕易的得出結論:同樣的權重要選擇順序最后的生效。
### 四,!important
樣式最高優先級:無視優先級,在樣式的一條聲明的最后分號前加上,使該樣式起作用。
我們還是來嘗試:
~~~
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>CSS選擇器優先級</title>
<style type="text/css">
/*元素選擇器渲染的是紅色*/
div{
color:#0000FF;
}
/*類選擇器渲染的是藍色*/
.test{
color:#FF0000;
}
</style>
</head>
<body>
<div class="test">攻城課堂</div>
</body>
</html>
~~~
首先運行的結果我們肯定知道是紅色,那么我們在標簽選擇器后面!important,我們再來運行結果看看?
~~~
/*元素選擇器渲染的是紅色*/
div{
color:#0000FF!important;
}
~~~
運行的結果為:

關于選擇器的優先級我也就了解了這些,CSS選擇器就告一段落了!!
? ? ?
- 前言
- HTML學習1:Dreamweaver8的安裝
- HTML學習2:初識HTML
- HTML學習3:常用標簽之文本標簽
- HTML學習4:常用標簽之列表標簽
- HTML學習5:常用標簽之圖像標簽
- HTML學習6:常用標簽之超鏈接標簽
- HTML學習7:常用標簽之表格標簽
- HTML學習8:常用標簽之框架標簽
- HTML學習9:常用標簽之表單標簽
- HTML學習10:表單格式化
- HTML學習11:HTTP 方法
- HTML學習12:其他常見標簽之頭標簽
- HTML學習13:其他常見標簽之體標簽
- 輕松學習JavaScript一:為什么學習JavaScript
- 輕松學習JavaScript二:JavaScript語言的基本語法要求
- 輕松學習JavaScript三:JavaScript與HTML的結合
- 輕松學習JavaScript四:JS點擊燈泡來點亮或熄滅這盞燈的網頁特效映射出JS在HTML中作用
- 輕松學習JavaScript五:JavaScript的變量和數據類型
- 輕松學習JavaScript六:JavaScript的表達式與運算符
- 輕松學習JavaScript七:JavaScript的流程控制語句
- 輕松學習JavaScript八:JavaScript函數
- 輕松學習JavaScript九:JavaScript對象和數組
- 輕松學習JavaScript十:JavaScript的Date對象制作一個簡易鐘表
- 輕松學習JavaScript十一:JavaScript基本類型(包含類型轉換)和引用類型
- 輕松學習JavaScript十二:JavaScript基于面向對象之創建對象(一)
- 輕松學習JavaScript十二:JavaScript基于面向對象之創建對象(二)
- 輕松學習JavaScript十三:JavaScript基于面向對象之繼承(包含面向對象繼承機制)
- 輕松學習JavaScript十四:JavaScript的RegExp對象(正則表達式)
- 輕松學習JavaScript十五:JavaScript之BOM簡介
- 輕松學習JavaScript十六:JavaScript的BOM學習(一)
- 輕松學習JavaScript十七:JavaScript的BOM學習(二)
- 輕松學習JavaScript二十九:JavaScript中的this詳解
- CSS基礎學習一:CSS概述
- CSS基礎學習二:如何創建 CSS
- CSS基礎學習三:CSS語法
- CSS基礎學習四:元素選擇器
- CSS基礎學習五:類選擇器
- CSS基礎學習六:id選擇器
- CSS基礎學習七:屬性選擇器
- CSS基礎學習八:派生選擇器
- CSS基礎學習九:偽類
- CSS基礎學習十:偽元素
- CSS基礎學習十一:選擇器的優先級
- CSS基礎學習十二:CSS樣式
- CSS基礎學習十三:盒子模型
- CSS基礎學習十四:盒子模型補充之display屬性設置
- CSS基礎學習十五:盒子模型補充之外邊距合并
- CSS基礎學習十六:CSS盒子模型補充之border-radius屬性
- CSS基礎學習十七:CSS布局之定位
- CSS基礎學習十八:CSS布局之浮動
- CSS基礎學習十九:CSS布局之圖文混排,圖像簽名,多圖拼接和圖片特效
- DIV+CSS實操一:經管系網頁總體模塊布局
- DIV+CSS實操二:經管系網頁添加導航欄和友情鏈接欄
- DIV+CSS實操三:經管系網頁內容模塊添加標題欄和版權信息模塊
- DIV+CSS實操四:經管系網頁內容模塊內容添加(一)
- DIV+CSS實操五:經管系網頁內容模塊內容添加(二)
- DIV+CSS實操六:經管系網頁添加導航欄下拉菜單
- DIV+CSS實操七:中文系內容模塊控制文本不換行和超出指定寬度后用省略號代替
- JS中實現字符串和數組的相互轉化