现在的位置: 首页 > 综合 > 正文

CSS后代选择器、子元素选择器、相邻兄弟选择器

2014年06月25日 ⁄ 综合 ⁄ 共 1163字 ⁄ 字号 评论关闭

后代选择器

后代选择器(descendant selector)又称为包含选择器。

后台选择器可以选择作为某元素后代的元素。

例子:如果只希望h1元素中的em元素应用样式,可以这样写:em元素:强调文本

h1 em {color:red;}

<h1>This is a <em>important</em> heading</h1>
<p>This is a <em>important</em> paragraph.</p>

注意:如果写作ul em,这个语法就会选择ul元素继承的所有em元素,而不论em的嵌套层次多深。

子元素选择器  

如果不是希望任意的后代元素,而是缩小范围,只选择某个元素的子元素,可以使用子元素选择器。

例如,如果希望选择只作为h1元素的子元素中strong元素,可以写成:

h1 > strong {color:red;}

<h1>This is <strong>very</strong> <strong>very</strong> important.</h1>
<h1>This is <em>really <strong>very</strong></em> important.</h1>

这个规则会把第一个h1下面的俩个strong元素变成红色,但是第二个h1中的strong不受影响。

结合后代选择器和子选择器

table.company td > p

上面的选择器会选择作为td元素子元素的所有p元素,这个td元素本身从table元素继承,该table元素有一个包含company

的class属性。

相邻兄弟选择器

如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器。

例如,如果要增加紧接在h1元素后出现的段落的上边距,可以这样写:

h1 + p {margin-top:50px;}

这个选择器读作:“选择紧接在h1元素后出现的段落,h1和p元素拥有共同的父元素”

语法解释

相邻兄弟选择器使用了加号(+),即相邻兄弟结合符。

注意:只能改变相邻兄弟中的第二个元素。

例子:

<div>
  <ul>
    <li>List item 1</li>
    <li>List item 2</li>
    <li>List item 3</li>
  </ul>
  <ol>
    <li>List item 1</li>
    <li>List item 2</li>
    <li>List item 3</li>
  </ol>
</div>

li + li {font-weight:bold;}

注意:上面这个选择器只会把列表中的第二个和第三个列表项变成粗体。第一个列表项不受影响。

结合其他选择器

相邻兄弟结合符还可以结合其他结合符:

html > body table + ul {margin-top:20px;}

这个选择器解释为:选择紧接在table元素后出现的所有兄弟ul元素,该table元素包含在一个body元素中,

body元素本身是html元素的子元素。




【上篇】
【下篇】

抱歉!评论已关闭.