2011-08-30 73 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); 
} 
相关问题