vue組件中修改組件外元素樣式的兩種解決方案
在實(shí)際開發(fā)中,由于項(xiàng)目一開始設(shè)計(jì)的一些不合理性,會(huì)在組件中通過
html[media=pad]{ .xxx{ /* 組件樣式 */ } }
以上方式修改某些組件的樣式,這樣會(huì)涉及到從 html 層級(jí)選擇,由于我 style 標(biāo)簽是這樣寫的
<style lang="less" scoped></style>
所以導(dǎo)致組件內(nèi)部無(wú)法修改或選中組件外部元素,則無(wú)法修改外部元素的樣式。
解決方案:
兩種:
第一種:
直接新開一個(gè)全局的 style 標(biāo)簽
<style lang="less"></style>
在這里寫全局的樣式
第二種:
使用 :global
<style scoped> :global(.red) { color: red; } </style>
參考官方文檔:https://cn.vuejs.org/api/sfc-css-features.html#scoped-css
vue動(dòng)態(tài)改變組件外部元素樣式
主要還是通過原生的js來控制。
vue的主要開發(fā)對(duì)象是組件。組件內(nèi)部控制大家都輕車熟路,但組件外部呢?比如說改變組件外部元素樣式。
這種問題我前不久遇到過一個(gè)。就是有個(gè)頁(yè)面,承載了地圖。但頁(yè)面外部,是導(dǎo)航條啦,面包屑啦,標(biāo)簽條啦,頂部占據(jù)了一大塊位置。you know,現(xiàn)在寬屏幕,垂直方向尺寸小的可憐,作為地圖,肯定是占據(jù)面積越大越好啊,現(xiàn)在頂部一大堆亂七八糟。關(guān)鍵是,這些東東是框架提供的,也沒有提供什么屬性進(jìn)行設(shè)置。怎么辦?
主要是通過原生的js來控制。vue雖然作為一個(gè)開發(fā)框架,制訂了自己的一些語(yǔ)法規(guī)則,但原生的js它仍然支持。比如document.getElementById(),這種語(yǔ)句在組件方法里運(yùn)行一點(diǎn)問題沒有。這些語(yǔ)句放在頁(yè)面進(jìn)入時(shí)觸發(fā):
export default { ? components: { ? ? Map ? }, ? beforeRouteEnter (to, form, next) { // 進(jìn)入本頁(yè)面時(shí)隱藏面包屑 ? ? let bread = document.getElementsByClassName('main-layout-tag-nav-wrapper') ? ? if (bread.length > 0) bread[0].style.display = 'none' ? ? next() ? }, ? beforeRouteLeave (to, form, next) { // 離開本頁(yè)面時(shí)恢復(fù)面包屑 ? ? let bread = document.getElementsByClassName('main-layout-tag-nav-wrapper') ? ? if (bread.length > 0) bread[0].style.display = '' ? ? next() ? } }
到此這篇關(guān)于vue組件中修改組件外元素樣式的文章就介紹到這了,更多相關(guān)vue修改組件外元素樣式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue如何使用Element-ui表單發(fā)送數(shù)據(jù)與多張圖片到后端詳解
在做項(xiàng)目的時(shí)候遇到一個(gè)問題,前端需要上傳表單到后端,表單數(shù)據(jù)包括文本內(nèi)容和圖片,這篇文章主要給大家介紹了關(guān)于Vue如何使用Element-ui表單發(fā)送數(shù)據(jù)與多張圖片到后端的相關(guān)資料,需要的朋友可以參考下2022-04-04vxe-table?實(shí)現(xiàn)?excel?選擇一個(gè)單元格拖拽自動(dòng)復(fù)制新的單元格(示例代碼)
vxe-table是一款強(qiáng)大的表格組件,支持Excel風(fēng)格的操作,通過鼠標(biāo)右下角的擴(kuò)展按鈕,用戶可以拖拽選擇單元格并自動(dòng)復(fù)制內(nèi)容到擴(kuò)展區(qū)域的所有單元格中,本文通過示例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-01-01vue 根據(jù)數(shù)組中某一項(xiàng)的值進(jìn)行排序的方法
這篇文章主要介紹了vue 根據(jù)數(shù)組中某一項(xiàng)的值進(jìn)行排序的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08vue父組件向子組件傳遞多個(gè)數(shù)據(jù)的實(shí)例
下面小編就為大家分享一篇vue父組件向子組件傳遞多個(gè)數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-03-03一文詳細(xì)了解Vue?3.0中的onMounted和onUnmounted鉤子函數(shù)
Vue3.0引入了新的組件生命周期鉤子函數(shù)onMounted和onUnmounted,分別用于組件掛載后和卸載前的操作,這些鉤子函數(shù)為開發(fā)者提供了更多靈活性,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10解決echarts 一條柱狀圖顯示兩個(gè)值,類似進(jìn)度條的問題
這篇文章主要介紹了解決echarts 一條柱狀圖顯示兩個(gè)值,類似進(jìn)度條的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07Vue安裝sass-loader和node-sass版本匹配的報(bào)錯(cuò)問題
這篇文章主要介紹了Vue安裝sass-loader和node-sass版本匹配的報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04Vue中實(shí)現(xiàn)過渡動(dòng)畫效果實(shí)例詳解
最近在寫vue的一個(gè)項(xiàng)目要實(shí)現(xiàn)過渡的效果,雖然vue動(dòng)畫不是強(qiáng)項(xiàng),庫(kù)也多,但是基本的坑還是得踩扎實(shí),下面這篇文章主要給大家介紹了關(guān)于Vue中實(shí)現(xiàn)過渡動(dòng)畫效果的相關(guān)資料,需要的朋友可以參考下2022-08-08