优先级
!important>行内样式>ID选择器>类、伪类、属性>元素、伪元素>继承>通配符
- 通配符选择器
*{
margin:0;
padding:0;
}
- 元素(标签)选择器
p{
color:red;
}
- class选择器
.warning{
color:red;
}
- ID选择器
#warning{
color:red;
}
- 属性选取器
<ul>
<li temp>1</li>
<li temp="jp">2</li>
<li temp="jp efj">3</li>
<li temp="jp123">4</li>
<li temp="321jp">5</li>
<li temp="j">6</li>
</ul>
1.[attribute]
[temp]{ background-color:red; } // 选取拥有'temp'属性的元素,全部都会选中
2.[attribute=value]
[foo=jp]{ background-color:red; } // 选取拥有'foo'属性同时属性值只等于'jp'元素,选中元素2
3.[attribute~=value]
[foo~=jp]{ background-color:red; } // 选取拥有'foo'属性同时属性值包含'jp'元素,选中元素2、3
4.[attribute^=value]
[foo^=jp]{ background-color:red; } // 选取拥有'foo'属性同时属性值以'jp'开头的元素,选中元素2、3、4
5.[attribute$=value]
[foo$=jp]{ background-color:red; } // 选取拥有'foo'属性同时属性值以'jp'结尾的元素,选中元素2、5
6.[foo*=abc]
[foo*=jp]{ background-color:red; } // 选取拥有'foo'属性同时属性值中包含'jp'的所有元素,选中元素2、3、4、5
- 后代选择器
// 选择 ul 元素内部的所有 li 元素。
ul li{
border: 1px solid red;
}
- 子选择器
// 选择父元素为'.parent'的所有'p'元素。
.parent>p{
border: 1px solid red;
}
- 相邻兄弟选择器
// 选择紧接在'h1'元素之后的一个'p'元素。
h1+p{
color:red;
}
- 一般兄弟选择器
// 选择前面有'h1'元素的每个'p'元素。
h1~p{
color:red;
}
-
伪类选择器
-
:nth-child(n) 孩子选择器,n第几个孩子,从1开始;// 第1个'li'元素 li :nth-child(1){ color:red; } ul li: nth-child(even) //偶数 ul li: nth-child(odd), //奇数 ul li: nth-child(2n), //偶数,也可以说是2的倍数 ul li: nth-child(2n+1) //奇数,也可以说是2的倍数+1 ul li: nth-child(n + 2) //第2个开始 ul li: nth-child(-n + 2) //前2个,包含2 -
:nth-of-type(n) 同类型的第n个元素,// 'div'下的第2个'p'元素 div p:nth-of-type(2){ color: red; } -
element:first-child// 选择属于父元素的第一个子元素。 等同 :nth-child(1) -
element:last-child// 选择属于父元素的最后一个子元素。 -
:not()// 假定有个列表,每个列表项都有一条底边线,但是最后一项不需要底边线。 li:not(:last-child) { border-bottom: 1px solid #ddd; // 排除最后一个其他都要这个样式 }
- 鼠标移动到链接上:a:hover
- 鼠标未选择过:a:link
- 鼠标点击过链接:a:visited
- 鼠标正在按下链接:a:active
- 获得光标的输入表单:input:focus
-