zoukankan      html  css  js  c++  java
  • 第 13 章 CSS 选择器[上]

    学习要点:

    1.选择器总汇

    2.基本选择器

    3.复合选择器

    4.伪元素选择器

    主讲教师:李炎恢

    本章主要探讨 HTML5 中 CSS 选择器,通过选择器定位到想要设置样式的元素。目前 CSS 选择器的版本已经升级至第三代,即 CSS3 选择器。CSS3 选择器提供了更多、更丰富的选择器方式,主要分为三大类。

    一.选择器总汇

    本节课主要涉及到三种选择器:基本选择器、复合选择器和伪元素选择器,具体如下:

    选择器

    名称

    说明

    CSS 版本

    *

    通用选择器

    选择所有元素

    2

    <type>

    元素选择器

    选择指定类型的元素

    1

    #<id>

    id 选择器

    选择指定 id 属性的元素

    1

    .<class>

    class 选择器

    选择指定 class 属性的元素

    1

    [attr]系列

    属性选择器

    选择指定 attr 属性的元素

    2 ~ 3

    s1,s2,s3...

    分组选择器

    选择多个选择器的元素

    1

    s1 s2

    后代选择器

    选择指定选择器的后代元素

    1

    s1 > s2

    子选择器

    选择指定选择器的子元素

    2

    s1 + s2

    相邻兄弟选择器

    选择指定选择器相邻的元素

    2

    s1 ~ s2

    普通兄弟选择器

    选择指定选择器后面的元素

    3

    ::first-line

    伪元素选择器

    选择块级元素文本的首行

    1

    ::first-letter

    伪元素选择器

    选择块级元素文本的首字母

    1

    ::before

    伪元素选择器

    选择元素之前插入内容

    2

    ::after

    伪元素选择器

    选择元素之后插入内容

    2

    二.基本选择器

    使用简单且频率高的一些选择器归类为基本选择器。

    1.通用选择器

    * {
        border: 1px solid red;
    }

    解释:“*”号选择器是通用选择器,功能是匹配所有 html 元素的选择器包括<html>和<body>标签。可以使用如下元素标记测试效果:

    <p>段落</p>
    <b>加粗</b>
    <span></span>

    通用选择器会将所有元素匹配并配置样式,这是把双刃剑,好处就是非常方便,坏处就是将不必要的元素也配置了。目前为止,还不存在所有元素都必须配置的样式,所以,一般来说,不常用。

    2.元素选择器

    p {
        color: red;
    }
    <p>段落</p>

    解释:直接使用元素名称作为选择器名即可。

    3.ID 选择器

    #abc {
        font-size: 20px;
    }
    <p id="abc">段落</p>

    解释:通过对元素设置全局属性 id,然后使用#id 值来选择页面唯一元素。

    4.类选择器

    .abc {
        border: 1px solid red;
    }
    <b class="abc">加粗</b>
    <span class="abc"></span>

    解释:通过对元素设置全局属性 class,然后使用.class 值选择页面一个或多个元素。

    b.abc {
        border: 1px solid red;
    }

    解释:也可以使用“元素.class 值”的形式,限定某种类型的元素。

    <span class="abc edf"></span>

    解释:类选择器还可以调用多个样式,中间用空格隔开进行层叠。

    5.属性选择器

    //所需 CSS2 版本 

    [href] {
        color: orange;
    }

    解释:属性选择器,直接通过两个中括号里面包含属性名即可。当然,还有更多扩展的属性选择器。

    //所需 CSS2 版本 

    [type="password"] {
        border: 1px solid red;
    }

    解释:匹配属性值的属性选择器。

    //所需版本 CSS3

    [href^="http"] {
        color: orange;
    }

    解释:属性值开头匹配的属性选择器。

    //所需版本 CSS3

    [href$=".com"] {
        color: orange;
    }

    解释:属性值结尾匹配的属性选择器。

    //所需版本 CSS3

    [href*="baidu"] {
        color: orange;
    }

    解释:属性值包含指定字符的属性选择器。

    //所需版本 CSS2

    [class~="edf"] {
        font-size: 50px;
    }

    解释:属性值具有多个值时,匹配其中一个值的属性选择器。

    //所需版本 CSS2

    [lang|="en"] {
        color: red;
    }

    解释:属性值具有多个值且使用“-”号连接符分割的其中一个值的属性选择器。比如

    <i lang="en-us">HTML5</i>

    二.复合选择器

    将不同的选择器进行组合形成新的特定匹配,我们称为复合选择器。

    1.分组选择器

    p,b,i,span {
        color: red;
    }

    解释:将多个选择器通过逗号分割,同时设置一组样式。当然,不但可以分组元素选择器,还可以使用 ID 选择器、类选择器、属性选择器混合使用。

    2.后代选择器

    p b {
        color: red;
    }

    解释:选择<p>元素内部所有<b>元素。不在乎<b>的层次深度。当然,后代选择器也可以混合使用 ID 选择器、类选择器、属性选择器。

    3.子选择器 

    ul > li {
        border: 1px solid red;
    }
    <ul>
        <li>
            我是儿子
            <ol>
                <li>
                    我是孙子
                </li>
                <li>
                    我是孙子
                </li>
            </ol>
        </li>
        <li>
            我是儿子
        </li>
        <li>
            我是儿子
        </li>
    </ul>

    解释:子选择器类似与后代选择器,而最大的区别就是子选择器只能选择父元素向下一级的元素,不可以再往下选择。

    4.相邻兄弟选择器

    p + b {
        color: red;
    }

    解释:相邻兄弟选择器匹配和第一个元素相邻的第二个元素。

    5.普通兄弟选择器

    p ~ b {
        color: red;
    }

    解释:普通兄弟选择器匹配和第一个元素后面的所有元素。

    三.伪元素选择器

    伪选择器分为两种第一种是下节伪类选择器,还有一种就是伪元素选择器。这两种选择器特性上比较容易混淆,在 CSS3 中为了区分,伪元素前置两个冒号(::),伪类前置一个冒号(:)。

    1.::first-line 块级首行

    ::first-line {
        color: red;
    }

    解释:块级元素比如<p>、<div>等的首行文本被选定。如果想限定某种元素,可以加上前置 p::first-line。

    2.::first-letter 块级首字母

    ::first-letter {
        color: red;
    }

    解释:块级元素的首行字母。

    3.::before 文本前插入

    a::before {
        content: '点击-';
    }

    解释:在文本前插入内容。

    4.::after 文本后插入

    a::before {
        content: '-请进';
    }

    解释:在文本后插入内容。

  • 相关阅读:
    Java的Socket通信----通过 Socket 实现 TCP 编程之多线程demo(2)
    MySQL 数据备份与还原
    java实现时钟方法汇总
    java实现二叉树demo
    java实现心型、99乘法demo
    显示本月日历demo
    打开图片并显示在面板上demo
    ArraySort--冒泡排序、选择排序、插入排序工具类demo
    类的实例化顺序
    StringsUtil字符串工具类---灵活截取
  • 原文地址:https://www.cnblogs.com/zfc2201/p/5447825.html
Copyright © 2011-2022 走看看