通过使用属性选择器或任何其他方法查找类是否只有css中的边框。如果它没有,则应用border.Intention is不依赖于jquery。这有可能实现吗?
<小时/> 已编辑以包含来自@nag(OP)的回复:
在IE8中,border
没有select
。所以我正在尝试像这样重置css:
select, input[type="file"], textarea {
border: solid 1px #7F9DB9;
}
问题是由于特异性,它会覆盖任何预先存在的风格。我尝试使用表达式过滤器但在IE8中使用DocType似乎不起作用。
答案 0 :(得分:1)
CSS没有if/else
语句的概念或实现,所以这在CSS中是不可能的。
但是,如果为元素定义border
,然后稍后重新定义border
,则第二个语句将覆盖第一个语句(假设同样具体的选择器),所以我不确定是为什么您需要仅应用border
如果该元素尚未定义border
:
div {
border: none; /* removes the border */
}
/* other stuff */
div {
border: 1px solid #f90; /* defines the border */
}
类似地:
div {
border: 5px solid #0f0; /* defines the border */
}
/* other stuff */
div {
border: 1px solid #f90; /* re-defines the border */
}
如果您可以定义用例,则可以进一步帮助您。
<小时/> 已编辑以解决问题中的更多信息:
在IE8中没有选择的边框。所以我正在尝试像这样重置css:
select, input[type="file"], textarea {
border: solid 1px #7F9DB9;
}
问题是由于特异性,它会覆盖任何预先存在的风格。我尝试使用表达式过滤器但在IE8中使用DocType似乎不起作用。
如果问题是特异性的,那么您唯一的选择就是增加您要应用的选择器的特异性,理想情况下使用id
或多个{{1在你的选择器中(祖先元素的id
很好),因为那是最具体的选择器。
或者,您可以降低您要覆盖的选择器的特异性。
值得注意的是id
元素难以可靠地设计,因为它通常由底层操作系统而不是浏览器本身呈现,以便在该操作系统中保持一致的外观。
答案 1 :(得分:0)
您有三种选择:
form textarea
)使您的其他选择器更具体。