vue對(duì)插件(iview,elementui,treeselect)樣式的局部修改方式
(iview,elementui,treeselect)樣式的局部修改
學(xué)習(xí)描述
在vue的使用過程中,我們知道插件的使用可以大大的提高我們的開發(fā)效率,這寫插件都是經(jīng)過很多人的驗(yàn)證和修改的,要比我們自己寫方便的很多。
但是在開發(fā)的過程中,有些插件一些在特定的頁面我們可能不要原來的樣式,需要進(jìn)行修改。然而我們在使用vue的過程中都會(huì)使用scope防止當(dāng)前頁面的樣式污染到其它的頁面,可是這樣也就導(dǎo)致了我們修改了插件的樣式無法起到作用。只有全局修改才能起到作用。
那么有沒有別的方式,既能修改插件的樣式而且有不會(huì)污染到全局的樣式呢? 答案是:有的
具體方法
1> /deep/ 深層穿透
scoped能有效的方式樣式的全局污染,但是同時(shí)也是阻止了我們對(duì)第三方插件樣式的修改,使用/deep/樣式穿透既可以達(dá)到修改第三方插件樣式的效果,而且不會(huì)對(duì)全局造成污染。
? /deep/ .ivu-tooltip-light .ivu-tooltip-inner {
? ? background-color: #ecc9e2;
? ? color: #f30000;
? }2> >>>
其實(shí)這個(gè)就是/deep/的另外一種寫法,只不過,可能有些sass,less之類的預(yù)處理無法正確的解析,所以最好是使用/deep/.
? >>> .ivu-tooltip-light .ivu-tooltip-inner {
? ? background-color: #ecc9e2;
? ? color: #f30000;
? }注意:穿透方法實(shí)際上違反了scoped屬性的意義。而且在vue中過多使用scoped導(dǎo)致頁面打包文件體積增大。
vue+iview 樣式穿透-修改第三方插件樣式
修改第三方插件樣式
方法一:
在以前沒有用深度選擇器的時(shí)候,當(dāng)想修改第三方插件樣式時(shí),通常做法都是在公共樣式表文件中,加一個(gè).zujian-parent-class .disanfang-class來修改。
例如我想修改iview單元格樣式:
common.styl文件中這樣寫
.first-table .ivu-table-cell ?? ?padding-left: 10px;
方法二:
和方法一差不多的還可以在組件內(nèi)寫一個(gè)無scoped的
<style lang="stylus"> /*此處寫覆蓋樣式*/ .first-table .ivu-table-cell ?? ?padding-left: 10px; </style> <style lang="stylus" scoped> /*此處寫局部樣式*/ </style>
方法三:
用深度選擇器形成樣式穿透是一個(gè)更好的選擇,這樣不用擔(dān)心同名類造成樣式污染
page.vue組件中
<style lang="stylus" scoped>
? ? /*樣式穿透 可以使用/deep/ >>> ::v-deep?
? ? 具體使用哪個(gè)根據(jù)不同的語言、版本以及webpack版本(webpack2.X的一般不能用 >>>)有所不同 */
? ? .first-table ?/deep/ .ivu-table-cell {
? ? ? ? height: 37px;
? ? ? ? line-height:37px;
? ? }
</style>注意:/deep/ >>> ::v-deep 注意事項(xiàng):
組件內(nèi)部類無法穿透成功。
例如下單菜單組件,最外層的.ivu-dropdown可以,但是其下一層.ivu-dropdown-rel是無法穿透的。
經(jīng)驗(yàn)證,以ivewui為例,組件最外層的類都是可以的,但是組件內(nèi)部的類通過第三種方法有些是無法生效的。其實(shí)這也是根據(jù)具體組件的加載先后決定的。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Vue+EleMentUI實(shí)現(xiàn)el-table-colum表格select下拉框可編輯功能實(shí)例
- vue+elementUI的select下拉框回顯為數(shù)字問題
- vue之elementUi的el-select同時(shí)獲取value和label的三種方式
- vue elementui表格獲取某行數(shù)據(jù)(slot-scope和selection-change方法使用)
- Vue+ElementUI?封裝簡易PaginationSelect組件的詳細(xì)步驟
- 解決vue elementUI 使用el-select 時(shí) change事件的觸發(fā)問題
- vue中echarts的用法及與elementui-select的協(xié)同綁定操作
- vue elementUI select下拉框如何設(shè)置默認(rèn)值
相關(guān)文章
在Vue3項(xiàng)目中集成CodeMirror創(chuàng)建SQL編輯器的方法詳解
在這篇文章中,我們將學(xué)習(xí)如何在 Vue 3 項(xiàng)目中集成 CodeMirror,以創(chuàng)建一個(gè)支持 SQL 語法高亮和自動(dòng)補(bǔ)全的代碼編輯器,需要的朋友可以參考下2025-04-04
深入淺析Vue.js中 computed和methods不同機(jī)制
這篇文章給大家介紹了Vue.js中 computed和methods不同機(jī)制,在vue.js中,methods和computed兩種方式來動(dòng)態(tài)當(dāng)作方法使用,文中還給大家提到了computed和methods的區(qū)別,感興趣的朋友一起看看吧2018-03-03
基于Vue實(shí)現(xiàn)卡片無限滾動(dòng)動(dòng)畫
這篇文章主要為大家詳細(xì)介紹了如何利用Vue制作出卡片無限滾動(dòng)動(dòng)畫,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)有一定幫助,需要的可以參考一下2022-05-05
關(guān)于Vue Router中路由守衛(wèi)的應(yīng)用及在全局導(dǎo)航守衛(wèi)中檢查元字段的方法
這篇文章主要介紹了關(guān)于Vue Router中路由守衛(wèi)的應(yīng)用及在全局導(dǎo)航守衛(wèi)中檢查元字段的方法,實(shí)現(xiàn)方法有兩種,本文通過實(shí)例代碼對(duì)每種方法介紹的很詳細(xì),需要的朋友參考下2018-12-12
在Vue 3中使用OpenLayers讀取WKB數(shù)據(jù)并顯示圖形效果
WKB作為一種緊湊的二進(jìn)制格式,在處理和傳輸空間數(shù)據(jù)時(shí)具有明顯優(yōu)勢,本文介紹了如何在Vue 3中使用OpenLayers讀取WKB格式的空間數(shù)據(jù)并顯示圖形,感興趣的朋友一起看看吧2024-12-12
Vue.js常用指令之循環(huán)使用v-for指令教程
這篇文章主要跟大家介紹了關(guān)于Vue.js常用指令之循環(huán)使用v-for指令的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-06-06
基于uniapp?vue3?的滑動(dòng)搶單組件實(shí)例代碼
文章介紹了如何在Vue組件的`onMounted`生命周期鉤子中獲取`movable-area`和`movable-view`組件的實(shí)例,從而計(jì)算出可滑動(dòng)的距離,示例代碼展示了這一過程,感興趣的朋友跟隨小編一起看看吧2025-02-02
vue中g(shù)etters的使用與四個(gè)map方法的使用方式
這篇文章主要介紹了vue中g(shù)etters的使用與四個(gè)map方法的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01

