element-ui 修改級多選聯選擇器或多選下拉輸入框的高度,並不影響多選後內容撐起高度。

大家在使用element-ui的時候,有可能會去修改element-ui的樣式,但是在修改樣式的過程中會出現各種問題,今天就來說一說我遇到的問題吧!

比如這個多選級聯的選擇框,ui要求是所有的輸入框都必須是34px的高度,但是這個輸入框的高度是36px,有的是40px高度,沒有行內樣式的還好改,有了行內樣式的怎麼改呢?
在這裏插入圖片描述
由於我們只能用比內聯樣式高的權重,這時候如果我們直接強行修改樣式用 !important的話,這個輸入框的行內高度是動態變化的,內容變多就會撐不起來就像這樣
在這裏插入圖片描述
我們想要的效果是這樣,而且還得讓初始的高度爲34px,所以就得覆蓋他之前的行內樣式。
在這裏插入圖片描述
終於在我苦思冥想後終於想到了一個辦法

那就是css3的屬性選擇器

總結如下:

1、E[attr]只使用屬性名,但沒有確定任何屬性值;

**有attr就選中**

2、E[attr="value"]指定屬性名,並指定了該屬性的屬性值;空格都不行;

**只有值等於value才選中**

3、E[attr~="value"]指定屬性名,並且具有屬性值,此屬性值是一個詞列表,並且**以空格隔開**,其中詞列表中包含了一個value詞,而且等號前面的“〜”不能不寫

**只要value是詞列表就選中**

4、E[attr^="value"]指定了屬性名,並且有屬性值,屬性值是以value開頭的;從第一個字母

**開頭值等於value選中**

5、E[attr$="value"]指定了屬性名,並且有屬性值,而且屬性值是以value結束的,最後一個字母

**結尾至等於value就選中**

6、E[attr*="value"]指定了屬性名,並且有屬性值,而且屬值中包含了value;

**只要包含一個value就選中**

7、E[attr|="value"]指定了屬性名,並且屬性值是**value**或者以**“value-”**開頭的值(比如說zh-cn);有關於這些屬性選擇器除了IE6不支持外,其他都是可以的

既然我們想讓他剛開始就變爲34px,然後在多選後再讓它的行內樣式生效,我們就可用這個屬性選擇器

.el-input.el-input--medium.el-input--suffix .el-input__inner[style="height: 36px;"] {
    height: 34px !important;
}
我們讓他行內高度等於36px的時候不起效
讓他行內高度變的時候這個屬性選擇器不起效

完美!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章