2011-08-30 76 views
20

這看起來像這樣一個愚蠢的問題,但我無法在任何地方找到答案。將相同的值設置爲多個屬性(CSS)

有沒有一種方法來設置多個CSS屬性爲一個值

border-left, border-right: 1px solid #E2E2E2; 

,您可以用選擇的方式做?

.wrapper, .maindiv { ... } 
+2

沒有,但[SASS(http://sass-lang.com /)變量可以讓你關閉。想想看,你應該爲SASS的下一個版本提出這個建議。最糟糕的情況是你的想法被拒絕。 –

+0

好的電話,我寫信給lesscss –

回答

14

沒有。但是對於你的榜樣,你可以這樣做:

border: solid #E2E2E2; 
border-width: 0 1px; 

那裏可以是單獨的值,上,右,下,左的屬性(例如,border- *,利潤率,填充)通常可以在合併一個屬性。

+5

恭喜你的答案是最有效的5個字節 –

4

不可能的,除非你做:

border: 1px solid #E2E2E2; 

..這將在各方面相同的邊框。如果你想單獨控制它們,你必須將它們編寫成單獨的語句。

請注意,在某些情況下,您可以爲一個屬性設置多個值,但在一個語句中不能包含具有一個值的多個屬性。

4

不可能與普通的CSS,但你可以看看scssless誰可能有你的問題的解決方案。

用普通的CSS的解決方案如下:

border: 1px solid #E2E2E2; 
border-width: 0px 1px; 
+0

我以前看過sass。這不是一個大問題,我只是好奇:)謝謝。 –

2

如果屬性是相關的,如與border-leftborder-right的情況下,通常有一個共同的屬性,使您可以將它們設置:

border: 1px solid #e2e2e2; 

另一方面,有一些庫,如Less CSS在那裏擴展CSS,以便您可以輕鬆地組合相關的屬性和屬性。

1

CSS不允許這樣的控制。一種解決方法是使用較大的規則,然後限制它:

border: 1px solid #E2E2E2; 
border-top: 0; 
border-bottom: 0; 

但是你最終有更多的代碼。另一種方案是如果你使用SASS使用CSS 「編譯」,像SASSLess

2

,試試這個:

@mixin border($properties , $value){ 
    @each $property in $properties{ 
     border-#{$property}: $value; 
    } 
} 

selector{ 
    @include border(left right, 1px solid #E2E2E2); 
} 
相關問題