CSS類選擇器參考手冊css
一個元素同時使用多個類選擇器
CSS中類選擇器用點號表示。實際項目中一個div元素爲了能被多個樣式表匹配到(樣式複用),一般div的class中由好幾段組成,如<div class="user login">能被.user和.login兩個選擇器選中。若是這兩個選擇器中有相同的屬性值,則該屬性值先被改成.user中的值,再被改成.login中的值,即重複的屬性以最後一個選擇器中的屬性值爲準。測試以下:html
<style> .user {
font-size: 30px; background-color:red; } .login { background-color:blue; } </style> </head> <body> <div class='user'>你好。這是一個 DIV 元素,class='user'。</div> <div class='login'>你好。這是一個 DIV 元素,class='login'。</div> <div class='user login'>你好。這是一個 DIV 元素,class='user login'。</div> </body>
第三個div元素的背景顏色以.login中的爲準,效果以下圖:post
CSS類選擇器的匹配規則
CSS中多個類選擇器之間有沒有空格是怎樣的匹配規則?如.user.login和.user .login(中間有空格)的區別?測試
直接上例子。電商項目中的導航欄,包括用戶的登陸/註冊/註銷,以及購物車等信息。spa
Html:ssr
<div class="nav"> <div class="w"> <div class="user-info"> <span class="user not-login"> <span class="link js-login">登陸</span> <span class="link js-register">註冊</span> </span> <span class="user login"> <span class="link-text"> 歡迎, <span class="username"></span></span> <span class="link">退出</span> </span> </div> <!-- 右側的導航連接 --> <ul class="nav-list"> <li class="nav-item"> <a class="link" href="./cart.html"> <i class="fa fa-shopping-cart"></i> 購物車(<span class="cart-cont">0</span>) </a> </li> <li class="nav-item"> <a class="link" href="./order-list.html">個人訂單</a> </li> <li class="nav-item"> <a class="link" href="./user-center.html">個人MMall</a> </li> <li class="nav-item"> <a class="link" href="./about.html">關於MMall</a> </li> </ul> </div> </div>
CSS:code
.nav{ background: #eee; height: 30px; line-height: 30px; } /* 用戶部分 */ .nav .user{ float: left; } .nav .user.login{ display: none; } .nav .user .link{ margin-right: 5px; } /* 導航連接部分 */ .nav .nav-list{ float: right; } .nav .nav-list .nav-item{ display: inline-block; margin-left: 5px; }
觀察上面代碼的運行結果可知:htm
- .nav .user(中間有空格)匹配到class含有nav的元素下面的class含有user的元素,是<span class="user not-login">和<span class="user login">。
- .user.login(中間沒有空格)匹配到class同時含有user和login的元素,是<span class="user login">。
- .nav .user.login(.nav和.user中間有空格,.user和.login中間沒有空格)匹配到class含有nav的元素下面的class同時含有user和login的元素,是<span class="user login">。
一個更小的例子
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>類選擇器</title> <style> .user.login /* 匹配同時包含user和login的元素 */ { font-size: 35px; } .user .login{ /* 匹配含user下的含login的元素 */ background-color:green; } </style> </head> <body> <div class='user'>你好。這是一個 DIV 元素,class='user'。 <div class='login'>你好。這是一個 DIV 元素,class='user login'。</div> </div> <div class='login'>你好。這是一個 DIV 元素,class='login'。</div> <div class='user login'>你好。這是一個 DIV 元素,class='user login'。</div> </body> </html>