0

我有以下 CSS:

input:not([type=submit]):not([type=file]) {
    width: 500px;
}

.filterTextbox {
    width: 150px;
}

我希望能够将 filterTextbox 类分配给某些输入元素并使文本框为 150px 宽。你可以猜到,现在发生的事情是第一个样式覆盖了 .filterTextbox 类,我最终得到了所有输入文本框 500px 宽。

那么,关于如何轻松解决这个问题的任何想法?

4

3 回答 3

4

这是另一个不使用 !important 的选项:

input:not([type=submit]):not([type=file]):not(.filterTextbox) {
    width: 500px;
}

input.filterTextbox {
    width: 150px;
}

由于上面的规则是“排除”一 - 添加一个排除似乎比使用更合理!important

我可能会使用类来匹配我想要匹配的输入,或者完全使用更流畅的布局。

于 2013-07-09T23:20:00.610 回答
2

一种选择是使用!important

.filterTextbox {
    width: 150px !important;
}

第一条规则更具体,因此获得更高的优先级。关键字让浏览器!important知道哪个规则是所需的,无论它的优先级如何。

然而,更好的做法不会!important像评论中建议的那样使用。你可以这样做:(工作 jsFiddle

input[type="text"].filterTextbox {
    width: 150px;
}

这将比第一条规则更具体。

于 2013-07-09T23:09:48.943 回答
1

改变

.filterTextbox {
    width: 150px;
}

.filterTextbox {
     width: 150px !important;
}

这应该覆盖应用于它的任何其他内容。

于 2013-07-09T23:11:03.660 回答