CSS如何减少样式定义?

时间:2010-06-25 04:21:23

标签: css css-selectors

我有一个css样式定义,如下所示:

input[type=email], input[type=tel], input[type=url], input[type=text], input[type=password], input[type=file], textarea { ... }

可以减少到更短的时间吗?

注意:我不想将样式应用于例如input[type=checkbox]input[type=radio]input[type=image]

3 个答案:

答案 0 :(得分:2)

你应该做一般声明,然后处理例外。

input {
    p: v1;
}

input[type=checkbox], input[type=radio], input[type=image] {
    p: v2;
}

其中v2取消v1;

答案 1 :(得分:1)

如果您知道这些类型只会显示在input个元素中,那么您可以这样做:

*[type="email"],
*[type="tel"],
*[type="url"],
*[type="text"],
*[type="password"],
*[type="file"],
textarea {
  border: 1px solid red;
}

Firefox 3.6.6,Iron 5.0.380和Opera 10.60都没有问题,但是IE没有注意到。这也适用于问题中使用的选择器。提供跨浏览器解决方案的唯一答案是Luke Burns的回答。

答案 2 :(得分:0)

您可以为所有字段指定相同的类,因此它们的样式可以采用相同的方式:

HTML:

<input class="inputClass" type="tel" /> <input class="inputClass" type="url" />

的CSS:

.inputClass { ... }

如果由于某种原因你不能,而且你必须没有上课,那么你拥有的是唯一的方法。