【前端】CSS常用选择器总结

选择器

前言

选择器优先级

继承 < 通配符选择器 < 标签选择器 < 类选择器 < id选择器 < 行内样式 < !important

直接上代码

js 复制代码
<template>
  <div>
    <exitButton />
    <h3 class="mt-2">下面UnoCss的使用---------------------------------------</h3>
    <p class="w-125 bg-pink h-25 text-5 rounded-full">直接类里就是样式,原子化Css确实不错</p>
    <p class="h-[10px] mt-[30px]">指定高度和margin-top,配合vs插件 WindiCSS IntelliSense使用,看我其他文章介绍</p>
    <p class="text-[20px] mt-4">文本20大小,不指定则X4,比如mt-4就是margin-top:16px</p>
    <br />
    <el-button type="success">深度选择器使用有 >>> ::v-deep /deep/ :deep()</el-button>
    <br />
    <h3 class="mt-2">回顾一下其他选择器的使用---------------------------------------</h3>
    <span>标签选择器aqua</span>
    <div class="cls">
      类选择器blueviolet
      <span>类子代,如果span有声明颜色则使用申明的,否则继承cls颜色aqua</span>
    </div>
    <div id="id1">id选择器red</div>
    <hr />
    <h3 class="mt-2">复合选择器的使用---------------------------------------</h3>
    <div class="clsF">
      <p class="children1">
        子代选择器 和 后代选择器
        <span>
          你干嘛1
          <span>
            你干嘛2
            <span>你干嘛3</span>
          </span>
        </span>
      </p>
      <p class="clsB1">并集选择器1</p>
      <p class="clsB2">并集选择器2</p>
      <p class="clsB1 clsJ2 clsJ1">交集选择器</p>
      <p class="hoverT">伪类选择器</p>
    </div>
    <input type="text" />
  </div>
</template>

<script setup></script>

<style lang="scss" scoped>
[type='text'] {
  //属性选择器还可以[type]、[type^=a]、[title$=a] 解释:包含这个属性以属性值a开头、以a结尾
  color: blue;
}

.clsF > p:first-child {
  //结构伪类选择器第一个
  color: skyblue !important;
}
.clsF > p:nth-child(2n) {
  //结构伪类选择器2的倍数
  color: red !important;
}
.clsF > p:last-child {
  //结构伪类选择器最后一个
  color: skyblue !important;
}


.hoverT:hover {
  //伪类选择器鼠标放上文字变红
  color: crimson;
}
.clsJ2.clsJ1 {
  //交集选择器,拥有并1的样式和自己的样式覆盖1,如果自己样式几个不用空格同级别
  font-weight: 600;
  background: green;
}
.clsJ2 {
  background: gray !important; //优先级最高
}
.clsB2,
.clsB1 {
  //并集选择器,都有
  background: pink;
}
.clsF > .children1 {
  //子代选择器
  font-weight: 800;
}

.clsF span {
  //后代选择器
  color: chartreuse;
}
span {
  //标签选择器
  color: aqua;
}
.cls {
  //类型选择器
  color: blueviolet;
}
#id1 {
  //id选择器
  color: red;
}
* {
  //通配符选择器 所有标签
  font-size: 20px;
}
:deep(.el-button > span) {
  //深度选择器
  color: pink;
}
</style>

深度选择器

升级vue2项目到vue3时候发现

shell 复制代码
 the >>> and /deep/ combinators have been deprecated. Use :deep() instead.

这是因为项目使用的 css 扩展语言是 dart-sass,不支持 /deep/ (less/node-sass)和 >>>(css) 的写法,小括号里是扩展语言。 用:deep()代替或者::v-deep

深度选择器一般作用于第三方的组件里的样式,比如element-ui,如下有scoped的情况不加深度选择器则无法修改span里的颜色

css 复制代码
<style lang="scss" scoped>
::v-deep(.el-button > span) {
  color: green;
}
</style>

:deep(.el-button > span) {
  color: green;
}

总结:使用

js 复制代码
::v-deep |  :deep()
相关推荐
发现一只大呆瓜40 分钟前
SSO单点登录:从同域到跨域实战
前端·javascript·面试
发现一只大呆瓜41 分钟前
告别登录中断:前端双 Token无感刷新
前端·javascript·面试
Cg136269159742 小时前
JS-对象-Dom案例
开发语言·前端·javascript
无限大62 小时前
《AI观,观AI》:善用AI赋能|让AI成为你深耕核心、推进重心的“最强助手”
前端·后端
烛阴2 小时前
Claude Code Skill 从入门到自定义完整教程(Windows 版)
前端·ai编程·claude
lxh01133 小时前
数据流的中位数
开发语言·前端·javascript
神仙别闹3 小时前
基于NodeJS+Vue+MySQL实现一个在线编程笔试平台
前端·vue.js·mysql
zadyd4 小时前
Workflow or ReAct ?
前端·react.js·前端框架
北寻北爱6 小时前
vue2和vue3使用less和scss
前端·less·scss
IT_陈寒6 小时前
Redis性能提升3倍的5个冷门技巧,90%开发者都不知道!
前端·人工智能·后端