【小白鲨笔记】CSS(二)

二、CSS选择器

A、基本的四类选择器

  1. 元素选择器:选中对应元素/标签中的内容

    <body>
    	<p></p>
    	<div></div>
    </body>
    
    /* 标签名 {} */
    p {}
    div {}
    body {}
    
  2. id选择器:选中对应id属性值的元素

    <div id="main"></div>
    
    /* #id属性值 {} */
    #main {}
    
  3. 类选择器:选中对应class属性值的元素

    <div class="box"></div>
    
    /* .class属性值 {} */
    .box {}
    
  4. 通配符选择器:选中页面中所有元素

    <p></p>
    <div></div>
    
    * {} /* 上面有p和div两个元素,都被选中了 */
    

B、复合选择器

  1. 交集选择器:同时选中满足多个条件的元素(选择器连在一起

    <p id="first"></p>
    <p class="box"></p>
    
    p.box {} /* 只选中了第二个p */
    
  2. 并集选择器:同时选中对应选择器的元素(以 ‘,’ 进行分割)

    <p></p>
    <div></div>
    
    p, div {} /* 又选中p又选中div */
    
  3. 后代选择器:包含该元素的后代级的选择器(以空格进行分割)

    在搞明白后代选择器之前需要先了解元素之间的关系,包括以下三种:

    (1)父子关系:父元素包含子元素

    <div><p></p></div>
    <!-- div是父级元素,p 子级元素,p也是div的后代 -->
    

    (2)后代关系:祖先元素直接/间接包含后代元素

    <div><p><span></span></p></div>
    <!-- span、p都是div的后代元素 -->
    

    (3)兄弟关系:同级元素、在同一个父级元素下

    <p></p><h1></h1>
    <!-- p与h1为兄弟关系元素 -->
    

    通过后代选择器实际用法,了解如何使用:

    <p><span><div class="box"><p></p><h1></h1></div></span></p>
    
    p span .box p {} /* p父级下的span下的.box下的p */
    
  4. 子元素选择器:只有第一个子级/亲儿子才会被选中(以 ‘>’ 分割)

    <ul><li><a></a></li></ul>
    
    ul>li {} /* 只选中了ul下的li */
    

C、属性选择器

语法说明代码
E[a]选中包含指定属性a的元素a[title] {}
E[a=v]选中包含指定属性a和指定v属性值的元素a[href="#"] {}
E[a*=v]选中包含指定属性a和含有指定v属性值的元素a[href*="com"] {}
E[a^=v]选中包含指定属性a和指定v属性值开头的元素a[href^="www"] {}
E[a$=v]选中包含指定属性a和指定v属性值结尾的元素a[href$="cn"] {}

D、伪类选择器

伪类:不存在的类,表示元素的一种状态,本质是为选中的元素添加效果。

  1. 动态伪类

    选择器说明备注
    :link未访问过的a标签只适用于a标签
    :visited已访问过的a标签只适用于a标签
    :hover鼠标进入该元素的状态所有标签都可使用
    :active鼠标点击后该元素的状态所有标签都可使用

    更详细的操作:

    <a href="#"></a>
    <button></button>
    
    button:hover { color: red; } /* 鼠标进入该元素变红色 */
    a:link { color: blue; } /* 未点击下的状态该标签呈现蓝色 */
    a:visited { color: green; } /* 点击后该元素呈现绿色*/
    button:active { color: orange; } /* 鼠标点击后该元素呈现橙色 */
    
  2. 否定伪类:将符号条件元素去除

    <div></div><p></p>
    
    :not(p) { color: red; } /* 选中了div */
    
  3. 结构/位置伪类

选择器说明
:first-child第一个子元素
:last-child最后一个子元素
:nth-child(n)第n个子元素,范围:[0,∞[
:first-of-type第一个相同元素
:last-of-type最后一个相同元素
:nth-of-type(n)第n个相同元素
  1. 目标伪类:当前跳转到的目标(一般是a标签与id配合)

    <a href="#p1">跳转到p1</a>
    <a href="#p2">跳转到p2</a>
    <p id="p1">这里是p1</p>
    <p id="p2">这里是p2</p>
    
    p:target { color: red; } /* 点击到的p将变成红色 */
    
  2. 表单/UI元素状态

选择器说明
input:enabled/disabled开启/关闭
input/option:checkedinput或option选中
: focus获取焦点
:required必填元素

E、伪元素选择器

伪元素:不存在的元素,表示元素的特殊状态,本质是插入元素(默认行内inline)。

选择器说明
::first-letter首个单词/字
::first-line首行
::selection选中的文本
::before元素开始前创建新的伪元素
::after元素结束后创建新的伪元素

注意:创建新的伪元素必须添加content属性才能成功创建

<p> p标签 </p>
p::before { content: "before伪元素添加"; }
p::after { content: "after伪元素添加"; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值