CSS基礎知識-選擇器的種類及優先順序
一、CSS選擇器常見的有幾種?
常見的有
1、id選擇器
見自己編寫的如下程式碼:
html>Document 這是id選擇器
這不是id選擇器
2、class選擇器
html>Document 這是class選擇器
這不是class選擇器
3、屬性選擇器
3.1 屬性名加屬性值型
html>Document
3.2純屬性名型
html>Document 這裡是匿名者的圖片 ![Anonymous](http://upload-images.jianshu.io/upload_images/2166980-53ed3d75ce5ae54c.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![AnonymousPicture](http://upload-images.jianshu.io/upload_images/2166980-3494a3e338066626.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![AnonymousPicture](http://upload-images.jianshu.io/upload_images/2166980-3494a3e338066626.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4、分組選擇器
用“,”隔開,表示該組元素屬性都會作用
html>Document 這是h1標題
這也是h1標題
這是div裡的h1
這是div裡的p
5、派生選擇器
html>Document 這是h1標題
這是div裡的h1
這也是div裡的h1標題
這是div裡的p
6、偽類選擇器
比如.hover、::selection、.action、:first-child、:last-child、:first-of-type、:last-of-type、:nth-of-type(n)、:nth-of-last-type(n)等
html>Document 這是偽類選擇器
又例如:
html>Document 選中後字型變紅色背景變藍色
選中後不變色
7、偽元素選擇器
:after、:before等
html>Document
- 我的前面需要增加“這是前置字”,我的後面需要增加“這是後置字”
- 我的前面需要增加“這是前置字”,我的後面需要增加“這是後置字”
- 我的前面需要增加“這是前置字”,我的後面需要增加“這是後置字”
- 我的前面需要增加“這是前置字”,我的後面需要增加“這是後置字”
8、組合選擇器
比如E,F/E F(後代選擇器)/E>F(子元素選擇器)/E+F(直接相鄰元素選擇器----匹配之後的相鄰同級元素)/E~F(普通相鄰元素選擇器----匹配之後的同級元素)
html>Document 這是外層DIV這是h1大標題
這是外層DIV裡的div這是中層div的h1標題1
這是中層div裡的段落
這是中層div的h1標題2
這是內層div這是內層div的h1標題
這也是h1大標題
這還是h1大標題
二、選擇器的優先順序是怎樣的?
選擇器優先順序由高到低分別為:
!important > 作為style屬性寫在元素標籤上的內聯樣式 >id選擇器>類選擇器>偽類選擇器>屬性選擇器>標籤選擇器> 萬用字元選擇器(* 應少用)>瀏覽器自定義;
當比較多個相同級別的CSS選擇器優先順序時,它們定義的位置將決定一切。下面從位置上將CSS優先順序由高到低分為六級:
1、位於
標籤裡的中所定義的CSS擁有最高階的優先權。選擇器註明的越具體,某些情況下則其優先順序也越高;若重複寫了則以最後的為準;
2、第二級的優先屬性由位於 標籤中的 @import 引入樣式表所定義。
3、第三級的優先屬性由標籤所引入的樣式表定義。
4、第四級的優先屬性由標籤所引入的樣式表內的 @import 匯入樣式表定義。
5、第五級優先的樣式有使用者設定。
6、最低階的優先權由瀏覽器預設。
三、class 和 id 的使用場景?
class使用場景:需要某些特定樣式的標籤則放在同一個class中,需要此樣式的標籤可再新增此類。(class不可被javascript中的GetElementByID函式所呼叫)
id使用場景:1、根據提供的唯一id號快速獲取標籤物件,如:document.getElementById(id) ;2、用於充當label標籤for屬性的值:示例:,表示單擊此label標籤時,id為userid的標籤獲得焦點
四、使用CSS選擇器時為什麼要劃定適當的名稱空間?
劃定適當的名稱空間可:
1、提高程式碼的可讀性;
2、便於維護管理;
3、保持程式碼的可擴充性;
五、以下選擇器分別是什麼意思?
詳見註釋:
#header{ } /* 這是id選擇器header*/ .header{ }/*這是類選擇器header*/ .header .logo{ }/*這是類選擇器header後的類logo*/ .header.mobile{ }/* 滿足類header及類mobile */ .header p, .header h3{ }/* 類選擇器中的header 段落p 和類選擇器中的標題h3 */ #header .nav>li{ }/*id選擇器中的header後的類選擇器nav的直接子元素li */ #header a:hover{ }/*id選擇器header後的a標籤hover偽類*/
六、列出你知道的偽類選擇器
:hover /:active/ :link /:visited/::selection/:focus/:first-child/:nth-child(n)/:first-of-type/:nth-of-type(n)/:last-child/:nth-last-child(n)/:last-of-type/:nth-last-of-type(n)
七、:first-child和:first-of-type的作用和區別
E:first-child的作用 是選擇E的父元素中的所有第一個子元素的E標籤;
E:first-of-type的作用是 選擇E的父元素中的第一個E型別的標籤;
根據字面意思可以很好的理解這兩者的區別:E:first-child首選是E的父元素中的第一個子元素,在這些子元素中選中E標籤;E:first-of-type首選是E的父元素的第一個同型別的(E)標籤;舉個例子
html>Document 這是body裡的第一個子元素
這是body裡的第二個子元素
這是body裡的第三個子元素
這是body中的div中裡的第二個子元素
這是body中的div中裡的第三個子元素
這是body裡的第四個子元素
上述程式碼的執行結果為:“這是body裡的第一個子元素”及“這是body中的div中裡的第二個子元素”字均變為紅色;若將
八、執行如下程式碼,解析下輸出樣式的原因。
aa
bb
ccc
執行結果為aa變紅,aa、bb背景色均變為藍色,ccc不做任何變化;
原因為:
.item1:first-child{ color: red; }
上述程式碼的作用是選擇item1中的父元素中的第一個子元素並使其字型變為紅色;當執行到 aa
時,aa變為紅色,因為此時段落p是item1父元素div中的第一個子元素,而h3中的bb及h3中的ccc的父元素也是div,但div中的第一個子元素為p,因此bb及ccc字型顏色均為預設值即不會變成紅色;
.item1:first-of-type{ background: blue; }
上述程式碼的作用是選擇item1中的父元素中的第一個同型別標籤並使其背景色變為藍色;當執行到 aa
時,因p為item1的父元素div的第一個型別的標籤,且p也為item1類,因此p中的aa背景色會變成藍色;當執行到
時,同理,h3中的bb背景色也會變成藍色;當執行到bb
時,因父元素div中的第一個h3型別的元素已經存在,故h3中的ccc背景色還是預設的;ccc
故:執行結果為aa變紅,aa、bb背景色均變為藍色,ccc不做任何變化;
九、 text-align: center的作用是什麼,作用在什麼元素上?能讓什麼元素水平居中?
作用是使得文字或者img標籤等一些內聯物件(或與之相似的元素)居中;其可作用在塊級元素(比如p,h1等)中的內行元素物件上;如:
html>Document aa
bb
ccc
![](http://upload-images.jianshu.io/upload_images/2166980-347883c49bd3e5d5.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
上述程式碼可將div中的p及h3中的文字和圖片均進行居中了。
另margin:0 auto 是設定塊級元素(或類似元素)的居中,注意與text-align:center的區別,可詳見:http://www.cnblogs.com/zhwl/p/3529473.html
十、如果遇到一個屬性想知道相容性,在哪檢視?
可在caniuse.com和w3school.com.cn等網站進行查詢。
十一、補充:關於 :nth-child選擇器
上述程式碼要實現.second
同樣效果的選擇器,可採用以下方法:
1、
.parent :nth-child(2) { /* :nth-child(2)前有空格! 意義是父元素中的第二個子元素*/ height: 200px; border-color: blue; }
2、
.children:nth-child(2) { /* :nth-child(2)前無空格! 意義是屬於其父元素中的第二個子元素.children*/ height: 200px; border-color: blue; }
3、
.parent .children:nth-child(2) { /* :nth-child(2)前無空格! 意義是屬於 .parent元素中的第二個子元素.children*/ height: 200px; border-color: blue; }
**本文版權歸 所有,如需轉載請註明出處。謝謝! *
作者:該帳號已被查封
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/964/viewspace-2813855/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- css 選擇器優先順序CSS
- css選擇器的優先順序CSS
- CSS 選擇器的優先順序CSS
- CSS3選擇器及優先順序CSSS3
- CSS 基礎(盒模型、選擇器、權重、優先順序)CSS模型
- 深入理解 CSS:基礎概念、註釋、選擇器及優先順序CSS
- CSS 選擇器優先順序規則CSS
- CSS之選擇器及其優先順序CSS
- 深入理解CSS選擇器優先順序CSS
- ***CSS魔法堂:選擇器及其優先順序CSS
- CSS入門十二:選擇器的優先順序CSS
- 真正理解"CSS選擇器的優先順序"CSS
- css知多少(6)——選擇器的優先順序CSS
- css 選擇器優先順序的計算過程CSS
- 第17天:CSS引入、選擇器優先順序(中級)CSS
- CSS 連結偽類選擇器順序原理CSS
- CSS優先順序CSS
- css選擇器順序的小技巧CSS
- CSS之CSS和html整合方式及優先順序CSSHTML
- CSS的處理優先順序CSS
- css樣式分類、定義、優先順序CSS
- css優先順序彙總CSS
- 聊聊功能優先順序的制定——基礎篇
- CSS選擇器種類及使用方法CSS
- python運算子及優先順序順序Python
- css 選擇器基礎CSS
- CSS基礎選擇器CSS
- 深入理解css優先順序CSS
- css選擇器的解析順序簡單介紹CSS
- 何為CSS 樣式優先順序CSS
- Linux基礎命令---升值程式優先順序niceLinux
- [java基礎] 之 表示式和運算子的優先順序Java
- Java常見知識點彙總(⑤)——運算子優先順序Java
- Linux基礎命令---設定程式優先順序niceLinux
- 關於CSS樣式的優先順序問題CSS
- Linux基礎命令—修改程式優先順序reniceLinux
- Linux基礎命令---修改程式優先順序reniceLinux
- java基礎:執行緒方法之設定優先順序Java執行緒