CSS選擇器

一、 CSS選擇器常見的有幾種吆玖?

  • 通配符選擇器
    選擇所有元素:
    *{ }選擇某個元素下的所有元素:
    .demo *{ }表示類名為demo元素下的所有元素
    所有瀏覽器都支持通配符選擇器

  • 元素選擇器
    元素{ }選擇文檔元素
    所有瀏覽器都支持元素選擇器

  • 類選擇器
    .className{ }選擇類名為className的元素

    • 類選擇器與元素選擇器結(jié)合
      p.className{ }選擇類名為className的p元素
    • 多類選擇器
      .class1.class2{ }選擇同時有class1和class2這兩個類名的元素

    所有瀏覽器都支持類選擇器伪节,但多類選擇器.class1.class2不被ie6支持伙菜。

  • id選擇器
    #IDName{ }選擇id為IDName的元素
    ID選擇器有幾個地方需要特別注意的:

一個文檔中一個id選擇器只充許使用一次贰镣,因為id在頁面中是唯一的酒繁;
id選擇器不能像類選擇器一樣多個合并使用导梆,一個元素只能命名一個id名轨淌;
可以在不同的文檔中使用相同的id名,比如說在test.html中給h1定了#important
,也可以給test1.html中定義p的id為#important看尼,但前提是不管在test.html
還是test1.html中只充許有一個id叫#important的存在递鹉。

所有瀏覽器都支持ID選擇器

  • 屬性選擇器

    • 元素[屬性]:選擇有某個屬性的元素
    • 元素[屬性][屬性]:同時具有這兩個屬性的元素
    • 元素[屬性="屬性值"]:指定屬性名,并指定了該屬性的屬性值
    • 元素[屬性~="value"]:某個屬性的屬性值中有value元素
    • [屬性="屬性值"]元素[屬性~="value"]的區(qū)別:
      屬性選擇器中有波浪(?)時屬性值有value時就相匹配藏斩,沒有波浪(?)時屬性值要完全是value時才匹配躏结。
    • 元素[屬性^="value"]:選擇某個屬性的屬性值以“value”開頭的所有元素
    • 元素[屬性$="value"]:選擇某個屬性的屬性值以"value"結(jié)尾的所有元素
    • 元素[屬性*="value"]:選擇某個屬性的屬性值中包含子串"value"的所有元素
    • 元素[屬性|="value"]:選擇某個屬性的屬性值等于value或以value-開頭的所有元素

    屬性選擇器除了IE6不支持外,其他的瀏覽器都能支持

  • 后代選擇器(E F)
    元素1 元素2{ }:選擇元素1的所有后代元素元素2
    所有瀏覽器都支的后代選擇器

  • 子元素選擇器(E>F)
    元素1>元素2{ }:選擇元素1
    的所有子元素元素2
    IE6不支持子元素選擇器

  • 相鄰兄弟元素選擇器(E+F)
    元素1+元素2{ }:元素1與元素2
    在同一個父元素下灾茁,元素2在元素1后面窜觉,且相鄰,此選擇器選擇的是滿足上述條件的元素2
    IE6不支持這個選擇器

  • 通用兄弟元素選擇器
    元素1~元素2{ }:選擇某元素后面的所有兄弟元素
    通用兄弟選擇器和相鄰兄弟選擇器的區(qū)別:

    • 相鄰兄弟選擇器僅選擇是元素的僅與其相鄰的后面元素(選中的僅一個元素)北专;
    • 通用兄弟元素選擇器禀挫,選中的是元素后面的所有兄弟元素(選中的元素有多個)

    IE6不支持這個選擇器

  • 分組選擇器
    元素1, 元素2:同時對元素1
    和元素2編寫樣式,常用于將具有相同樣式的元素分組在一起拓颓,簡化代碼
    所有瀏覽器都支持群組選擇器

  • 偽類選擇器

    • 動態(tài)偽類
      因為這些偽類并不存在于HTML中,而只有當(dāng)用戶和網(wǎng)站交互的時候才能體現(xiàn)出來语婴,動態(tài)偽類包含兩種,第一種是我們在鏈接中呈荒溃看到的錨點偽類砰左,如:link,:visited;另外一種被稱作用戶行為偽類场航,如:hover,:active和:focus缠导。

      • 錨點偽類
        a:link {color:gray;}鏈接沒有被訪問時前景色為灰色
        a:visited{color:yellow;}鏈接被訪問過后前景色為黃色
        a:hover{color:green;}鼠標(biāo)懸浮在鏈接上時前景色為綠色
        a:active{color:blue;}鼠標(biāo)點中激活鏈接那一下前景色為藍色
        錨點偽類的先后順序:link–visited–hover–active

      • 用戶行為偽類
        :hover用于當(dāng)用戶把鼠標(biāo)移動到元素上面時的效果;
        :active用于用戶點擊元素那一下的效果(正發(fā)生在點的那一下溉痢,松開鼠標(biāo)左鍵此動作也就完成了)
        :focus用于元素成為焦點僻造,這個經(jīng)常用在表單元素上

      :hover在IE6下只有a元素支持,:active只有IE7-6不支持孩饼,:focus在IE6-7下不被支持髓削。

    • UI元素狀態(tài)偽類
      :enabled:disabled镀娶,:checked主要是針對于HTML中的Form元素操作立膛,最常見的比如我們type="textenabledisabled兩種狀態(tài),前者為可寫狀態(tài)后者為不可狀態(tài)梯码;另外type="radio"type="checkbox"checkedunchecked兩種狀態(tài)宝泵。
      IE6-8不支持:checked,:enabled,:disabled這三種選擇器好啰。

    • CSS3的:nth選擇器
      :first-child選擇某個元素的第一個子元素;
      :last-child選擇某個元素的最后一個子元素鲁猩;
      :nth-child()選擇某個元素的一個或多個特定的子元素坎怪;
      :nth-last-child()選擇某個元素的一個或多個特定的子元素,從這個元素的最后一個子元素開始算廓握;
      :nth-of-type()選擇指定的元素搅窿;
      :nth-last-of-type()選擇指定的元素,從元素的最后一個開始計算隙券;
      :first-of-type選擇一個上級元素下的第一個同類子元素男应;
      :last-of-type選擇一個上級元素的最后一個同類子元素;
      :only-child選擇的元素是它的父元素的唯一一個了元素娱仔;
      :only-of-type選擇一個元素是它的上級元素的唯一一個相同類型的子元素沐飘;
      :empty選擇的元素里面沒有任何內(nèi)容。

    • 否定選擇器:not
      input:not([type="submit"]) {border: 1px solid red;}
      給除了type="submit"以外的所有input加邊框

    • 偽元素
      ::first-line選擇元素的第一行
      ::first-letter選擇文本塊的第一個字母,主要運用于段落排版上多牲迫,比如說首字下沉
      ::before::after這兩個主要用來給元素的前面或后面插入內(nèi)容耐朴,這兩個常用content配合使用,見過最多的就是清除浮動盹憎,
      .clearfix:before,
      .clearfix:after {
      content: ".";
      display: block;
      height: 0;
      visibility: hidden;
      }
      .clearfix:after {clear: both;}
      .clearfix {zoom: 1;}

      ::selection用來改變?yōu)g覽網(wǎng)頁選中文本的默認效果

二筛峭、選擇器的優(yōu)先級是怎樣的?

選擇器按優(yōu)先級從高到低排序:

  • !important
  • 內(nèi)聯(lián)樣式
  • ID 選擇器
  • 偽類
  • 屬性選擇器
  • 類選擇器
  • 元素(類型)選擇器
  • 通用選擇器(*

三陪每、class和id的使用場景

  • id使用場景
    具有唯一性使用id選擇器影晓,如js中獲取元素
  • class使用場景
    公用的,類似的樣式使用類選擇器檩禾。

四挂签、使用CSS選擇器時為什么要劃定適當(dāng)?shù)拿臻g?

為了能夠更精確的定位到該元素盼产,方便日后維護饵婆。舉個例子:

網(wǎng)頁中功能相似的模塊可能較多,比如導(dǎo)航,導(dǎo)航可能有頁面主導(dǎo)航,側(cè)邊欄導(dǎo)航,甚至頁腳導(dǎo)航,一般導(dǎo)航使用class類選擇器寫樣式,這時導(dǎo)航就不能單純的使用nav做class命名,要寫做main-nav,sidebar-nav,footer-nav,這樣不會造成樣式的污染.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市戏售,隨后出現(xiàn)的幾起案子侨核,更是在濱河造成了極大的恐慌,老刑警劉巖蜈项,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異续挟,居然都是意外死亡紧卒,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門诗祸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來跑芳,“玉大人轴总,你說我怎么就攤上這事〔└觯” “怎么了怀樟?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長盆佣。 經(jīng)常有香客問我往堡,道長,這世上最難降的妖魔是什么共耍? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任虑灰,我火速辦了婚禮,結(jié)果婚禮上痹兜,老公的妹妹穿的比我還像新娘穆咐。我一直安慰自己,他們只是感情好字旭,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布对湃。 她就那樣靜靜地躺著,像睡著了一般遗淳。 火紅的嫁衣襯著肌膚如雪拍柒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天洲脂,我揣著相機與錄音斤儿,去河邊找鬼。 笑死恐锦,一個胖子當(dāng)著我的面吹牛往果,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播一铅,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼陕贮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了潘飘?” 一聲冷哼從身側(cè)響起肮之,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎卜录,沒想到半個月后戈擒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡艰毒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年筐高,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡柑土,死狀恐怖蜀肘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情稽屏,我是刑警寧澤扮宠,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站狐榔,受9級特大地震影響坛增,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜荒叼,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一轿偎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧被廓,春花似錦坏晦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蜓斧,卻和暖如春仓蛆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背挎春。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工看疙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人直奋。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓能庆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親脚线。 傳聞我的和親對象是個殘疾皇子搁胆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 其實平時用得多的選擇器無非也就是那么幾個,時間久了邮绿,許多不常用的選擇器就慢慢忘記了渠旁。為了不讓自己忘記這些選擇器,今...
    盛夏晚清風(fēng)閱讀 1,830評論 0 5
  • 1.CSS 元素選擇器 最常見的 CSS 選擇器是元素選擇器船逮。換句話說顾腊,文檔的元素就是最基本的選擇器。如果設(shè)置 H...
    饑人谷_小侯閱讀 862評論 0 1
  • 轉(zhuǎn)載自牢記31種CSS選擇器用法 1 * 星號選擇器用于選取頁面中的所有元素挖胃,可用于快速清除所有元素的 margi...
    Icestains閱讀 1,227評論 0 1
  • 1.class 和 id 的使用場景? 類選擇器允許以一種獨立于文檔元素的方式來指定樣式。該選擇器可以單獨使用伪煤,也...
    草鞋弟閱讀 2,415評論 0 1
  • 一、CSS選擇器常見的有幾種? 基本選擇器 通配選擇器~選擇文檔中所有的html元素凛辣,用一個*表示 元素選擇器~選...
    dengpan閱讀 962評論 0 3