解決vue scoped scss 無效的問題
今天遇到scoped內(nèi)部的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項目的時候,很多人應該已經(jīng)碰到在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 更改的組件樣式。 */ /* 此處只是舉個栗子使用,沒有經(jīng)過驗證。很多人會下面這摸寫,但是發(fā)現(xiàn)改變不了B組件的樣式,其實是 scoped 局部的,所以不能。 .boxA .my { color:red; } */ .boxA /deep/ .my { color:red; } </style>
修改 vue 插件或者 框架內(nèi)組件使用
語法: .自己定義的類名 /deep/ .組件內(nèi)的類名 { /* 代碼塊 */ }
看下圖:
修改組件樣式三種方式
以下例子以 vux 來弄。 /deep/ 和 >>> 在vue中會自動生成選擇器的選擇屬性,你在頁面中,會看到控制臺中的會有 [data-v-xxxxxx] 的。
注意:在谷歌中,也有這個 /deep/ 中間選擇器,但是谷歌放棄這個,如果在你控制臺出現(xiàn)下面的圖片的警告,證明你寫錯了,多寫了 /deep/ https://www.chromestatus.com/features/4964279606312960
vue /deep/ 警告
解決方案:只要在頁面中去查找下即可,利用vue渲染后會把所有的,會在控制臺能看到
第一種:使用 /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類,找到下面組件內(nèi)的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類,找到下面組件內(nèi)的class類,中間必須得使用 >>> 才能找到下面的class類。 */ .box-out >>> .xxxxx組件樣式類 { color: red; } </style>
方法三:使用全局樣式表(不推薦)
前面兩種方式是都是局部的(推薦),也是可以通過全局樣式表改,當然記得在外面添加命名空間(不懂css 的命名空間的話,自行百度)。這個推不推薦的得看個人。希望能夠根據(jù)業(yè)務需求進行增加修改。
<!-- 情況下,引入全局得樣式,或者是直接在 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 無效的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
vue自定義switch開關組件,實現(xiàn)樣式可自行更改
今天小編就為大家分享一篇vue自定義switch開關組件,實現(xiàn)樣式可自行更改,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11vue項目前端微信JSAPI與外部H5支付相關實現(xiàn)過程及常見問題
這篇文章主要介紹了vue項目前端微信JSAPI與外部H5支付相關實現(xiàn)過程及常見問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04vue中使用echarts實現(xiàn)動態(tài)數(shù)據(jù)綁定以及獲取后端接口數(shù)據(jù)
總結一下自己最近項目中用echarts動態(tài)獲取接口數(shù)據(jù)并畫圖的方法,下面這篇文章主要給大家介紹了關于vue中使用echarts實現(xiàn)動態(tài)數(shù)據(jù)綁定以及獲取后端接口數(shù)據(jù)的相關資料,需要的朋友可以參考下2022-07-07vue3中watch和watchEffect實戰(zhàn)梳理
這篇文章主要介紹了vue3中watch和watchEffect實戰(zhàn)梳理,watch和watchEffect都是vue3中的監(jiān)聽器,但是在寫法和使用上是有區(qū)別的。下文介紹他們之間的方法及區(qū)別,需要的朋友可以參考一下2022-07-07Pycharm中開發(fā)vue?element項目時eslint的安裝和使用步驟
這篇文章主要介紹了Pycharm中開發(fā)vue?element項目時eslint的安裝和使用,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05在Vue中使用動態(tài)import()語法動態(tài)加載組件
在Vue中,你可以使用動態(tài)import()語法來動態(tài)加載組件,動態(tài)導入允許你在需要時異步加載組件,這樣可以提高應用程序的初始加載性能,本文給大家介紹在Vue中使用動態(tài)import()語法動態(tài)加載組件,感興趣的朋友一起看看吧2023-11-11