当前位置: 首页 > news >正文

Vue学习记录之十七 css中样式穿透及新特征介绍

一、scoped原理

在vue页面的css中,有一个设置为scoped,使用以后dom的节点会出现下面的规则。其实我们打完包就是一个html页面,如果不做处理,将会导致css混乱。

  1. 给HTML的DOM节点加一个不重复data属性(形如:data-v-123)来表示他的唯一性
  2. 在每句css选择器的末尾(编译后的生成的css语句)加一个当前组件的data属性选择器(如[data-v-123])来私有化样式
  3. 如果组件内部包含有其他组件,只会给其他组件的最外层标签加上当前组件的data属性

我们在vite框架中,引入element-plus组件,在App.vue中,输入下面代码:

<template><main><el-input placeholder="测试代码" class="ipt"></el-input></main>
</template>
<script setup lang='ts'>
import { ref,reactive } from 'vue'
</script>
<style scoped lang="less">
.ipt{width: 300px;margin: 100px 400px;
}
</style>

样式就会出现id或class[随机data编码]
在这里插入图片描述
在这里插入图片描述
通过上图,我们如果要修改 el-input__inner的颜色

.ipt{width: 300px;margin: 100px 400px;.el-input__inner{background: red;}
}

运行代码,发现没有变颜色,我们看看源代码
在这里插入图片描述
他后面跟的是[data-v-7a7a37b1], 但是源码后面没有data属性,导致无法识别。解决方法,见下面样式穿透。

二、样式穿透

有一些vue常用的组件库,某些样式无法满足我们的需求,需要进行改动,这时就需要用到样式穿透。上面我们无法修改背景颜色,可以使用deep函数来解决,也就是样式穿透。

.ipt{width: 300px;margin: 100px 400px;//这里deep是个函数,参数就是选择器,后面的内容就是样式。//作用是将属性选择器前移到父级后面,这个父级是.ipt。:deep(.el-input__inner){background: red;}
}

http://www.lryc.cn/news/465532.html

相关文章:

  • Nature 正刊丨海洋涡旋中常见的地下热浪和寒潮
  • 代码随想录算法训练营第六十二天| prim算法,kruskal算法
  • Newstar_week1_week2_wp
  • 今天我们研究一段代码(异或位运算)
  • pycharm中使用ctrl+鼠标滚轮改变字体大小
  • 【算法-动态规划】打家劫舍专题
  • 关于技术管理者的一些思考
  • Alpha-CLIP: A CLIP Model Focusing on Wherever You Want CVPR 2024
  • Golang | Leetcode Golang题解之第495题提莫攻击
  • 04 go语言(golang) - 变量和赋值过程
  • 语言/图像/视频模型一网打尽!BigModel大模型开放平台助力开发者轻松打造AI新应用!
  • Go语言Linux环境搭建以编写第一个Go程序
  • 使用 Go 构建一个最小的 API 应用
  • MySQL 日常维护指南:常见任务、频率及问题解决
  • oracle ORA-24920:列大小对于客户机过大
  • 使用 Docker compose 部署 Nacos(达梦数据库)
  • 人工智能 | 阿里通义千问大模型
  • Windows环境下Qt Creator调试模式下qDebug输出中文乱码问题
  • java防止表单重复提交的注解@RepeatSubmit
  • HTTP快速入门
  • Nacos简介
  • 基于深度学习的稳健的模型推理与不确定性建模
  • C语言 sizeof 的介绍,以及sizeof计算数组名、 数组首地址、数组的元素之间的区别
  • 深入理解Oracle闪回技术
  • Go 语言初探
  • 使用ROS资源编排一键部署LNMP建站环境,手动整理教程
  • 猎板PCB镍钯金工艺你了解多少?
  • 热更新解决方案2 —— Lua语法相关知识点
  • 【c++ arx选项板】
  • 新时代下吉林省城乡流动人才就业问题及路径探析