解决vue scoped scss 无效的问题


Posted in Javascript onSeptember 04, 2020

今天遇到scoped内部的scss设置无效,解决办法如下:

/deep/

<style scoped lang="scss">
.position-el-steps {
 /deep/ .el-step.is-vertical {
 .el-step__description {
  margin-top: -20px;
 }
 
 .el-step__line {
  border-left: 2px dashed #c0c4cc;
  background-color: transparent;
  visibility: visible !important;
 }
 }
}

补充知识:【vue scoped 样式修改 】框架或插件组件样式更改及/deep/ 警告

前言

在做vue项目的时候,很多人应该已经碰到在vue 组件中,style 局部修改样式更改不了

<!-- 这个是 B 组件 -->
<template>
 <div>
 <h1 class="my">我是B组件</h1>
 </div>
</template>
<!-- A组件 -->
<template>
 <div class="boxA">
 <A/>
 </div>
</template>
<script>
 import A from './a'
 export default {
 name: 'index',
 components:{
 A
 }
 }
</script>
<style scoped>
 /* 使用 scoped 更改的组件样式。 */
 /*
 此处只是举个栗子使用,没有经过验证。很多人会下面这摸写,但是发现改变不了B组件的样式,其实是 scoped 局部的,所以不能。
 .boxA .my {
 color:red;
 }
 */
 .boxA /deep/ .my {
 color:red;
 }
</style>

修改 vue 插件或者 框架内组件使用

语法: .自己定义的类名 /deep/ .组件内的类名 { /* 代码块 */ }

看下图:

解决vue scoped scss 无效的问题

修改组件样式三种方式

以下例子以 vux 来弄。 /deep/ 和 >>> 在vue中会自动生成选择器的选择属性,你在页面中,会看到控制台中的会有 [data-v-xxxxxx] 的。

注意:在谷歌中,也有这个 /deep/ 中间选择器,但是谷歌放弃这个,如果在你控制台出现下面的图片的警告,证明你写错了,多写了 /deep/ https://www.chromestatus.com/features/4964279606312960

vue /deep/ 警告

解决vue scoped scss 无效的问题

解决方案:只要在页面中去查找下即可,利用vue渲染后会把所有的,会在控制台能看到

解决vue scoped scss 无效的问题

第一种:使用 /deep/

推荐的。看下面例子。注意:使用 cass 和 less 只能使用 /deep/ 这个方法

<template>
 <div class="box-out">
 <step v-model="step1" background-color='#fbf9fe'>
  <step-item title="步骤一" description="step 1"></step-item>
  <step-item title="步骤二" description="step 2"></step-item>
  <step-item title="步骤三" description="step 3"></step-item>
 </step>
 </div>
</template>

<script>
import { Step, StepItem, XButton, XHr } from 'vux'
export default {
 name: 'box',
 data () {
 return {
  step1: 1,
  step2: 0
 }
 },components: {
  Step,
  StepItem,
  XButton,
  XHr
 }
}
</script>

<style scoped>
 /*
 修改样式
 通过使用 box-out 的class类,找到下面组件内的class类,中间必须得使用 /deep/ 才能找到下面的class类。
 */
 .box-out /deep/ .xxxxx组件样式类 {
 color: red;
 }
</style>

方法二:使用 >>>

使用这三个大于号就可以找到,跟上面的 /deep/ 差不多。

<template>
 <div class="box-out">
 <step v-model="step1" background-color='#fbf9fe'>
  <step-item title="步骤一" description="step 1"></step-item>
  <step-item title="步骤二" description="step 2"></step-item>
  <step-item title="步骤三" description="step 3"></step-item>
 </step>
 </div>
</template>

<script>
import { Step, StepItem, XButton, XHr } from 'vux'
export default {
 name: 'box',
 data () {
 return {
  step1: 1,
  step2: 0
 }
 },components: {
  Step,
  StepItem,
  XButton,
  XHr
 }
}
</script>

<style scoped>
 /*
 修改样式
 通过使用 box-out 的class类,找到下面组件内的class类,中间必须得使用 >>> 才能找到下面的class类。
 */
 .box-out >>> .xxxxx组件样式类 {
 color: red;
 }
</style>

方法三:使用全局样式表(不推荐)

前面两种方式是都是局部的(推荐),也是可以通过全局样式表改,当然记得在外面添加命名空间(不懂css 的命名空间的话,自行百度)。这个推不推荐的得看个人。希望能够根据业务需求进行增加修改。

<!-- 情况下,引入全局得样式,或者是直接在 app.vue 文件中写全局得。下面是在全局得app.vue中写 -->
<template>
 <div id="app">
 <router-view/>
 </div>
</template>

<script>
export default {
 name: 'App'
}

</script>

<style>
/* 上面没加 scoped 属性,所以全局样式 */ 
.box-out .xxxxx组件样式类 {
 color: red;
 }
</style>

另外说点其他技巧

如果在浏览器中,看到当前的 vue组件属性 [data-v-xxxxxx] 的话,那么可以直接拿过来使用,碧如下面:

解决vue scoped scss 无效的问题

以上这篇解决vue scoped scss 无效的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS获取IUSR_机器名和IWAM_机器名帐号的密码
Dec 06 Javascript
js 鼠标拖动对象 可让任何div实现拖动效果
Nov 09 Javascript
使用JQUERY Tabs插件宿主IFRAMES
Jan 01 Javascript
jQuery中使用了document和window哪些属性和方法小结
Sep 13 Javascript
JavaScript使用focus()设置焦点失败的解决方法
Sep 03 Javascript
JQuery勾选指定name的复选框集合并显示的方法
May 18 Javascript
js遍历json的key和value的实例
Jan 22 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
Nov 11 jQuery
vue 文件目录结构详解
Nov 24 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
Apr 17 jQuery
vue中实现左右联动的效果
Jun 22 Javascript
node.js 基于cheerio的爬虫工具的实现(需要登录权限的爬虫工具)
Apr 10 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
Sep 04 #Javascript
基于vue中的scoped坑点解说
Sep 04 #Javascript
VUE : vue-cli中去掉路由中的井号#操作
Sep 04 #Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
Sep 04 #Javascript
vue-cli3中配置alias和打包加hash值操作
Sep 04 #Javascript
vue深度监听(监听对象和数组的改变)与立即执行监听实例
Sep 04 #Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
Sep 04 #Javascript
You might like
php下实现在指定目录搜索指定类型文件的函数
2008/10/03 PHP
php 文件缓存函数
2011/10/08 PHP
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
使用php实现网站验证码功能【推荐】
2017/02/09 PHP
通过javascript设置css属性的代码
2009/12/28 Javascript
jquery构造器的实现代码小结
2011/05/16 Javascript
js字符串转换成xml对象并使用技巧解读
2013/04/18 Javascript
jQuery中index()的用法分析
2014/09/05 Javascript
JavaScript中的异常捕捉介绍
2014/12/31 Javascript
javascript实现可全选、反选及删除表格的方法
2015/05/15 Javascript
AngularJS模块详解及示例代码
2016/08/17 Javascript
js监听input输入框值的实时变化实例
2017/01/26 Javascript
JS实现颜色动态淡化效果
2017/03/06 Javascript
vue-cli项目中怎么使用mock数据
2017/09/27 Javascript
手把手教你vue-cli单页到多页应用的方法
2018/05/31 Javascript
jQuery使用each遍历循环的方法
2018/09/19 jQuery
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
vue elementUI 表单校验功能之数组多层嵌套
2019/06/04 Javascript
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
Node.JS如何实现JWT原理
2020/09/18 Javascript
一个简单的python程序实例(通讯录)
2013/11/29 Python
高性能web服务器框架Tornado简单实现restful接口及开发实例
2014/07/16 Python
python和shell监控linux服务器的详细代码
2018/06/22 Python
解决python写入带有中文的字符到文件错误的问题
2019/01/31 Python
Python基于template实现字符串替换
2020/11/27 Python
解决import tensorflow导致jupyter内核死亡的问题
2021/02/06 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
Chantelle仙黛尔内衣美国官网:法国第一品牌内衣
2018/07/26 全球购物
行政人事专员岗位职责
2014/03/05 职场文书
计算机专业毕业生自荐信范文
2014/03/06 职场文书
长江七号观后感
2015/06/11 职场文书
2016机关干部作风建设心得体会
2016/01/21 职场文书
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏
Go语言 详解net的tcp服务
2022/04/14 Golang