關(guān)于在使用elementUI開發(fā)項(xiàng)目中,需要結(jié)合需求修改樣式的問題

使用餓了么官方出版的elementUI近半年了,提升的開發(fā)速率可不是一點(diǎn)半點(diǎn),那真是蹭蹭的往上竄。但是在開發(fā)過程中會(huì)遇到一種情況:需要結(jié)合自己公司的業(yè)務(wù),修改element的樣式,這就尷尬了。。。造成這種情況的原因是因?yàn)閑lement的組件里面都有自己的樣式,scoped控制了外界樣式和當(dāng)前組件不互通來防止組件間樣式重疊或沖突,所以你在當(dāng)前頁面給<el-xxx>組件寫class,然后利用class去調(diào)整樣式是不可行的。

? ? ? ? 在剛開始開發(fā)過程中,嘗試了三種解決方案:

1、修改源碼:嘗試著去修改element源碼,修改其內(nèi)部樣式為結(jié)合自己業(yè)務(wù)想要的樣式。但是假如修改了<el-input>的基礎(chǔ)樣式,我只想作用于某一模塊中,而不像全局都跟著修改這樣的話,可以在源碼中添加邏輯,增加一個(gè)參數(shù),讓<el-input>知道是不是該特殊組件,然后可以利用三元表達(dá)式加上相應(yīng)的特殊class來執(zhí)行其css樣式。個(gè)人感覺此方式個(gè)別小需求還可以,由于自己水平有限,不敢大動(dòng)源碼,怕傷害到本身,所以棄之。

2、打補(bǔ)丁:在開發(fā)項(xiàng)目過程中,新建了一個(gè)patch.css的文件,并在全局引用。這樣的話就突破了scope關(guān)鍵字的限制,直接開啟上帝視角,想改哪里就改哪里。這樣的方式不會(huì)破壞源碼,當(dāng)然這樣的方式會(huì)比較亂,你還要結(jié)合看當(dāng)前作用的.el-xxx--xxx .el-xxx--xxx .el-xxx 等一大串的css樣式,相互結(jié)合形成的樣式。而且你寫新的樣式去覆蓋el的老樣式時(shí),需要特別注意css權(quán)重的問題,一定要比el組件內(nèi)的權(quán)重高,不然不會(huì)生效的。



@import "vars";

// selct和input保持寬度一致

.el-select .el-input__inner, .el-input--suffix .el-input__inner {

? padding: 0 $dim_spacing_large5;

}

.el-input__inner {

? padding: 0 $dim_spacing_large5;

}

// 篩選條件板塊樣式

.el-form {

? background: $color_fg_contrast;

? border: $dim_radius_small5 solid $color_bg_white3;

? border-radius: $dim_radius_small3;

? padding: $dim_spacing_medium $dim_spacing_large5;

? margin-bottom: $dim_spacing_large2;

}

// table邊框處理

.el-table {

? border: $dim_radius_small5 solid $color_bg_white3;

}

// table-bg切換tabs時(shí)的背景處理

.tabs-bg .el-tabs__item.is-active {

? color: $color_fg_contrast;

? background: $color_bg_white2;

}

.tabs-bg .el-tabs__item:hover {

? color: $color_fg_primary;

}

// 側(cè)邊nav及其動(dòng)態(tài)樣式

.el-submenu__title:hover {

? background-color: $color_bg_black2;;

? color: $color_fg_contrast;

}

.el-submenu__title {

? color: $color_bg_white4;

}

.el-menu {

? background-color: $color_bg_black3;

? border-right: $dim_radius_small5 solid $color_bg_black3;

}

.el-submenu .el-menu-item {

? background-color: $color_bg_black1;

? color: $color_bg_white4;

? text-align: center;

}

.el-menu-item:hover, .el-menu-item.is-active {

? background-color: $color_bg_black2;

? color: $color_fg_contrast;

}

// 左側(cè)導(dǎo)航li最低不能為200,修改為150

.el-submenu .el-menu-item {

? min-width: $dim_width_large3;

}

// 修改input篩選條件區(qū)域

.el-form-item__content {

? line-height: $dim_height_small0;

}

.el-form-item {

? margin-bottom: $dim_spacing_medium;

}

.el-form--inline .el-form-item__label {

? color: $color_fg_primary;

? font-size: $dim_font_medium1;

}


這是我在項(xiàng)目中結(jié)合一些特殊的點(diǎn)來做的修改。

3、封裝自己的組件:拿來主義,用別人現(xiàn)成的永遠(yuǎn)都要受別人的限制和條件約束。畢竟吃人嘴短拿人手軟?。?!自己寫自己的用著才最舒服,當(dāng)然也最麻煩。最好結(jié)合自己的項(xiàng)目走向,做一些能夠長期使用并且能夠多平臺(tái)使用的組件會(huì)更好。寫之前可以參考下element的組件,它提供了哪些api,輸入?yún)?shù)需要什么,使用場景是什么,你想做成什么樣的功能,下面是我自己寫的一個(gè)比較簡單的field組件。



<template>

? ? <div>

? ? ? ? ? ? <label :class="(labelClass || 'label')+(toLines?'' : 'inline')">{{ label+(noColon)?'':':' }}</label>

? ? ? ? ? ? <div :class="twoLines?'twoLines':'inline'">

? ? ? ? ? ? ? ? <slot />

? ? ? ? ? ? </div>

????</div>

</template>

<script>

? export default {

? ? name: 'field',

? ? props: ['label', 'labelClass', 'twoLines', 'noColon']

? }

</script>

<style>

? @import "../../assets/css/vars.scss";

? @import "../../assets/css/font.scss";

? .label {

? ? @extend .font-bold;

? ? width: $dim_width_large1;

? }

</style>


其實(shí)功能沒有多少,具體效果可以為:名稱:input/select/button。。。都可以。


本人水平有限,歡迎交流和批評(píng)。

?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 在學(xué)習(xí)weex的過程中看到了常用標(biāo)簽相關(guān)的內(nèi)容,為了自己以后能夠快速查閱特整理出此文檔。 a 簡介組件定義了指向某...
    TyroneTang閱讀 4,845評(píng)論 1 3
  • 目錄faster rcnn論文備注caffe代碼框架簡介faster rcnn代碼分析后記 faster rcnn...
    db24cc閱讀 9,816評(píng)論 2 12
  • 【站點(diǎn)披薩~亞運(yùn)村店】隸屬奇諾品味(北京)餐飲有限公司2012年成立,品牌故事:中央廚房集中品控,分店連鎖經(jīng)營模式...
    秋天別來798閱讀 373評(píng)論 3 3
  • 一陣風(fēng), 在這夏夜的有陣風(fēng), 想你來 是否找過你,讓你來 夜已來 我在這里來來去去走一遭 不知為什么 心已亂 目地...
    貓?jiān)破?/span>閱讀 583評(píng)論 3 0
  • 我們總喜歡從別人的評(píng)價(jià)中發(fā)現(xiàn)自己的價(jià)值 當(dāng)魚盆盆連續(xù)十幾天在深夜發(fā)來消息時(shí),我確實(shí)有點(diǎn)累了,匆匆關(guān)掉手機(jī)準(zhǔn)備睡覺。...
    小韓不止聊健康閱讀 258評(píng)論 0 0

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