首頁 >web前端 >js教程 >在vue裡面透過父元件如何修改子元件樣式

在vue裡面透過父元件如何修改子元件樣式

亚连
亚连原創
2018-06-07 17:45:252640瀏覽

下面我就為大家分享一篇vue裡面父元件修改子元件樣式的方法,具有很好的參考價值,希望對大家有幫助。

在使用 vue 的開發中,我們有時會引用外部元件,包括 UI 元件(ElementUI、iview)。

當 c9ccee2e6ea535a969eb3f532ad9fe89 標籤有 scoped 屬性時,它的 CSS 只作用於目前元件中的元素。

但是在父元件中加入 scoped 之後,父元件的樣式將不會滲透到子元件中,所以在父元件中書寫子元件的樣式是無效果的。

一、去掉scoped

在父元件的c9ccee2e6ea535a969eb3f532ad9fe89 去掉scoped 後,父元件中可以書寫子元件的樣式,但是你會擔心這樣會污染全域樣式。

【因為我們知道正確使用全域樣式的姿勢是使用一個全域的app.css】

二、混用本地和全域樣式

你可以在一個元件中同時使用有作用域和無作用域的樣式:

<style>
/* 全局样式 */
</style>
<style scoped>
/* 本地样式 */
</style>

我們把需要修改子元件的樣式寫在上面那個全域樣式裡面

三、使用深度作用選擇器

如果你希望scoped 樣式中的一個選擇器能夠作​​用得“更深”,例如影響子組件,你可以使用>>> 運算子:

<style scoped>
.a >>> .b {
 /* ... */
}
</style>

有些像SASS 之類的預處理器無法正確解析>>>。這種情況下你可以用 /deep/ 運算子取代 —— 這是一個 >>> 的別名,同樣可以正常運作。

OK,主要內容就是以上幾點。

需要額外補充的是:

1、透過v-html 建立的DOM 內容不受作用域內的樣式影響,但你仍然可以透過深度作用選擇器來為他們設定樣式

2、CSS 作用域不能取代class

3、在遞歸元件中小心使用後代選擇器

上面是我整理給大家的,希望今後對大家有幫助。

相關文章:

在JS中指令模式概念與用法(詳細教學)

使用selenium抓取淘寶資料資訊

使用百度地圖如何實作地圖網格

#

以上是在vue裡面透過父元件如何修改子元件樣式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn