2011-05-16 43 views
-1

我有<select multiple="multiple">..</select>選擇,我也有select{heigth: 30px;}在我無法編輯的某些樣式表中。現在我的多重選擇有1行高 - 「大小」屬性不能應用。我該如何解決這個問題?多個選擇大小屬性不能應用

回答

3

嗯,首先 - 我假設你使用的是height屬性,而不是拼寫錯誤的heigth屬性。有兩種方法可以解決這個問題。 第一個(我不推薦)是通過簡單地追加風格的HTML元素,象下面這樣:

<select multiple="multiple" style="height:100px">..</select> 

或者,相反,我的建議是使第二樣式表,使用以下屬性,其中包括「!important」,它遵循屬性值:

select { 
    height: 100px !important; 
} 

這樣做會覆蓋原始樣式並將其替換。這不是您可以用來覆蓋它的唯一方法 - 您可以使用read here on CSS specificity

+2

我想強調避免使用!important的重要性(不是雙關語意思)。當你習慣於增加對樣式聲明很重要的習慣時,最終很難追蹤樣式規則的意大利麪條。只有在需要重寫已聲明爲內聯的樣式(在HTML元素本身上)並且無法更改/刪除內聯樣式時才使用!important。也不要使用像'select'這樣的通用選擇器來處理像'height:100px'這樣的特定聲明,因爲這些規則將會針對整個網站中的所有*選擇框。請遵循morgar的建議。 – 2012-11-13 10:55:00

+0

以下是第二條建議:不要在HTML中使用內聯樣式聲明,除非沒有其他簡單的方法,因爲它強制人們使用!稍後重要的是如果他們想要覆蓋它。 – 2012-11-13 10:56:04

2

我認爲正確的方法應該是將一類特定<select>,並給予它正確的大小,如:

<select multiple="multiple" class="multiple">

select.multiple { 
    height: 100px; 
} 
+0

這也可以。只要select元素的優先級高於另一個樣式表中定義的優先級。 – Nightfirecat 2011-05-16 05:31:15

+0

爲什麼混亂DOM? 'select [multilple =「multiple」] {height:100px; }' – Madbreaks 2017-01-30 23:33:34

8

我喜歡乾淨的解決方案。

select[multiple] { 
    height: 100px; 

} 
+0

的確很不錯,但需要警告的是,這並不適用於所有的瀏覽器。 – 2012-11-13 10:57:29

+0

真的嗎?我在網上工作很多,比我沒有這個問題。抱歉。 – AFetter 2012-11-14 18:24:04

+1

我剛剛檢查過,但從IE7開始,瀏覽器支持似乎無處不在,因此,只要您不需要支持IE6,現在就可以使用它了。 +1 – 2013-02-04 14:45:08