增加權重
摘要:子選擇器用兩個常用選擇器,中間通過進行選擇。注意不要和子選擇器選擇對象范圍混淆例如測試子選擇器第一個標簽第二個標簽父元素的后代中的所有元素的字體都會被設置成紅色。通配選擇器通用選擇器用來表示選擇作用于所有元素。
CSS選擇器(Selectors )
一、CSS選擇器作用
CSS選擇器可用于實現對HTML網頁上的元素樣式的一對一,一對多或者多對一的控制。
二、CSS選擇器的種類(這里介紹常用的)
標簽選擇器(Type selectors ):直接引用HTML中的標簽控制相應元素樣式。
例如:
P { font-size: 1.25em; color: yellow; } // P標簽內的字體大小為1.25em,字體顏色為黃色.
類選擇器(Class Selectors ):利用自行定義的類名控制相應元素樣式,用“.”來標志。
例如:
.className{ background-color: red; } // 設置className類的背景顏色為紅色。
ID選擇器(ID Selectors):利用自行定義的ID名(ID名需唯一)控制相應元素樣式,用“#”來標志。(因為選擇器級聯關系,建議非必要時,少用)
例如:
#idName{ width:200px; height:200px; background-color: yellow; } // 設置idName元素寬200px,高200px,背景顏色為黃色。
群組選擇器(Group Selectors ):多種選擇器組合成一組,控制同一種樣式,選擇器間用“,”隔開。(當要設置多個元素擁有同種樣式時,采用群組選擇器更加便捷,而且可以減少CSS代碼。)
例如:
P,.className,#idName{ font-size: 1.25em; color: yellow; background-color: red; } // 設置p標簽,className類,idName相應元素的字體大小為1.25em,字體顏色為紅 色。
子選擇器(Child Selectors ):用兩個常用選擇器,中間通過“>”進行選擇。其中前面的選擇器選擇父元素,后面的選擇器僅選擇父元素第一代孩子中全部對應的元素。
例如:
// 父元素box中的第一代孩子中的span元素字體將被設置為紅色,而包含在p標簽 中的span元素(box元素的第二代孩子)則沒有被影響。測試子選擇器
第一個span標簽第二個span標簽
拓展:
:first-child 匹配包含在其父元素中,每個作為首孩子出現的元素。(不限元素類型)
:last-child 匹配包含在其父元素中,每個作為最后孩子出現的元素。
:only-child 匹配包含其父元素中,每個作為唯一孩子出現的元素。
:nth-child(n) 匹配包含在父元素中,每個作為第n個孩子出現的元素。(n?可以是數字、關鍵詞或公式)
:first-of-type 匹配包含在其父元素中,每個作為首孩子出現的特定類型元素。
:last-of-type 匹配包含在其父元素中,每個作為最后孩子出現的特定類型元素。
:nth-of-type(n) 匹配包含在父元素中,每個作為第n個孩子出現的的特定類型元素。 (n?可以是數字、關鍵詞或公式)
后代選擇器(Descendant Selectors ):用兩個常用選擇器,中間通過空格隔開。其中前面的選擇器選擇父元素,后面的選擇器選擇父元素全部孩子中全部對應的元素。(注意不要和子選擇器選擇對象范圍混淆)
例如:
// 父元素box的后代中的所有span元素的字體都會被設置成紅色。測試子選擇器
第一個span標簽第二個span標簽
相鄰同胞選擇器(Adjacent sibling selectors):用兩個常用選擇器,中間通過“+”進行選擇。作用于與前面選擇器同胞的,且是后面選擇器選擇的第一個元素。
例如
// 第二個span標簽和p標簽同胞故字體將被設置為紅色。測試相鄰同胞選擇器選擇器
第一個span標簽
第二個span標簽 第三個span標簽
偽類選擇器(pseudo-classes Selectors):有時候還會需要用文檔以外的其他條件來實現元素的樣式,例如鼠標懸停時,目標元素的樣式變化等。
例如:
鼠標懸停時,我會改變顏色喲. // 鼠標懸停在鏈接上時,字體顏色由默認的藍色變成紅色。
與此相似的偽類有:
:link 設置元素初始樣式。
:visited 設置元素被訪問后的樣式。
:hover 設置鼠標懸停時樣式。
:active 設置鼠標點擊瞬間的樣式。
// 在CSS 定義中,a:hover 必須被置于 a:link 和 a:visited 之后,a:active 必須被
置于 a:hover 之后,才是有效的。若要同時設置這四種,一般設置順序為LVHA。
// 該種偽類一般被應用在鏈接上,也可以應用在其他元素上,例如表單元素中。
拓展:
:first-line 設置段落的首行樣式。
:first-letter 設置段落的首字母樣式。(若為英文則作用于第一個字母,若為中文則作用于第一個漢字)
屬性選擇器(Attribute Selectors ):通過判斷元素中是否存在html中某個屬性或者符合某個屬性值來選擇作用該元素。
例如一:
我是含有title標簽的p標簽,我將變紅色。
我是不含title標簽的p標簽。
// 選擇將含有title屬性的p標簽元素字體設置成紅色。
例如二:
我是含有title標簽且值為tag1的p標簽。
我是含有title標簽且值為tag2的p標簽,我將變紅色。
// 選擇設置含有title屬性,且title屬性值為tag2的p標簽元素字體為紅色。
通配選擇器:通用選擇器用*來表示,選擇作用于所有元素。
例如:
*{ color:red; } // 所有的元素的字體顏色都將被設置成紅色。
三、樣式繼承
樣式繼承:某元素設置了樣式,則其后代可以繼承其某些樣式設置。
例如:
// 在父元素div中設置了字體大小20px,字體顏色黃色,邊框黑色,1px,實線 ,其后代將繼承了它的字體樣式,但沒有繼承它的邊框樣式。 // 注意:父元素的某些樣式設置時不會被子元素繼承,例如margin(外邊距),border(邊框)等等。樣式繼承
樣式繼承
四、選擇器級聯
級聯:是屬性設置發生沖突時,瀏覽器用來確定元素會應用那種樣式的一套規則。
屬性發生沖突的兩種情況:
第一種:某元素的多個祖先設置了同個屬性的值。
第二種:同時兩個或者兩個以上的樣式設置了同一個屬性。
樣式應用規則:
注意:某些樣式重置后,瀏覽器仍會保留某些初始屬性設置。
例如:
//設置了一樣的字體大小后,瀏覽器仍會保持h標簽初始大小等級。h1標簽
h2標簽
h3標簽
1、當元素的多個祖先同時設置了同個屬性,則元素應用離它最近的祖先設置的樣式。
例如:
// p標簽元素的祖先同時設置了字體顏色,最終p標簽元素最終繼承了離它最近的father類設置的樣式,字體為紅色。樣式繼承
2、元素應用本身直接設置的樣式。
例如:
// p標簽元素最終使用本身設置的字體顏色,藍色。樣式繼承
3、應用選擇器權重高者的樣式。
權重比例如下:
一個標簽選擇器=1個權重
一個類選擇器=10個權重
一個ID選擇器=100個權重
例如:
// 注意:偽元素相當于1個權重,例如::first-line;偽類相當于10個權重,例如::hover。
例如:
// ID選擇器權重高,p標簽元素字體為黃色樣式設置
4、后設置的樣式會覆蓋先設置的樣式。
例如:
// 最終背景顏色為后設置的黃色。
5、!Important可以推翻樣式。
例如:
!important
// 字體顏色最終為紅色。
五、控制樣式應用的方法
第一種:采用!important。
注意:由于!important的權力很大,推翻同屬性的其他樣式設置,經常使用將導致你的樣式不遵從級聯規則。
第二種:改變樣式的選擇器權重。
注意:僅僅采用簡單的加大權重,容易導致選擇器名稱過長。
例如:
// 通過增加一個id選擇器來增加權重,使字體樣式變黃色而不是紅色。增加權重
第三種:微調樣式出現順序。
注意:一般先引用外部樣式,再寫內部樣式。
例如:
css.css文件中的樣式是: p{ color:blue; } Html中部分代碼:我會聽內部樣式的。
// 最終文字為紅色。
又如:
我會聽外部樣式的。
// 最終文字為藍色的。
樣式內容簡介:
HTML呈現網頁的基本內容,CSS呈現網頁的外觀。
CSS樣式有外部樣式和內部樣式。CSS樣式一般包含了兩部分,一部分是選擇器(告訴瀏覽器該樣式的作用對象),一部分是聲明塊。聲明語句包括了屬性和屬性值。
外部樣式:
好處:
1、利于更快的開發(樣式代碼可以復用)和修改網頁。
2、使用戶更快打開網頁。(外部樣式會緩存在用戶的計算機上,用戶再打開相同外部樣式的網頁則不需要重新加載外部樣式。)
壞處:
網頁開發時,有時重新修改了外部樣式,但之前緩存了外部樣式,瀏覽器一般不再重新加載外部樣式,導致與預期效果不同。
內部樣式:只應用于當前網頁,不便于開發和對于整個網站的修改。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/115105.html
摘要:最基本的選擇器是元素選擇器比如選擇器比如還有類選擇器比如。選擇器和類選擇器在速度上的差異基本上沒有關系。現在我們回到討論開始的地方,哪類選擇器是最高效的哪個是會影響選擇器效率的關鍵選擇器寫代碼的時候,關鍵選擇器是能否高效的決定因素。 高效的CSS已經不是一個新的話題了,也不是我一個非得重拾的話題,但它卻是我在工作之時,所感興趣的,關注已久的話題。 有很多人都忘記了,或在簡單的說沒有意識...
摘要:最基本的選擇器是元素選擇器比如選擇器比如還有類選擇器比如。選擇器和類選擇器在速度上的差異基本上沒有關系。現在我們回到討論開始的地方,哪類選擇器是最高效的哪個是會影響選擇器效率的關鍵選擇器寫代碼的時候,關鍵選擇器是能否高效的決定因素。 高效的CSS已經不是一個新的話題了,也不是我一個非得重拾的話題,但它卻是我在工作之時,所感興趣的,關注已久的話題。 有很多人都忘記了,或在簡單的說沒有意識...
摘要:不要在編寫規則時用標簽名或類名不要在編寫規則時用標簽名把多層標簽選擇規則用規則替換,減少查找避免使用子選擇器后代選擇器在中是最昂貴的選擇器。如果你關心頁面性能的話,他們真不該被使用擴展閱讀前端面試題選擇器前端面試題優先級 一、CSS選擇符 CSS選擇符由一些初始化參數組成,這些參數指明了要應用這個CSS規則的頁面元素。 作為一個網站的前端開發工程師,應該避免編寫一些常見的開銷很大的CS...
摘要:不要在編寫規則時用標簽名或類名不要在編寫規則時用標簽名把多層標簽選擇規則用規則替換,減少查找避免使用子選擇器后代選擇器在中是最昂貴的選擇器。如果你關心頁面性能的話,他們真不該被使用擴展閱讀前端面試題選擇器前端面試題優先級 一、CSS選擇符 CSS選擇符由一些初始化參數組成,這些參數指明了要應用這個CSS規則的頁面元素。 作為一個網站的前端開發工程師,應該避免編寫一些常見的開銷很大的CS...
閱讀 2814·2021-10-11 10:57
閱讀 2414·2021-08-27 16:20
閱讀 1394·2019-08-30 13:03
閱讀 1569·2019-08-30 12:50
閱讀 3349·2019-08-29 14:16
閱讀 1566·2019-08-29 11:12
閱讀 1619·2019-08-28 17:53
閱讀 2899·2019-08-27 10:58