在一次這樣的需求中,需要實作滑倒底部時自動請求資料,需要動态建立節點然後追加到某元素中,這期間遇到的問題就是在動态建立節點後,類名也已經加上了 ,但是樣式就是沒有生效,最後發現原因的産生竟然是<style scoped></style>中scoped屬性
該屬性的作用是用來綁定目前樣式不被污染,同時也就意味着在建立新的node後,該node樣式是進入不到style總查找樣式的,bug如下:

新建立的li在插入到節點中時,樣式并沒有生效。
是以我們解決辦法
1.将scoped屬性去掉。
優點:友善快捷
缺點:失去了樣式的保護,我們就需要用原始的方法保護該元件的樣式作用于,可通過背景選擇器等等方式實作樣式的保護,使其不受污染
2.在動态建立Node時,就将樣式類型些微行内樣式,解除安裝style中。這樣在dom渲染的時候會伴随着行内樣式一起生效
優點:在不影響樣式作用于的情況下就可以實作
缺點:違背了結構表現相分離,對于代碼的解析速度有很大影響。
bug修複如下:
大家可以了解下vue中的樣式穿透,也是解決樣式問題的常用方式之一。sass/less使用樣式穿透的方式可能回有所不同,
stylus的樣式穿透 使用>>>
外層 >>> 第三方元件
樣式
.wrapper >>> .swiper-pagination-bullet-active
background: #fff
sass和less的樣式穿透 使用/deep/
外層 /deep/ 第三方元件 {
}
.wrapper /deep/ .swiper-pagination-bullet-active{
background: #fff;
需要demo源碼的留言哦。
作者:狗尾草
個性簽名:海到無邊天作岸,山登絕頂人為峰!