CSS选择器分类梳理并高亮重点

前言

主要内容来自菜鸟教程

CSS 选择器 | 菜鸟教程

分类是我自己理解的分类,示例说明优化统一了表述风格。

正文

选择器CSS示例示例说明
基础
*2*选择所有元素
:root3:root选择文档的根元素
element1p选择所有<p>元素
:not(selector)3:not(p)选择所有并非p元素的元素
element,element1div,p选择所有<div>元素和 <p> 元素
#id1#firstname选择所有id="firstname"的元素
.class1.intro选择所有class="intro"的元素
element.class1p.hometown选择所有 class="hometown" 的 <p> 元素
位置关系
element element1div p选择<div>元素内的所有<p>元素
element>element2div>p选择所有父级是 <div> 元素的 <p> 元素
element1~element23p~ul选择p元素之后的所有ul元素
element+element2div+p选择所有 <div> 元素之后紧跟的第一个 <p> 元素
:first-letter1p:first-letter选择所有<p>元素的第一个字母
:first-line1p:first-line选择所有<p>元素的第一行
:before2p:before在所有<p>元素之前插入内容
:after2p:after在所有<p>元素之后插入内容
包含关系
:first-of-type3p:first-of-type选择是父级第一个p元素的所有p元素
:nth-of-type(n)3p:nth-of-type(2)选择是其父级第二个p元素的所有p元素
:last-of-type3p:last-of-type选择是父级最后一个p元素的所有p元素
:nth-last-of-type(n)3p:nth-last-of-type(2)选择是其父级倒数第二个p元素的所有p元素
:only-of-type3p:only-of-type选择是父级唯一p元素的所有p元素
:empty3p:empty选择没有任何子级的所有p元素(包括文本节点
父子关系
:first-child2p:first-child选择是其父级第一个子级的所有p元素
:nth-child(n)3p:nth-child(2)选择是父级第二个子元素的所有p元素
:last-child3p:last-child选择是其父级最后一个子级的所有p元素
:nth-last-child(n)3p:nth-last-child(2)选择是父级倒数第二个子级的所有p元素
:only-child3p:only-child选择是父级唯一子级的所有p元素
属性
[attribute]2[target]选择所有设置target属性元素
[attribute=value]2[target=-blank]选择所有target属性等于="-blank"的元素
:lang(language)2p:lang(it)选择所有lang属性的起始值="it"的<p>元素
[attribute|=language]2[lang|=en]选择所有lang 属性等于 en,或者 en- 为开头的元素
[attribute^=value]3a[src^="https"]选择所有src属性的值以"https"开头的元素
[attribute$=value]3a[src$=".pdf"]选择所有src属性的值以".pdf"结尾的元素
[attribute*=value]3a[src*="runoob"]选择所有src属性的值包含子字符串"runoob"的元素
[attribute~=value]2[title~=flower]选择所有title属性包含单词"flower"的元素
链接状态
:link1a:link选择所有未访问链接
:visited1a:visited选择所有访问过的链接
:active1a:active选择活动链接
:hover1a:hover选择鼠标在链接上面时
:target3#news:target选择当前活动的#news元素(包含该锚名称的点击的URL)
表单状态
:focus2input:focus选择获取焦点的input元素
:enabled3input:enabled选择所有已启用的输入元素
:disabled3input:disabled选择所有禁用的输入元素
:checked3input:checked选择所有选中的输入元素
::selection3::selection选择被用户选中或处于高亮状态的部分
表单属性
:out-of-range3:out-of-range选择值在指定区间之外的input元素
:in-range3:in-range选择值在指定区间之内的input元素
:read-write3:read-write选择可读及可写的元素
:read-only3:read-only选择设置 "readonly"(只读) 属性的元素
:optional3:optional选择可选的输入元素
:required3:required选择设置 "required" 属性的元素
:valid3:valid选择输入值合法的元素
:invalid3:invalid

选择输入值非法的元素测试代码

测试代码

<!DOCTYPE >
<html>
  <head>
    <meta charset="utf-8" />
    <meta
      name="viewport"
      content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"
    />
    <title>测试css</title>
    <style>
      div {
        width: 400px;
        min-height: 100px;
        border: 1px solid #999;
      }
      div + p {
        color: red;
      }
      p.testp::first-letter {
        color: blue;
        font-weight: bold;
        font-size: 2rem;
      }
      p.testp::first-line {
        background-color: #ccc;
      }
      p:first-of-type {
        font-size: 2rem;
      }
      p:empty {
        width: 200px;
        height: 36px;
        background-color: green;
      }
    </style>
  </head>
  <body>
    <div class="test1">测试div1</div>
    <div>
      <p>测试p,文档中第一个p</p>
      <p>测试p,文档中第二个p</p>
    </div>
    <p>测试p1</p>
    <div class="test2">测试div2</div>
    <p>测试p2</p>
    <div class="test3">测试div3</div>
    <p>测试p3</p>
    <hr />
    <p class="testp">
      Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, id
      provident! Ex eum harum recusandae, ab ut, enim odit necessitatibus
      impedit eligendi soluta, magnam eveniet perferendis a nihil hic minima.
    </p>
    <p></p>
    <script></script>
  </body>
</html>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Irene1991

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值