關于在使用elementUI開發項目中,需要結合需求修改樣式的問題

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

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

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

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



@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時的背景處理

.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;

}

// 側邊nav及其動態樣式

.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;

}

// 左側導航li最低不能為200,修改為150

.el-submenu .el-menu-item {

? min-width: $dim_width_large3;

}

// 修改input篩選條件區域

.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;

}


這是我在項目中結合一些特殊的點來做的修改。

3、封裝自己的組件:拿來主義,用別人現成的永遠都要受別人的限制和條件約束。畢竟吃人嘴短拿人手軟!!!自己寫自己的用著才最舒服,當然也最麻煩。最好結合自己的項目走向,做一些能夠長期使用并且能夠多平臺使用的組件會更好。寫之前可以參考下element的組件,它提供了哪些api,輸入參數需要什么,使用場景是什么,你想做成什么樣的功能,下面是我自己寫的一個比較簡單的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>


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


本人水平有限,歡迎交流和批評。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,316評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,481評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,241評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,939評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,697評論 6 409
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,182評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,247評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,406評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,933評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,772評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,973評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,516評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,638評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,866評論 1 285
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,644評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,953評論 2 373

推薦閱讀更多精彩內容