欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

快速修改antd?vue單個組件的默認樣式

 更新時間:2022年08月11日 11:25:26   作者:Unique·Blue  
這篇文章主要介紹了快速修改antd?vue單個組件的默認樣式方式,具有很好的參考價值,希望對大家有所幫助。

Ant Design Vue地址:https://www.antdv.com/docs/vue/introduce-cn/

剛接觸Ant Design Vue的童鞋們可能會有這樣的問題,不就是修改默認的組件樣式嗎,為什么一會生效,一會又不生效。希望看完這個文章,會給你一些收獲~

一、想要修改組件的默認樣式

首先你需要知道組件是渲染在哪里的 這個組件是渲染在當前頁面內(nèi)部,還是脫離vue根節(jié)點單獨渲染?(根節(jié)點默認id=“app”)

這個問題的答案很容易得到,打開文章頂部的antdv官方文檔,任意選中組件,F(xiàn)12打開調(diào)試,觀察Elements,例如:

1、不難看出,button是渲染在當前頁面內(nèi)部的,包裹在"#app"的容器里。這樣的組件還有很多,比如input、radio等等。再看下面這張圖:

2、dropdown組件則是一部分渲染在#app內(nèi),一部分渲染在"#app"的外面且與"#app"同級。這樣的組件也有很多,比如select、drawer等等

3、dropdown等,我們發(fā)現(xiàn)它們的共同點:這些組件都是“觸發(fā)型”組件,都是由用戶hover、click等手動激活后,進行了動態(tài)渲染的

確定了這一點之后有什么用呢?

第二類組件,class類名設置的僅僅是#app內(nèi)部元素,而渲染在#app之外的那部分節(jié)點,需要單獨設置類名,比如 tooltip,我們設置overlayClassName="overlay-class"來測試:

我們發(fā)現(xiàn)類名已經(jīng)設置好了。這一條解決了 沒有對應到自己的父級類會造成的樣式不生效 的問題

不同組件設置的屬性名稱不完全相同,使用時去查閱文檔就可以了

二、類名scoped的限制 你是否會有這樣的疑惑

為什么有的需要設置 >>> 或者 /deep/ 來重寫深層樣式,有的卻不需要?

開發(fā)時,我們會根據(jù)需要設置每個頁面、組件css 的 scoped屬性,眾所周知,這個屬性是為了限制css只被當前vue文件所使用,那它是如何實現(xiàn)這個限制的呢?

我們?nèi)我獯蜷_一個scoped的頁面,打開調(diào)試

我們可以發(fā)現(xiàn),這個頁面的幾乎所有節(jié)點,都有了一個共同的“標識”

我們在elements中打開對應scoped的css文件,看下實際書寫和渲染出來的對應關(guān)系:

.override {
  padding: 100px 100px 200px 100px;
}
/* 按鈕 */
.test-button {
  background: pink;
  border: 0;
}
.ant-btn-primary {
  background: #ccc;
  border: 0;
}
/* 面包屑 */
.container >>> .ant-breadcrumb-separator {
  margin: 10px;
}
.container /deep/ .ant-breadcrumb-separator {
  margin: 30px;
}

發(fā)現(xiàn)css也被編譯成了具有標識的! 重要的是,設置在/deep/ 和 >>> 后面的類,在編譯之后,是沒有這個標識的!

發(fā)現(xiàn)了這一點之后,我們不需要去管是什么頁面,用的什么組件,只需要打開Elements面板,觀察你要寫的節(jié)點class,有沒有這個“標識”。

  • 如果有的話,正常寫css,類名就會被編譯成有“標識”的;
  • 如果沒有的話,需要設置在/deep/、>>>之后,編譯后就會拿掉這個標識

三、使用/deep/、 >>>時

parentClass所在的節(jié)點是不帶“標識”的怎么辦?

根據(jù)前面的總結(jié),設置scoped后,此時的 parentClass 是被編譯成帶“標識”的, sonClass是不帶“標識”的。

.parentClass >>> .sonClass
.parentClass /deep/ .sonClass

那實際使用時,如果parentClass所在的節(jié)點本身是不帶 “標識” 的怎么辦?

例如:

antd vue的組件,渲染在#app外部,已經(jīng)按照第一條給了自定義的類名wrapClassName,但是這個wrapClassName我們?nèi)匀粺o法使用,因為它所在的div并沒有這個“標識”(極少數(shù)情況會出現(xiàn))

這時我們拿出了終極武器,

<div ref="wrap"> 
  <a-modal 
    v-model="visible" 
    title="Basic Modal" 
    @ok="handleOk" 
    class="test" 
    :getContainer="() => this.$refs.wrap"
   >
    <p>Some contents...</p>
    <p>Some contents...</p>
    <p>Some contents...</p>
  </a-modal>
</div>

通過設置組件的 getContainer屬性(有的組件是 getPopupContainer ),我們將原本渲染在#app外部的節(jié)點,手動掛載到了#app內(nèi)部,之后再通過第二條的規(guī)則去設置就可以啦~

也可以不指定ref,直接設置 :getContainer="triggerNode => triggerNode.parentNode"默認找到#app內(nèi)部的父節(jié)點

以上三點:

  • 第一點解決了沒有父級類的問題(單獨通過屬性設置)
  • 第二點解決了scoped造成的沒有對應到父級類的問題(根據(jù)節(jié)點“標識”情況使用 >>> 或 /deep/)
  • 第三點解決了沒有父級類可以設置的問題(手動更改渲染規(guī)則)

前兩條操作的是類名樣式,第三條操作的是節(jié)點,小編覺得能通過前兩條解決的,盡量就不用第三條了(盲猜會影響性能吧)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • VUE3中watch和watchEffect的用法詳解

    VUE3中watch和watchEffect的用法詳解

    本文主要介紹了VUE3中watch和watchEffect的用法詳解,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • vue 內(nèi)聯(lián)樣式style中的background用法說明

    vue 內(nèi)聯(lián)樣式style中的background用法說明

    這篇文章主要介紹了vue 內(nèi)聯(lián)樣式style中的background用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Vue3 源碼導讀(推薦)

    Vue3 源碼導讀(推薦)

    這篇文章主要介紹了Vue3 源碼導讀(推薦),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • Vue2.0權(quán)限樹組件實現(xiàn)代碼

    Vue2.0權(quán)限樹組件實現(xiàn)代碼

    本文通過實例代碼給大家介紹了Vue2.0權(quán)限樹組件實現(xiàn)代碼,需要的的朋友參考下吧
    2017-08-08
  • Vue引入并使用Element組件庫的兩種方式小結(jié)

    Vue引入并使用Element組件庫的兩種方式小結(jié)

    本文主要介紹了Vue引入并使用Element組件庫的兩種方式小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • VUE?mixin?使用示例詳解

    VUE?mixin?使用示例詳解

    混入mixin提供了一種非常靈活的方式,來分發(fā)Vue組件中的可復用功能,一個混入對象可以包含任意組件選項,接下來通過本文給大家介紹VUE?mixin?使用,需要的朋友可以參考下
    2022-08-08
  • vue3輸入無效路由跳轉(zhuǎn)到指定error頁面問題

    vue3輸入無效路由跳轉(zhuǎn)到指定error頁面問題

    這篇文章主要介紹了vue3輸入無效路由跳轉(zhuǎn)到指定error頁面問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 用vscode開發(fā)vue應用的方法步驟

    用vscode開發(fā)vue應用的方法步驟

    這篇文章主要介紹了用vscode開發(fā)vue應用的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • Vue實現(xiàn)百度下拉提示搜索功能

    Vue實現(xiàn)百度下拉提示搜索功能

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)百度下拉提示搜索功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • vue項目打包開啟gzip壓縮具體使用方法

    vue項目打包開啟gzip壓縮具體使用方法

    這篇文章主要為大家介紹了vue項目打包開啟gzip壓縮具體使用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07

最新評論