css基础知识复习与学习(5)

Css的选择器(4)

组合选择器

今天复习css选择器的最后一个内容,组合选择器,其实我觉得叫选择器的组合方法更加的贴切一点。光从名字就可以知道。这次我们不会学新的选择器了。就像做饭一样,之前的我们像是开始认识各种菜,各种调料,而这一节则是开始看菜谱,学习如何搭配才能炒出美味的菜来。下面开始我们的正文。

  1. 选择器组
    形式如: A,B,C。ABC分别代表了不同的三个不同的选择器,可以是class选择器,也可以是id选择、标签选择器,属性选择器。就像一群人在上班,老师突然说张三,穿红衣服的人,课代表上讲台讲一下问题。那么,张三就像id选择器(暂时假定不会重名),穿红衣服的就像class选择器,课代表则是标签选择器,他们都得上台。同理选择器组也可以这样,随便组合,只要用逗号隔开就可以,css代码会在所有选择器上生效。
    例:
    index.html
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <html>
    <head>
    <meta charset='utf8'>
    <title>选择器组</title>
    <link rel='stylesheet' href='./demo.css'>
    </head>
    <body>
    <h1>我是课代表,以下是选择器组</h1>
    <div id='zhangsan'>我叫张三</div>
    <div class='wear'>我穿着红衣服</div>
    <p class='wear'>我穿着红衣服</p>
    <h2 class='wear'>我穿着红衣服</p>
    </body>
    </html>

demo.css

1
2
3
4
#zhangsan,.wear,h1{
color:#DAA520;
font-size: 30px;
}

在上面的例子中,我们涉及了多种标签,尤其是h1和h2标签,在默认情况下和其它标签在字体大小上会有比较大的区别,但在这里我们把他们同意设置成了大小30px,颜色为#DAA520。可以自己动手,敲下代码试一下。示例请查看组合选择器,若点击无效请复制链接到浏览器打开http://blog.wuhoushu.com/selector/selectotrs.html

  1. 后代选择器
    除了id选择器,在正常的编码过程中,我们使用最多的要算后代选择器了。那么,什么是后代选择器呢?
    所谓的后代选择器,就是被包裹标签的选择器。比去如下代码:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <div class="parent">
    <div class="child"></div>
    </div>
    <style>
    .parent .child{
    font-size: 20px;
    color: #093812;
    }
    .parent div{
    font-size: 20px;
    color: #093812;
    }
    </style>
    上面代码中,parent就是父标签,child的就是子标签,即所谓的后代标签,形式就是父元素在前,子元素在后。因为parent下面只有一个div,所以child和div的指代都是相同的。在实际写代码中,我们可能在不同的地方都定义了相同的class,使用同一样式,但某一个地方需要有点特殊,那么这种后代标签就是其中一个选择。如:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <html>
    <head>
    <meta charset='utf8'>
    <title>后代选择器</title>
    <link rel='stylesheet' href='./demo.css'>
    </head>
    <body>
    <div class='same-style'>我们都有同样的样式</div>
    <div class='same-style'>我们都有同样的样式</div>
    <div class='same-style'>我们都有同样的样式</div>
    <div class='parent'>
    <div class='same-style'>
    我本来也可以和他们一样,有相同的样式,但是我的父元素的存在让我的样式被改变。
    </div>
    </div>
    </body>
    </html>
    demo.css
    1
    2
    3
    4
    5
    6
    .same-style{
    color: #DA70D6;
    }
    .parent .same-style{
    color:#FFD700;
    }
    示例请查看组合选择器,若点击无效请复制链接到浏览器打开http://blog.wuhoushu.com/selector/selectotrs.html
  2. 子选择器
    子选择器呢,和后代选择器实际上差不多。不过限制比后代选择器更多一点。从名字上也很容易理解,后代选择器范围更广。就像人类一样,说小强是大强的后代,那么这个小强,可以是大强的孙子,儿子,重孙,十八辈孙等。而说小强人是大强的儿子,那就只能是儿子喽。看例子。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <div class="parent">
    <div class="child">
    我是parent的子代。
    <div>我是parent的后代</div>
    </div>
    </div>
    <style>
    .parent>.child{
    font-size: 20px;
    color: #9932CC;
    }
    .parent>div{
    font-size: 20px;
    color: #9932CC;
    }
    </style>
    这就是子选择器的形式,仔细观察和上面有什么不同。上面的代码中,css样式只能对“我是parent的子代。”起作用,但用于继承,“我是parent的后代”也有和前面子代相同的样式。大家可以手敲一下试试。示例请看示例请查看子选择器,若点击无效请复制链接到浏览器打开http://blog.wuhoushu.com/selector/selectotrs.html。在市里中,我对div设置了某认样式。对于这一节可能会比较难理解,先不要着急,在后面讲到继承的时候,再详细了解,现在知道有子选择器这一块就可以。
  3. 相邻兄弟选择器和通用兄弟选择器。
    你是我的兄弟,还站在我后面,就是相邻选择器。如
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     <div>
    <div class='a'>1</div>
    <div class='b'>2</div>
    <div class='c'>3</div>
    <div class='d'>4</div>
    <div class='e'>5</div>
    </div>
    <style>
    .a+div{
    color: red;
    }
    .b+div{
    color: green;
    }
    </style>
    上面的代码中,b就是a的相邻选择器,c就是b的。 .a+div的样式会对2起作用。.b+div会在3起作用。示例请看示例请查看兄弟选择器,若点击无效请复制链接到浏览器打开http://blog.wuhoushu.com/selector/selectotrs.html。
    通用选择器则比较大方,只要是兄弟就可以,不管位置。如下
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     <div>
    <div class='a'>1</div>
    <div class='b'>2</div>
    <div class='c'>3</div>
    <div class='d'>4</div>
    <div class='e'>5</div>
    </div>
    <style>
    .a~div{
    color: #EE2C2C;
    }
    </style>
    上面的代码,会在除了1以外的所有兄弟代码中生效。示例请看示例请查看通用选择器,若点击无效请复制链接到浏览器打开http://blog.wuhoushu.com/selector/selectotrs.html。