用法

1.選擇器

Vue3 中幾種獨(dú)有的選擇器 深度選擇器:deep()、插槽選擇器:slotted()耐量、全局選擇器 :global()

scoped原理:
在Vue組件中满钟,如果使用了scoped樣式,子組件樣式將不會被渲染到父組件中优幸。 scoped 通過在DOM結(jié)構(gòu)以及css樣式上加唯一不重復(fù)的標(biāo)記:data-v-hash的方式,以保證唯一(而這個工作是由過PostCSS 轉(zhuǎn)譯實(shí)現(xiàn)的)叙凡,達(dá)到樣式私有化模塊化的目的劈伴。
當(dāng) <style> 標(biāo)簽帶有 scoped 的時(shí)候,它的 CSS 只會影響當(dāng)前組件的元素握爷,它的實(shí)現(xiàn)方式是通過 PostCSS 將以下內(nèi)容:

<style scoped>
.example {
  color: red;
}
</style>
 
<template>
  <div class="example">hi</div>
</template>

轉(zhuǎn)化為:

<style>
.example[data-v-f3f3eg9] {
  color: red;
}
</style>
 
<template>
  <div class="example" data-v-f3f3eg9>hi</div>
</template>

總結(jié)一下scoped三條渲染規(guī)則:

  • 給HTML的DOM節(jié)點(diǎn)加一個不重復(fù)data屬性(形如:data-v-123)來表示他的唯一性
  • 在每句css選擇器的末尾(編譯后的生成的css語句)加一個當(dāng)前組件的data屬性選擇器(如[data-v-123])來私有化樣式
  • 如果組件內(nèi)部包含有其他組件跛璧,只會給其他組件的最外層標(biāo)簽加上當(dāng)前組件的data屬性

1、深度選擇器 :deep()

處于 scoped 樣式中的選擇器如果想要做更“深度”的選擇新啼,也即:影響到子組件追城,可以使用 :deep() 這個偽類:

作用:深度選擇器可以匹配組件中嵌套的子組件。

常見作用場景:修改組件庫樣式

使用示例:

<template>
  <div>
    <div class="parent">
        <el-input></el-input>
  </div>
</template>
 
<style scoped>
  /* 選擇子組件中的元素 */
  .parent :deep(.el-input__inner) {
    background: red;
  }
/* 此時(shí)css解析的為 .outer[data-v-xxxx] .el-input__inner 樣式生效 */
</style>

上面的代碼會被編譯成:

.parent[data-v-f3f3eg9] .el-input__inner {
  background: red;
}

TIPT镒病W!

通過 v-html 創(chuàng)建的 DOM 內(nèi)容不會被作用域樣式影響物舒,但你仍然可以使用深度選擇器來設(shè)置其樣式色洞。

2、插槽選擇器 :slotted()

默認(rèn)情況下冠胯,作用域樣式不會影響到 <slot/> 渲染出來的內(nèi)容火诸,因?yàn)樗鼈儽徽J(rèn)為是父組件所持有并傳遞進(jìn)來的。使用 :slotted 偽類以明確地將插槽內(nèi)容作為選擇器的目標(biāo):

作用:插槽選擇器可以用來選擇插槽中的內(nèi)容荠察。

使用示例:

<template>
 <div class="content">
    <slot></slot>
  </div>
</template>
 
<style scoped>
/* 選擇默認(rèn)插槽元素 */
 
.content :slotted(.red) {
  color: red;
}
 
</style>

3置蜀、全局選擇器 :global()

如果想讓其中一個樣式規(guī)則應(yīng)用到全局奈搜,比起另外創(chuàng)建一個 <style>,可以使用 :global 偽類來實(shí)現(xiàn) (看下面的代碼):

作用:全局選擇器可以用來選擇不受scoped樣式影響的元素盯荤。

使用示例:

<template>
  <div class="container">
    <div class="global-child"></div>
  </div>
</template>
 
<style scoped>
  /* 選擇全局樣式 */
  :global(.global-child) {
    color: red;
  }
</style>

4馋吗、混合使用局部與全局樣式

你也可以在同一個組件中同時(shí)包含作用域樣式和非作用域樣式:

<style>
/* 全局樣式 */
</style>
 
<style scoped>
/* 局部樣式 */
</style>

原文鏈接:https://blog.csdn.net/qq_44848480/article/details/134726338

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市秋秤,隨后出現(xiàn)的幾起案子宏粤,更是在濱河造成了極大的恐慌,老刑警劉巖航缀,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件商架,死亡現(xiàn)場離奇詭異堰怨,居然都是意外死亡芥玉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門备图,熙熙樓的掌柜王于貴愁眉苦臉地迎上來灿巧,“玉大人,你說我怎么就攤上這事揽涮】倥海” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵蒋困,是天一觀的道長盾似。 經(jīng)常有香客問我,道長雪标,這世上最難降的妖魔是什么零院? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮村刨,結(jié)果婚禮上告抄,老公的妹妹穿的比我還像新娘。我一直安慰自己嵌牺,他們只是感情好打洼,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著逆粹,像睡著了一般募疮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上僻弹,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天阿浓,我揣著相機(jī)與錄音,去河邊找鬼奢方。 笑死搔扁,一個胖子當(dāng)著我的面吹牛爸舒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播稿蹲,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼扭勉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了苛聘?” 一聲冷哼從身側(cè)響起涂炎,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎设哗,沒想到半個月后唱捣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡网梢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年震缭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片战虏。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡拣宰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出烦感,到底是詐尸還是另有隱情巡社,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布手趣,位于F島的核電站晌该,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏绿渣。R本人自食惡果不足惜朝群,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望怯晕。 院中可真熱鬧潜圃,春花似錦、人聲如沸舟茶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吧凉。三九已至隧出,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間阀捅,已是汗流浹背胀瞪。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人凄诞。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓圆雁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親帆谍。 傳聞我的和親對象是個殘疾皇子伪朽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 寫Vue文件時(shí),每個頁面都是一個Vue文件汛蝙,當(dāng)我們想要設(shè)置本頁面的樣式烈涮,同時(shí)不影響其他頁面的樣式。一般有下面的方法...
    凜冬已至_123閱讀 712評論 0 1
  • 用法 普通的css語法: 在要修改的樣式前添加 >>> 符號 scss語法: 在要修改的樣式前添加 ::v-dee...
    AlkaidA閱讀 1,210評論 1 1
  • 前言 我們都知道在組件中給style標(biāo)簽添加scoped屬性可以避免組件內(nèi)樣式對外界造成污染窖剑,scoped使得組件...
    一笑解qian愁閱讀 1,677評論 0 1
  • vue-cli 是一套完整的坚洽,輔助我們快速配置webpack的工具,具體安裝參考官網(wǎng):https://cli.vu...
    stamSuper閱讀 307評論 0 2
  • 七夕了西土,寫個昨天遇到的bug來緩解下沒有人約的尷尬讶舰。 昨天和QA過歷史bug時(shí),發(fā)現(xiàn)有好幾個瀏覽器不兼容的導(dǎo)致式樣...
    前端滄海閱讀 21,851評論 0 1