• CSS3中的选择器


    CSS3选择器是在CSS2.1选择器的基础上新增了属性选择器、伪类选择器、过滤选择器,减少了对HTML类名或ID名的依赖,避免了对HTML结构的干扰,使编写的过程更加轻松。

    根据所获取页面中的元素的不同,可以把CSS选择器分成五大类:

    1. 基本选择器
    2. 组合选择器
    3. 伪类选择器
    4. 伪元素
    5. 属性选择器

    在这其中伪类选择器又分成了六类:

    1. 动态伪类选择器
    2. 目标伪类选择器
    3. 语言伪类
    4. UI元素状态伪类选择器
    5. 结构伪类选择器
    6. 否定伪类选择器

    接下来依次介绍:

    一、基本选择器:

        1.标签选择器

          标签选择器直接引用HTML标签名称,也称为类型选择器,类型选择器规定了网页元素在页面中默认的显示样式。因此,标签选择器可以快速、方便的控制页面标签的默认显示效果。

        【示例】 通过标签选择器,统一定义网页中段落文本的样式为:段落内文本字体大小为12px,字体的颜色为红色。

            

    <style type="text/css">
        p{
            font-size: 12px;
            color: red;
        }
    </style>

         在定制网页样式时可以利用标签选择器设计网页元素默认效果,或者统一常用元素的基本样式。标签选择器在CSS中是使用频率最高的一类选择器,且容易管理,因为它们都是和网页元素同名的。

    (1)、类选择器:

          类选择器能够为网页对象定义不同的样式,实现不同元素拥有相同的样式,相同元素的不同对象拥有不同的样式。类选择器以一个点(.)前缀开头,然后跟随一个自定义的类名。

          应用类样式可以使用class属性来实现,HTML所有元素都支持该属性,只要在标签中定义class属性,然后把该属性值设置为事先定义好的类选择器的名称就OK了。

          【示例1】利用类选择器为页面中的3个相邻的段落文本对象定义不同的样式,其中第1和3段文本的字体大小为12px、字体红色,第2段文本的字体大小为18px、字体为红色。

          第一步:启动Dreamweaver,新建一个网页,在<body>标签中输入三段文本。

    <p>问君能有几多愁,恰似一江春水向东流</p>
    <p>剪不断,理还乱,是离愁。别是一般滋味在心头</p>
    <p>独自莫凭栏,无限江山,别是容易见时难。流水落花春也去,天上人间</p>

          第二步:在<head>标签中添加<style type="text/css">标签,定义一个内部样式表。

          第三步:通过标签选择器为所有段落文本的字体大小定义为12px,字体颜色为红色。

    <style type="text/css">
        p{
            font-size: 12px;  /*字体大小为12像素*/
            color: red;  /*字体颜色为红色*/
        }
    </style>

          第四步:如果仅定义第2段文本的字体大小为18px,这个时候就可以用到类选择器。在这里先定义一个18px大小的字体类:

    .font18px{font-size: 18px;}

          第五步:在第二段段落标签中引用font18px类样式。

    <p>问君能有几多愁,恰似一江春水向东流</p>
    <p class="font18px">剪不断,理还乱,是离愁。别是一般滋味在心头</p>
    <p>独自莫凭栏,无限江山,别是容易见时难。流水落花春也去,天上人间</p>

          最终在浏览器中显示的样式为:

                       

          

          【示例2】如何在对象中应用多个样式类。class属性可以包含多个类,因此可以设计复合样式类。

           第一步:复制上面示例的文档,并在内部样式表中定义了3个类:font18px、underline、italic

           第二步:然后在段落文本中分别引用这些类,其中第二段文本标签引用了3个类,第三段引用了一个类。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style type="text/css">
            p{  /*段落默认样式*/
                font-size: 12px;  /*字体大小为12像素*/
                color: red;  /*字体颜色为红色*/
            }
            .font18px{  /*字体大小类*/
                font-size: 18px;
            }
            .underline{  /*下划线类*/
                text-decoration: underline;
            }
            .italic{  /*斜体类*/
                font-style: italic;
            }
        </style>
    </head>
    <body>
        <p class="underline">问君能有几多愁,恰似一江春水向东流</p>
        <p class="font18px underline italic">剪不断,理还乱,是离愁。别是一般滋味在心头</p>
        <p class="italic">独自莫凭栏,无限江山,别是容易见时难。流水落花春也去,天上人间</p>
    </body>
    </html>

           如果把标签和类捆绑在一起来定义选择器,则可以限定类的使用范围,这样就可以指定该类仅适用于特定的标签范围内,这种方法也称为指定类选择器。

    (2)、ID选择器:

          ID选择器以井号(#)作为前缀,然后是一个定义的ID名。应用ID选择器可以使用id属性来实现,HTML所有元素都支持该属性,只要标签中定义id属性,然后把该属性值设置为事先定义好的ID选择器的名称即可。

           【示例1】 演示如何在文档中设置ID样式。

            第一步:启动Dreamweaver,新建一个网页,在<body>标签内输入<div>标签,定义一个盒子:

    <div id="box">问君能有几多愁,恰似一江春水向东流</div>

            第二步:在<head>标签内添加<style type="text/css">标签,定义一个内部样式表。然后为该盒子定义固定的宽和高,并设置背景图像,以及边框和内边距大小。

    <style type="text/css">
        #box{
            background: url("./images/leaves.png") center bottom;
            height: 200px;
            width: 400px;
            border: solid 2px red;
            padding: 100px;
        }
    </style>

           在浏览器中的效果:

                              

            也可以为ID选择器指定标签范围。采用这种方法能够提高该样式的优先级。

            

            【示例2】针对上面的示例。可以在ID选择器前面增加一个div标签,这样div#box选择器的优先级会大于#box选择器的优先级。在同等条件下,浏览器会优先解析div#box选择器定义的样式。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style type="text/css">
            div#box{
                background: url("./images/leaves.png") center bottom;
                height: 200px;
                width: 400px;
                border: solid 2px red;
                padding: 100px;
            }
        </style>
    </head>
    <body>
        <div id="box">问君能有几多愁,恰似一江春水向东流</div>
    </body>
    </html>

          提示!!!

              一般通过ID选择器来定义HTML款架结构的布局效果,因为HTML框架元素的ID值都是唯一的。

    (3)、通配选择器

          如果HTML所有元素都需要定义相同的样式,这个时候就可以用到通配选择器,它是固定的,用星号(*)表示。

          【示例】针对上面示例中清除边距样式

    *{
        margin: 0;
        padding: 0;
    }

    二、组合选择器

    (1)、包含选择器

          包含选择器通过空格标识符来表示,前面的一个选择器表示包含框对象的选择器,而后面的选择器表示被包含的选择器。

          【示例】如何使用包含选择器为不同层次下的标签定义样式。

          第一步:启动Dreamweaver,新建一个网页,在<body>标签中输入如下结构。

    <div id="wrap">
        <div id="header">
            <p>1</p>
            <p>2</p>
            <p>3</p>
        </div>
        <div id="main">
            <p>4</p>
            <p>5</p>
            <p>6</p>
        </div>
    </div>

          第二步:在<head>标签中添加<style type="text/css">标签,定义一个内部样式表。然后定义样式,希望实现1、定义<div id="header">包含框内的段落文本字体大小为14px。2、定义<div id="main">包含框内的段落文本字体大小为12px。

          第三步:这个时候就可以利用包含选择器来快速定义了:

        <style type="text/css">
            #header p{
                font-size: 14px;
            }
            #main p{
                font-size: 12px;
            }
        </style>

          【示例2】针对上面的结构,用户也可以使用子选择器来定义他们的样式。

        <style type="text/css">
            #header > p{
                font-size: 14px;
            }
            #main > p{
                font-size: 12px;
            }
        </style>

          【示例3】要是页面的结构比较复杂的话,所包含的元素就不止子元素了,这个时候就只能使用包含选择器了

    <body>
        <div id="wrap">
            <div id="header">
                <h2>
                    <p>第一段文本</p>
                </h2>
                <p>第二段文本</p>
            </div>
            <div id="main">
                <div>
                    <p>第三段文本</p>
                    <p>第四段文本</p>
                </div>
                <p>主题文本</p>
            </div>
        </div>
    </body>

    (2)、子选择器

          子选择器是指定父元素所包含的子元素。子选择器使用尖角号(>)表示

  • 相关阅读:
    [洛谷P2742]【模板】二维凸包([USACO5.1]圈奶牛Fencing the Cows)
    [洛谷P4781]【模板】拉格朗日插值
    [洛谷P4550]收集邮票
    [洛谷P4900]食堂
    [洛谷P2057][SHOI2007]善意的投票
    [CF1083C]Max Mex
    bzoj3110: [Zjoi2013]K大数查询 【树套树,标记永久化】
    bzoj 1207: [HNOI2004]打鼹鼠 (dp)
    bzoj 1037: [ZJOI2008]生日聚会Party (dp)
    bzoj 2140: 稳定婚姻 (二分图)
  • 原文地址:https://www.cnblogs.com/tulintao/p/10914905.html
Copyright © 2020-2023  润新知