CSS中的选择符(C3)

选择符的运用会让你减轻对标识类选择符取名的困扰,例如:(class="" ,id=""),特别是class。也可让你对一些简单的动画效果,不必大费周章去写个脚本,例如:移入移出效果,点击后会怎么样等。。。

选择符(Selectors)分类

  • 元素选择符
    通配符* ,元素类型E(例如:div{} , li{}) ,类class(.类名{}) ,ID{#唯一名{}}
    上面的使用在学习C2S时就是经常被运用的
	--通配符选择符的运用一般给元素设置统一样式时使用,例如文本样式,margin padding的偏移量等
	
	--元素类型选择符配合关系选择符会比较好,一般用来设置统一样式,例如ul 下的li( ul li{})这样就不用给每个li设置class了
    
    --class,id都是用来标识元素的,但class可以设置多个,而id只能设置一个(最好),当你id名相同时,设置的样式一样会显示出来,但我还不如用class。对吧!

示例:
在这里插入图片描述

  • 关系选择符
    兄弟选择符 ~
只会将选中自身身后的所有兄弟,并且必须是同一父类

示例:当我选取自身兄弟元素时,只有和h4同辈被改变了,自身以及比自己打的以及同辈子类都不会变化

在这里插入图片描述

  • 属性选择符
    E[att^=“val”] :选择具有att属性且属性值为以val开头的字符串的E元素。
    E[att$=“val”]:选择具有att属性且属性值为以val结尾的字符串的E元素。
    E[att*=“val”]:选择具有att属性且属性值为包含val的字符串的E元素。

示例:
在这里插入图片描述

  • 伪类选择符
    C3中添加很多伪类选择符去对元素进行查找,以及改变元素状态的伪类。
主要讲下 E:target 匹配相关URL指向的E元素
如果你想学习其他C3伪类,可上http://css.doyoe.com/

也就是URL后面跟锚点# ,指向文档内某个具体的元素。这个被链接的元素就是目标元素(target element),:target选择器用于选取当前活动的目标元素。

写个案例可能会更加直观:

<body>
    <a href="#red"></a>
    <a href="#yellow"></a>
    <a href="#blue"></a>
    <a href="#green">绿</a>

    <div id="red"></div>
    <div id="yellow"></div>
    <div id="blue"></div>
    <div id="green"></div>
</body>
<style>
        body {
            margin: 0;
        }

        a[href] {
            display: inline-block;
            text-decoration: none;
            border: 2px black;
            border-style: outset;
            padding: 0px 10px;
            margin: 5px;
            position: relative;
            z-index: 100;
        }

        div {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
        }
		//当我点击a标签href="#red",目标元素id="red"的div被选中,盒子的背景颜色变为红色。
        #red:target {
            background-color: red;
        }
		
        #yellow:target {
            background-color: yellow;
        }

        #blue:target {
            background-color: blue;
        }

        #green:target {
            background-color: green;
        }

        div:active{
            background-color: #fff;
        }
    </style>

效果:
当我点击红时,屏幕会变红,点击黄时,屏幕会变黄,点击其他位置会变白
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 伪对象选择符
    主要讲下::before,::after,他们在C2时就存在了,到了C3时它们被做了些修改。
    C3主要将伪对象选择符(Pseudo-Element Selectors)前面的单个冒号(:)修改为双冒号(::)用以区别伪类选择符(Pseudo-Classes Selectors),但以前的写法仍然有效。

    • ::before :设置在对象前(依据对象树的逻辑结构)发生的内容。用来和content属性一起使用
    • ::after:设置在对象后(依据对象树的逻辑结构)发生的内容。用来和content属性一起使用

这里我们就列举两个例子来实现个个简单效果(这只是单单的视觉效果)
在这里插入图片描述
点击后:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值