亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

該不該使用ID選擇器?淺談對CSS的ID選擇器的使用建議

OSChina   發(fā)布時間:2016-07-11 11:34:05   作者:紅薯   我要評論
在不嵌套單獨使用ID選擇器的情況下,它是比較快的,然而各種各樣的原因使開發(fā)者們拋棄對ID選擇器的使用.究竟該不該使用ID選擇器?這里我們就來淺談對CSS的ID選擇器的使用建議

關于ID選擇器
和class選擇器不同,這里使用#
class的值不同標簽可以發(fā)生重復。但是id不允許?。?!
id選擇器不能結合使用
id屬性通常和js配合使用

CSS Code復制內容到剪貼板
  1. #label {   
  2.     background-colorred;   
  3. }  

思考
最近我在對 CSS 的樣式進行一些性能測試,然后我的一些好友問我:為什么你不使用 IDs 來作為頁面上一些特定的內容部分呢?
這個問題很難回答,有下面幾個理由:
1.頁面中的該元素無法重用
2.螺旋式下降導致的特異性
3.通過 IDs 用來標識一些非常特殊的內容,但犧牲了抽象性
4.性能方面可通過其他方式來解決
5.下面我們針對這四點進行深入探討。

無法重用頁面的元素
IDs 對程序員來說相當于是單例,一個頁面中不允許存在兩個相同的 id(當然瀏覽器不會報錯就是了),這就意味著你不可能重用某個元素,相當于是一對一的關系。而根據我的速度測試,如果一段 CSS 代碼只對一個元素起作用對速度并不利,同時也帶來了 CSS 膨脹的額外開銷。

由螺旋式下降導致的特異性
CSS 關于重載的兩個方法:
1.級聯(lián): (任何下一級的元素都可以重寫上一級CSS規(guī)則)
2.特異性: the idea of creating weight by using weighted selectors.
為什么我說這里是一個螺旋式下降,因為為了要重載一個優(yōu)先級很高的規(guī)則,我必須給它設置添加再高的優(yōu)先級。

CSS Code復制內容到剪貼板
  1. .ModuleOfficeList .property-checkbox input {display:block;margin-bottom:8px;_border:0px !important;}    
  2. .ModuleOfficeList .property-checkbox,   
  3. .ModuleOfficeList .new-icon,   
  4. .ModuleOfficeList .open-icon {display:block}    
  5. ....uid-officelistings .property-checkbox {display:none !important; }  

上面是我在 2005 年的一段真實的代碼,上面的代碼我必須在最后使用 !important 規(guī)則來對選擇器規(guī)則進行重新排序。這很不好。一旦我們這樣做......它需要我們更多的時間去追捕父ID,我們將推翻當前的特異性。這是不友好的而且不利于維護,最終你會掉進入自己挖好的洞,只有重構才能擺脫這個噩夢。

另一方面:
我聽到少數的一些聲音關于使用 ID 選擇器的好

使用 ID 選擇器更快
是的,這一點的確沒錯,而且我也曾經證明過。但是性能的表現(xiàn)微乎其微,但當你使用嵌套其他選擇器時性能就下降了:

CSS Code復制內容到剪貼板
  1. #profile-module {...}    
  2. #profile-module li {...}    
  3. .profile-module li {...}  

第二個選擇器就沒有第三個來的快,因為CSS是從右到左的,因此 li 會先被掃描,因此通過 ID 進行定位將直接被忽略。
關于 CSS 選擇器的性能問題,請看 Steve Souders explains how selector speed works.

IDs 就是單例的意思
很多人會在頁面中定義 ID ,但某個元素在所有頁面中只出現(xiàn)一次的話,用 ID 選擇器是沒問題的。我唯一聲明的是所有代碼都應該是可重用的,如果能避免還是盡量避免。

特別說明
最后需要說明的是,我并不是要大家完全拋棄使用 ID,ID 可以加速 JavaScript 執(zhí)行,在文檔中傳達具體的意義。
我只是不建議在 CSS 中使用 ID 選擇器,當然,決定權在于你自己。

相關文章

  • 簡要講解CSS中的類型選擇器、ID選擇器、類選擇器

    這篇文章主要介紹了CSS中的類型選擇器和ID選擇器以及類選擇器,選擇器時CSS入門學習中的基礎知識,需要的朋友可以參考下
    2016-02-18
  • 英文教程:五種CSS選擇器類型

    網頁制作Webjx文章簡介:英文教程:五種CSS選擇器類型. CSScommandsareusuallygroupedinthecurlybracestomakeasetofrules.Followingarethevariouswaysavaila
    2009-04-02
  • IE7對css選擇器的改進-CSS教程-網頁制作-網頁教學網

    1、對偽類的支持。IE6和更低的版本對于偽類的支持僅限于a標簽,諸如“:hover”、“:active”、“:focus”之類的偽類理論上是應該適用于所有
    2008-10-17
  • CSS屬性選擇器的四種格式-CSS教程-網頁制作-網頁教學網

      屬性選擇器(AttributeSelectors),或許你不應該對屬性選擇器感到陌生,從本質上說,id跟類選擇器其實就是屬性選擇器,只不過是選擇了id或者類的值(value)而已。  
    2008-10-17
  • 最常用的五類CSS選擇器-CSS教程-網頁制作-網頁教學網

     一些新手朋友對選擇器一知半解,不知道在什么情況下運用什么樣的選擇器,這是一個比較頭疼的問題,針對新手朋友,對CSS選擇器作一些簡單的說明,希望能對大家的學習工作
    2008-10-17
  • 四種css 偽類選擇器

    偽類,用于給元素的片段添加樣式,這如何理解呢?比如你要讓一個段落的第一行的文字加粗,那么這個選擇器是不二之選
    2012-04-18
  • CSS3 選擇器 偽類選擇器介紹

    前面花了兩節(jié)內容分別在《CSS3選擇器——基本選擇器》和《CSS3選擇器——屬性選擇器》介紹了CSS3選擇器中的基本選擇器和屬性選擇器使用方法,今天要和大家一起學習CSS3選擇
    2012-01-21
  • CSS3 選擇器 屬性選擇器介紹

    上一切在《CSS3選擇器——基本選擇器》中主要介紹了CSS3選擇器的第一部分,這節(jié)主要和大家一起來學習CSS3選擇器的第二部分——屬性選擇器
    2012-01-21
  • CSS3 選擇器 基本選擇器介紹

    CSS的選擇器,我想大家并不會陌生吧,因為天天在使用,但對于CSS3的選擇器,要運用的靈活到位,我想對很多朋友還是一定的難度,特別是CSS3中的:nth選擇器
    2012-01-21
  • 你不可不知的CSS選擇器

    *通配符選擇器,經常用于css reset(樣式重置),清理標簽的默認樣式,但現(xiàn)在一般不提倡直接使用*了,主要是*會匹配所有標簽,相當耗資源。*在css的優(yōu)先級中是最低的。
    2011-07-27

最新評論