大家在使用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的時候不起效
讓他行內高度變的時候這個屬性選擇器不起效
完美!