CSS類,ID,標簽和偽類詳細說明


CSS有4種定義方式:


1、類:名稱前面是一個點,需要注意的是類實際上是屬性,點前面如果沒有其它內容,則默認是全局的,有的話,是專門那個對象的


2、ID:名稱前面是個"#",這種專門用於對象的id屬性的,本質上作用就是當你使用id的時候如果又想設置樣式, 那么就不必再寫class屬性了。

還能避免其它id使用此屬性,因為id 必須唯一。當然,這種避免基本沒用,因為你無需避免,不用就行了


3、標簽:其實每個內置標簽,比如p, a, img, 都有預置好了的樣式,當然還有其它作用。但是這個本質上和自定義標簽是一樣的,只不過內部已經定義好了


4、偽類:

偽類只有4種: link,hover,active,visited

從名稱來看,是專門針對超鏈接標簽a的, 但是后來擴展到其它任何標簽

偽類的本質是描述不同狀態下的樣式自動切換

如果不用偽類,你可以用JavaScript在相應的事件里自己處理。偽類提供了一個簡單的方法


5、CSS標簽偽類的寫法:


      偽類冒號的兩端不能有空格, 這說明,冒號其實是一個連接符,和點號是屬性的連接符一樣,

      因為CSS的空格表示不同的對象,也就是說,任何CSS樣式名稱如果之間有空格,那么就別認為是兩個標簽,而不是一個。


      (1) 如果沒空格,就被認為是一個標簽,例如div:hover{color:red}

           這個CSS語句實際上只定義了一個CSS對象,就是div:hover,或者說給div添加了一個屬性hover,

           這個屬性不同於一般的屬性,它響應鼠標移動過來的消息,使用的時候不用寫hover,所有div都自動會響應鼠標移過來, 顏色變成紅色

 

      (2)div.hover{color:red}

          這個CSS語句也只定義了一個CSS對象,就是div.hover,

          這等於給div添加了一個普通屬性hover, 這個屬性怎么用呢? 

          需要你在div標簽里寫class="hover", 必須這么用,否則不起作用


      (3)div .hover{color:red}又表示什么呢?

          因為div和.hover之間有個空格,這實際上是兩個標簽,但是描述了一種繼承關系,

          我們定義的hover樣式,必須在div的下一級標簽里設置才起作用, div外邊和div自身設置class="hover"都不起作用


    更多的也是一樣,div .hover .abc

          表示3重繼承關系, 想要這個樣式起作用,就需要div下面的一個標簽設置class為hover,這個標簽內部的子標簽再設置class為abc, 這樣才行


      (4)div,.hover{color:red}

          在div和.hover之間有個逗號, 這其實是一種並列關系,是一種簡寫,等價於div{color:red} .hover{color:red}這樣兩個標簽定義

  CSS樣式標簽可以重復定義,后面定義的樣式會添加或者覆蓋


      (5)還有更怪異的寫法: div.hover.abc{color:red}

          之間沒有空格, 此時實際上定義的是div屬性hover的屬性abc的樣式, 怎么使用它呢?

          因為這種基本沒什么用,沒有引入特殊的使用規則,就是<div class="hover abc">文本</div>這樣

         (奇怪的是"abc hover"這樣反着寫也行,實際上是並列關系),這和使用兩個樣式的情況會沖突,單看這里你不知道hover和abc是不是兩個類。

          總之如果此時又有同名的全局,比如abc樣式,hover樣式,那么也會一股腦全用上, 當然, div.hover.abc會有優先權。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM