vue對(duì)插件(iview,elementui,treeselect)樣式的局部修改方式
(iview,elementui,treeselect)樣式的局部修改
學(xué)習(xí)描述
在vue的使用過程中,我們知道插件的使用可以大大的提高我們的開發(fā)效率,這寫插件都是經(jīng)過很多人的驗(yàn)證和修改的,要比我們自己寫方便的很多。
但是在開發(fā)的過程中,有些插件一些在特定的頁面我們可能不要原來的樣式,需要進(jìn)行修改。然而我們?cè)谑褂胿ue的過程中都會(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?封裝簡(jiǎn)易PaginationSelect組件的詳細(xì)步驟
- 解決vue elementUI 使用el-select 時(shí) change事件的觸發(fā)問題
- vue中echarts的用法及與elementui-select的協(xié)同綁定操作
- vue elementUI select下拉框如何設(shè)置默認(rèn)值
相關(guān)文章
vue使用SVG實(shí)現(xiàn)圓形進(jìn)度條音樂播放
這篇文章主要為大家詳細(xì)介紹了vue使用SVG實(shí)現(xiàn)圓形進(jìn)度條音樂播放,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04Vue3將虛擬節(jié)點(diǎn)渲染到網(wǎng)頁初次渲染詳解
這篇文章主要為大家介紹了Vue3將虛擬節(jié)點(diǎn)渲染到網(wǎng)頁初次渲染詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03vue3?element-plus實(shí)現(xiàn)圖片預(yù)覽功能實(shí)例
這篇文章主要給大家介紹了關(guān)于vue3?element-plus實(shí)現(xiàn)圖片預(yù)覽功能的相關(guān)資料,在項(xiàng)目中我們經(jīng)常會(huì)碰到圖片預(yù)覽的功能需求,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09vue報(bào)錯(cuò)Failed to execute 'appendChild&apos
這篇文章主要為大家介紹了vue報(bào)錯(cuò)Failed to execute 'appendChild' on 'Node'解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11element中datepicker日期選擇器選擇周一到周日并實(shí)現(xiàn)上一周和下一周的方法
最近項(xiàng)目中需要用到日期選擇器,所以這里給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于element中datepicker日期選擇器選擇周一到周日并實(shí)現(xiàn)上一周和下一周的相關(guān)資料,需要的朋友可以參考下2023-09-09VUE+Canvas實(shí)現(xiàn)簡(jiǎn)單五子棋游戲的全過程
這篇文章主要給大家介紹了關(guān)于VUE+Canvas實(shí)現(xiàn)簡(jiǎn)單五子棋游戲的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05vue實(shí)現(xiàn)文章內(nèi)容過長(zhǎng)點(diǎn)擊閱讀全文功能的實(shí)例
下面小編就為大家分享一篇vue實(shí)現(xiàn)文章內(nèi)容過長(zhǎng)點(diǎn)擊閱讀全文功能的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-12-12解決vue-cli項(xiàng)目開發(fā)運(yùn)行時(shí)內(nèi)存暴漲卡死電腦問題
最近開發(fā)一個(gè)vue項(xiàng)目時(shí)遇到電腦卡死問題,突然間系統(tǒng)就非??ǎ缓罂ㄖㄖ退罊C(jī)了,鼠標(biāo)也動(dòng)不了了,只能冷啟動(dòng)。這篇文章主要介紹了vue-cli項(xiàng)目開發(fā)運(yùn)行時(shí)內(nèi)存暴漲卡死電腦問題,需要的朋友可以參考下2019-10-10Element實(shí)現(xiàn)登錄+注冊(cè)的示例代碼
登錄注冊(cè)是最常用的網(wǎng)站功能,本文主要介紹了Element實(shí)現(xiàn)登錄+注冊(cè)的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09