我需要设置所有输入字段的样式但只有一个。 所以我为网站上的所有输入设置了规则。
对于seachfield我需要使用浏览器默认值,所以我想我可以继承我为常规输入字段设置的所有值。 (尝试过border:none to)
这在FF和Safari中都不起作用:(边框变得透明。
我知道如何才能恢复默认的浏览器样式吗?
编辑:我需要第一个输入字段看起来像第二个: http://jsfiddle.net/N5KKH/2/
答案 0 :(得分:4)
您应该在所有要设置样式的输入上使用类,而不是在标记名称上使用常规选择器。
如果你无法控制它,你可以尝试将输入设置回列出here的默认css属性,虽然这不是一个好的解决方案,可能实际上不会在输入框的默认外观中。
CSS3具有非伪类,可用于选择所有其他输入,但并非所有浏览器都支持此类。 JS抽象框架(如jQuery)通常允许您使用“not”选择器语法跨浏览器,尽管这不如纯html css解决方案优雅。
答案 1 :(得分:1)
修改强>
实际上,它似乎没有。只是给我一个坚实的边界。坚持下去,看看我能玩什么。
<强> EDITv2 强>
使用CSS3 it can be done似乎在not pseudo-class中。但是,似乎没有办法从样式表单元素中恢复它。话虽如此,尝试只添加一个类来输入 之类的输入字段,然后让它忽略你 想要改变的字段。
或者,您可以使用类似jQuery的内容来仅选择您想要设置样式的元素,并选择apply the class或manually add the properties(但现在您要添加JS依赖项)。
答案 2 :(得分:1)
我不确定您是从代码隐藏生成它们还是将它们硬编码到网站中,但我建议您在输入字段上使用类或名称属性,以使其看起来不同,如下所示:{ {3}}
答案 3 :(得分:1)
我不相信有一种简单的方法来取消设置样式,因为从技术上讲,没有默认的设置样式。我认为您唯一的机会是使用javascript编写一些特定于浏览器的样式规则,以使其看起来像每个浏览器的默认值。
更好的方法可能是为您的所有输入(搜索字段输入除外)提供一个用于设置样式的类,而不是为所有输入标记设置样式。
答案 4 :(得分:0)