兄弟选择器
版本:CSS3
定义和用法
- E~F用于选择第一个元素之后所有的兄弟级的元素。只作用于同级元素.
- 这两个元素必须具有相同的父元素。F不必紧跟E。
语法:
E~F{sRules}
选择E元素后面的所有兄弟元素F,元素E与F必须同属一个父级。
需要注意的是,选择的只是同级的元素F,后代中的元素不会被选择。
浏览器支持
![]() | ![]() | ![]() | ![]() | ![]() |
所有浏览器都支持 |
例子
只选择E元素之后的元素F,出现在E元素之前的元素F,不会被选择到。
h3 ~ p{color:red;} <p>p0</p> <h3>这是一个标题</h3> <p>p1</p> <p>p2</p> <p>p3</p> //这个例子中,p1/p2/p3都会被选中;而p0因为在h3之前,所以不会被选中
只作用于同级元素
h3 ~ p{color:#f00;} <div> <h3>这是一个标题</h3> <p>p1</p> </div> <p>p2</p> <p>p3</p> //这个例子中,只有p1会被选中;p2、p3由于与h3并不是同级,所以不会被选中
这是一个标题
p1
p2
p3
与相邻选择符(E+F)不同的是,兄弟选择符会命中所有符合条件的兄弟元素,而不强制是紧邻的元素。
/*相邻选择符(E+F)*/ h3 + p{color:#f00;} /*兄弟选择符(E~F)*/ h3 ~ p{color:#f00;} <h3>这是一个标题</h3> <p>p1</p> <p>p2</p> <p>p3</p> //这个例子中,如果是相邻选择符,那么只有p1会变成红色;如果是兄弟选择符,那么p1/p2/p3都会变成红色;
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style> p ~ ul{ background-color:#66cdcc; color:red; } </style> </head> <body> <div> <div>一个div元素</div> <ul> <li>coffee</li> <li>tea</li> <li>milk</li> </ul> <p>一个p元素</p> <ul> <li>coffee</li> <li>tea</li> <li>milk</li> </ul> <h2>另一个ul表</h2> <ul> <li>coffee</li> <li>tea</li> <li>milk</li> </ul> </div> </body> </html>