選擇器可以選擇
- 類(或ID)、
- 標簽、
- 類(或ID)與標簽組合
表示方式為:
類 | 標簽 | ID | |
HTML | class="cla" | <lab> | id="num" |
CSS | .cla | lab | #num |
注意:類與ID類似,下面的例子的類也可以換成ID
一、CSS的選擇器
1、多(類)選擇器
(1)類或標簽
選擇class=“cla1 cla2 cla3”的標簽,改變【內容3】
.cla1.cla2.cla3 { width: 100%; }
<div class="cla1">
內容1 </div> <div class="cla1 cla2">
內容2 </div> <div class="cla1 cla2 cla3">
內容3 </div>
(2)標簽與類的組合
table.cla1.cla2 { width: 100%; }
<table class="cla1 cla2">
內容 </table>
2、群組選擇器
(1)類或標簽
選擇含有cla1、cla2、cla3任一個class的標簽,改變【內容1】、【內容2】、【內容3】
.cla1, .cla2, .cla3 { width: 100%; }
<div class="cla1">
內容1 </div> <div class="cla1 cla2">
內容2 </div> <div class="cla1 cla2 cla3">
內容3 </div>
(2)標簽與類的組合
table, .cla1, .cla2 { width: 100%; }
<div class="cla1">
內容1 </div> <div class="cla2">
內容2 </div> <table>
內容3 </table>
3、相鄰選擇器
(1)類或標簽
選擇cla1后面緊接的cla2(同一父級),改變【內容2】
.cla1 + .cla2 { width: 100%; }
<div class="cla0"> <div class="cla1">
內容1 </div> <div class="cla2">
內容2 </div> </div>
(2)標簽與類的組合
h1 + cla1 { width: 100%; }
<div class="cla0"> <h1>
內容1 </h1> <div class="cla1">
內容2 </div> </div>
4、子代(類)選擇器
(1)類或標簽
選擇 cla1>cla2>cla3 這種嵌套結構的全部cla3標簽(直接后代),改變【內容1】
.cla1 >.cla2 >.cla3 { width: 100%; }
<div class="cla1"> <div class="cla2"> <div class="cla3">
內容1 <div class="cla3">
內容2 </div> </div> </div> </div>
(2)標簽與類的組合
table >.cla1 >td { width: 100% }
<table> <div class="cla1"> <td>
內容 </td> </div> </table>
5、后代(類)選擇器
(1)類或標簽
選擇 cla1后代里面的全部cla3標簽 (不管后代嵌套得有多深),改變【內容1】、【內容2】
.cla1 .cla3 { width: 100%; }
<div class="cla1"> <div class="cla2"> <div class="cla3">
內容1 <div class="cla3">
內容2 </div> </div> </div> </div>
(2)標簽與類的組合
.cla1 h1 { width: 100%; }
<div class="cla1"> <td> <h1>
內容 </h1> </td> </div>
6、偽類選擇器
偽類必須配合正常的類來使用,改變未訪問的鏈接【內容】
a:link { color: #fff }
<a>
內容 </a>
二、SCSS的選擇器
1、多(類)選擇器
.cla1 { &.cla2.cla3 { width: 100%; } }
.cla1.cla2.cla3 { width: 100%; }
2、群組選擇器
.cla1 { &, .cla2, .cla3 { width: 100%; } }
.cla1, .cla2, .cla3 { width: 100%; }
3、相鄰選擇器
.cla1 { & + .cla2 { width: 100%; } }
.cla1 + .cla2 { width: 100%; }
4、子代(類)選擇器
.cla1 { >.cla2>.cla3 { width: 100%; } } //或者是從子類寫到父類(根據自己實際需要) .cla2 { .cla1>&>.cla3 { width: 100%; } }
.cla1>.cla2>.cla3 { width: 100%; }
5、后代(類)選擇器
.cla1 { .cla3 { width: 100%; } } //或者是從子類寫到父類(根據自己實際需要) .cla3 { .cla1 & { width: 100%; } }
.cla1 .cla3 { width: 100%; }
6、偽類選擇器
a { &:link { color: #ffffff; } }
a:link { color: #ffffff; }
7、自定義類(BEM)的選擇
//以前的用法 .cla { @at-root #{&}1 { width: 100%; } @at-root #{&}2 { width: 100%; } } //新支持的用法(后面最好不要跟【標簽】或【屬性】名) .cla { &1 { width: 100%; } &2 { width: 100%; } }
.cla1 { width: 100%; } .cla2 { width: 100%; }
8、屬性的選擇
.cla1 { border: { width: 1px; style: soild; color: #ffffff; } }
.cla1 { border-width: 1px; border-style: soild; border-color: #ffffff; }