2016-11-11 72 views
2

有没有办法把所有的元素通过引用一个类:CSS分组元素

例如:

.formres select input[type="file"] input[type="email"] input[type="text"] input[type="password"] { 
    width: 150px; 
} 

这不,虽然工作,我希望所有的元素中的class .formres的宽度为150.想知道这是否可能,或者是否需要编写单个值。

PS

我已经知道了逗号方式,

.formres select, .formres input[type="file"], .formres input[type="email"], .formres input[type="text"], .formres input[type="password"] { 
    width: 150px; 
} 

一些其他的方式来做到这一点,一些运营商?这不需要一次又一次的类名。

+0

重新提出您的问题:正如我写的:使用SASS或LESS,但不能与CSS一起使用。 – Johannes

+0

如果你希望'.formres'类中的所有元素都是'width:150px',那么你可以使用'.formres * {width:150px; }'。不过,我不确定这是否真的是你想要的。你也可以包含你的HTML吗?我们需要确切地看到你想要选择的元素。 – TylerH

+0

同样,如果你只是想'.formres'内的输入为width:150px,那么就使用'.formres input {width:150px; }' – TylerH

回答

1

你可以写这样的:

.formres input[type="file"], .formres input[type="email"], .formres input[type="text"], .formres input[type="password"] { 
    width: 150px; 
} 

此外:

如果你仅仅使用这个类的DIV中的一个或两个输入元素不应该得到150像素宽度,可以使用像

.formres input { 
    width: 150px; 
} 
.formres input[type="xxxx"] { 
    width: auto; 
} 

第一将给所有元素为150px宽,第二个定义/覆盖一个不获得为150px,但默认auto

+0

是的,我已经知道它,但它需要类名称再次,我有信心,必须有一种方式或运营商来实现这一点,但可悲的是,我认为这是唯一的方法。 –

+0

如果你不使用任何CSS预处理器,这是在这种情况下唯一的方法。 – n1kkou

+0

难道你不认为这是非常重要的事情,因为我只有四个元素一些网站可能有超过数百个元素,需要用类名引用... –

1

我希望所有的类.formres里面的元素是宽150

我假定你的意思是所有直接子女。

一些其他的方式来做到这一点,由一些运营商?这不需要一次又一次的类名。

是的,你正在寻找的运算符是universal selector,星号(*),它选择的任何元素。

.formres > * { width: 150px; } 

您也可以考虑使用一个容器内.formres与所需的宽度,并把里面的input元素。他们将扩大以填充其宽度:

<form class="formres"> 
    <div class="container"> 
    <input type="text"... 

.formres .container { width: 150px; }