美文网首页Hybrid开发首页投稿(暂停使用,暂停投稿)程序员
《图解CSS3核心技术与案例实战》笔记——CSS3层次选择器

《图解CSS3核心技术与案例实战》笔记——CSS3层次选择器

作者: YangGeek | 来源:发表于2016-04-15 07:25 被阅读260次

层次选择器通过HTML的DOM元素间的层次关系获取元素,其主要的层次关系包括后代、父子、相邻兄弟和通用兄弟几种关系,通过其中某种关系可以方便快捷地选定需要的元素。

层次选择器语法

选择器 类型 功能描述
E F 后代选择器(包含选择器) 选择匹配的F元素,且匹配的F元素被包含在匹配的E元素内
E>f 子选择器 选择匹配的F元素,且匹配的F元素是所匹配的E元素的子元素
E+F 相邻兄弟选择器 选择匹配的F元素,且匹配的F元素紧位于匹配的E元素后面
E~F 通用选择器 选择匹配的F元素,且位于匹配的E元素后的所有匹配的F元素

实战体验

<!DOCTYPE html>
<html lang="en">
<head>   
<meta charset="UTF-8">  
  <title>使用CSS3层次选择器</title> 
   <style type="text/css">  
     *{margin: 0;padding: 0; }    
    body{width: 300px; margin: 0 auto;}     
    div{margin:5px;padding:5px;border: 1px solid #ccc;}   
 </style>
</head>
<body>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4
      <div>5</div>
       <div>6</div>
</div>
<div>7   
       <div>8  
             <div>10</div>  
       </div>
</div>
</body>
</html>```

![页面初步效果](http:https://img.haomeiwen.com/i1790467/7988732a830c8386.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
为了更好的李青这些div的层次关系,可以先将示例中的body部分画一个DOM树形草图

![](http:https://img.haomeiwen.com/i1790467/388efb5f7d934b62.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
####3、1 后代选择器
后代选择器后代选择器(E F)也称为包含选择器,作用就是可以选择元素的后代元素。例如“E F”,E为祖先元素,F为后代元素,表带的意思就是选择E元素的所有后代F元素。
```css
 *{margin: 0;padding: 0; }    
    body{width: 300px; margin: 0 auto;}     
    div{margin:5px;padding:5px;border: 1px solid #ccc;}   
    div div {background: orange;} //使用后代选择器来改变其背景色```

![使用后代选择器的效果](http:https://img.haomeiwen.com/i1790467/309a8572b384f493.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
####3、2 子选择器
子选择器(E>F)只能选择某元素的子元素,其中E为父元素,而F为子元素,其中E>F表示选择了E元素下的 所有子元素F。
```css
 *{margin: 0;padding: 0; }    
    body{width: 300px; margin: 0 auto;}     
    div{margin:5px;padding:5px;border: 1px solid #ccc;}   
    div div {background: orange;} 
    body>div {background:green;}//div5、div6、div8、div9、div10不属于body的子元素,所以不会变成绿色```

![使用子元素选择器](http:https://img.haomeiwen.com/i1790467/51a9efbad6dea785.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
####3、3 相邻兄弟链接器
相邻兄弟选择器(E+F)可以选择紧接在另外一个元素后的元素,他们具有一个相同的父元素。
```html
<!DOCTYPE html>
<html lang="en">
<head>   
<meta charset="UTF-8">  
  <title>使用CSS3层次选择器</title> 
   <style type="text/css">  
    *{margin: 0;padding: 0; }    
    body{width: 300px; margin: 0 auto;}     
    div{margin:5px;padding:5px;border: 1px solid #ccc;}   
    div div {background: orange;} 
    body>div {background:green;}
    .active+div{background:lime;} 
 </style>
</head>
<body>
<div class="active">1</div>
<!--为了说明相邻兄弟选择器,在此处添加一个类名active -->
<div>2</div>
<div>3</div>
<div>4
      <div>5</div>
       <div>6</div>
</div>
<div>7   
       <div>8  
             <div>10</div>  
       </div>
</div>
</body>
</html>//此时第二个div的背景色将变成“lime”色```

![相邻兄弟选择器](http:https://img.haomeiwen.com/i1790467/4426c90e71296756.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
####3、4 通用兄弟选择器
通用兄弟选择器(E~F)是**CSS3新增加**的,用于选择某元素后面的所有兄弟元素,它们和相邻兄弟选择器类似,需要在同一个父元素之间。
```css
  *{margin: 0;padding: 0; }    
    body{width: 300px; margin: 0 auto;}     
    div{margin:5px;padding:5px;border: 1px solid #ccc;}   
    div div {background: orange;} 
    body>div {background:green;}
    .active+div{background:lime;} 
    .active~div{background:red;}```

![使用通用兄弟选择器效果](http:https://img.haomeiwen.com/i1790467/b0a12bdd8de31fe5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

相关文章

网友评论

    本文标题:《图解CSS3核心技术与案例实战》笔记——CSS3层次选择器

    本文链接:https://www.haomeiwen.com/subject/ayoglttx.html