[基本Selector]
常用selector如下
基本选择器
- 通配符选择器(*)
- id选择器(#ID)
- 类选择器(.className)
- 元素选择器(E)
- 后代选择器(E F)
- 子元素选择器(E>F)
- 相邻兄弟元素选择器(E + F)
- 群组选择器(selector1,selector2,...,selectorN)
Basic Selectors
- Type selectors
- Class selectors
- ID selectors
- Universal selectors
- Attribute selectors 屬性selectors
通配符选择器(*)
用来选择所有元素,也可以选择某个元素下的所有元素
* {color:red;}
div * {color:blue;}
元素选择器(E)
是css选择器中最常见而且最基本的选择器。就是文档的元素,如html,body,p,div等等
div {color:blue;}
類选择器(.className)
是以一独立于文档元素的方式来指定样式,使用类选择器之前需要在html元素上定义类名,换句话说需要保证类名在html标记中存在,这样才能选择类
E.className
匹配E元素中符合className指定樣式的元素
html:
<div>no do</div>
<div class="noBlue" >box no blue</div>
<div class="boxName">box class</div>
css:
.boxName {color:blue;}
div.noBlue {color:red;} /*E元素中匹配類名為noBlue的元素*/
id选择器(#ID)
指定元素id屬性
群組選擇器(selector1,selector2,...,selectorN)
群组选择器是将具有相同样式的元素分组在一起,每个选择器之间使用逗号“,”隔开。 CSS3支持
div p , div + p {color:red;}
組合選擇器
假設html如下
<p>上一個結點</p>
<div>
<p>子元素(Child selectors)F元素</p>
<p>
<em>後代元素(descendant selectors)F元素</em>
</p>
</div>
<p>相邻兄弟选择器(Adjacent sibling selector)</p>
<p>相鄰後元素|</p>
選擇器 | 宣告方式 | 說明 | CSS版本 | 範例 |
---|---|---|---|---|
後代元素(descendant selectors) | E F |
指定E元素的後代元素F元素 | CSS 1 | div em {color:red;} |
子元素(Child selectors) | E > F |
指定E元素子元素F元素 | CSS 2 | div > p {color:red;} |
相邻兄弟选择器(Adjacent sibling selector) | E + F |
指定E元素的相鄰元素F元素(只有最靠近的後一個有效) | CSS 2 | div + p {color:red;} |
相鄰後元素 | E ~ F |
指定E元素的同級且期後的的F元素 | CSS 3 | div ~ p {color:red;} |
后代选择器(E F)
E为祖先元素,F为后代元素
子元素选择器(E>F)
子元素选择器只能选择某元素的子元素,其中E为父元素,而F为子元素,其中E>F所表示的是选择了E元素下的所有子元素F。这和后代选择器(E F)不一样,在后代选择器中F是E的后代元素,而子元素选择器E > F,其中F仅仅是E的子元素而以。
IE6不支持子元素选择器
相邻兄弟元素选择器(E + F)
相邻兄弟选择器可以选择紧接在另一元素后的元素,而且他们具有一个相同的父元素,换句话说,EF两元素具有一个相同的父元素,而且F元素在E元素后面,而且相邻,这样我们就可以使用相邻兄弟元素选择器来选择F元素。 IE6不支持这个选择器
通用兄弟选择器(E ~ F)
通用兄弟元素选择器是CSS3新增加一种选择器,这种选择器将选择某元素后面的所有兄弟元素,他们也和相邻兄弟元素类似,需要在同一个父元素之中,换句话说,E和F元素是属于同一父元素之内,并且F元素在E元素之后,那么E ~ F 选择器将选择中所有E元素后面的F元素。
IE6不支持这个选择器
補充:
1. 後代selector v.s 子selector :
后代选择器(descendant selector)又称为包含选择器。后代选择器可以选择作为某元素后代的元素。也就是孫子輩的都有效
e.g. 如下可以指定div內的em(孫子)
<style>div em {color:red;}</style> <div>This is a <p><em>show red</em></p> heading</div>
与后代选择器相比,子元素选择器(Child selectors)只能选择作为某元素子元素的元素。也就是孫子輩的無效
e.g. 如下不可以指定div內的em(孫子)
<style>div > em {color:red;}</style> <div> <p><em>no red</em></p> <em>show red</em> </div>
2. 相鄰selector(Adjacent sibling selector) :
指元素相鄰的後一個元素
<style>div p {color:red;}</style> <div>This is a heading</div> <p>show red</p>
參考
如果您对CSS选择器还不太了解,或者说不太清楚CSS有哪些选择器,个人建议你先阅读以下几篇文章,这样更有助于帮助你阅读本文后面的内容: