修改elementUi自帶組件樣式不生效問(wèn)題及解決

問(wèn)題:

總是遇到用深度選擇器也修改不了elemenUi自帶樣式的問(wèn)題。
以為是原生的bug。然后我再一次遇到了,在使用el-select時(shí),修改el-select-dropdown的樣式不生效。

原因分析

后來(lái)審查元素時(shí)發(fā)現(xiàn)渲染后的dom元素壓根兒就不在#app元素內(nèi)部。原來(lái)是el-select里面的el-select-dropdown元素渲染后會(huì)脫離#app。所以使用深度選擇器也無(wú)法定位該元素。

解決

發(fā)現(xiàn)問(wèn)題根源后,換了一種搜索的方式,之前都是搜elementUi組件樣式不生效問(wèn)題,沒(méi)有找到合適的解決方法,現(xiàn)在搜el-select組件樣式修改。bingo,終于找到對(duì)癥下藥的博文,完美解決!方法如下:
在el-select 上增加一個(gè)屬性:popper-append-to-body="false",這個(gè)屬性用于將渲染后的元素放入#app元素。
再使用深度選擇器修改就可以了。
參考博文:https://blog.csdn.net/qq_44747461/article/details/106140453

總結(jié)

類(lèi)似不起作用都可看看是否是上述原因,再選擇合適的關(guān)鍵詞搜索解決方法。


后記1:以上為el-select的樣式的修改方式,有時(shí)遇到其他組件樣式不生效問(wèn)題,分析并解決如下,即可完美處理:
將<style lang="scss" scope>中的scope去掉,此時(shí)變?yōu)槿值臉邮剑瑸榱舜_保其他單頁(yè)面中相應(yīng)元素的樣式不會(huì)隨之改變,需要用當(dāng)前的父級(jí)定位該元素,即在其父級(jí)上添加一個(gè)class,在修改對(duì)應(yīng)的子元素樣式,并且再刷新瀏覽器(重要?。?,才能生效。(作為修改樣式的首選)
(不推薦使用/deep/深度選擇器,因?yàn)橹贿m用于chrome瀏覽器,存在瀏覽器兼容問(wèn)題)
后記2:修改el-dropdown樣式方法:
在el-dropdown-menu 上加類(lèi)名,再在<style lang="scss" >下添加樣式。因?yàn)榕cel-select的原因一樣,渲染后都不在app元素下,所以加一個(gè)父元素并不會(huì)定位到。注意此時(shí)為全局樣式,避免修改其他單頁(yè)面的樣式
后記3:修改el-date-picker樣式:
增加popper-class 設(shè)置新的樣式如:popper-class="date-style"

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容