将输入字段的样式重置为浏览器默认值

时间:2010-12-27 14:34:51

标签: html css

我需要设置所有输入字段的样式但只有一个。 所以我为网站上的所有输入设置了规则。

对于seachfield我需要使用浏览器默认值,所以我想我可以继承我为常规输入字段设置的所有值。 (尝试过border:none to)

这在FF和Safari中都不起作用:(边框变得透明。

http://jsfiddle.net/N5KKH/1/

我知道如何才能恢复默认的浏览器样式吗?

编辑:我需要第一个输入字段看起来像第二个: http://jsfiddle.net/N5KKH/2/

5 个答案:

答案 0 :(得分:4)

您应该在所有要设置样式的输入上使用类,而不是在标记名称上使用常规选择器。

如果你无法控制它,你可以尝试将输入设置回列出here的默认css属性,虽然这不是一个好的解决方案,可能实际上不会在输入框的默认外观中。

CSS3具有非伪类,可用于选择所有其他输入,但并非所有浏览器都支持此类。 JS抽象框架(如jQuery)通常允许您使用“not”选择器语法跨浏览器,尽管这不如纯html css解决方案优雅。

答案 1 :(得分:1)

修改

实际上,它似乎没有。只是给我一个坚实的边界。坚持下去,看看我能玩什么。

<强> EDITv2

使用CSS3 it can be done似乎在not pseudo-class中。但是,似乎没有办法从样式表单元素中恢复它。话虽如此,尝试只添加一个类来输入 之类的输入字段,然后让它忽略你 想要改变的字段。

或者,您可以使用类似jQuery的内容来仅选择您想要设置样式的元素,并选择apply the classmanually add the properties(但现在您要添加JS依赖项)。

答案 2 :(得分:1)

我不确定您是从代码隐藏生成它们还是将它们硬编码到网站中,但我建议您在输入字段上使用类或名称属性,以使其看起来不同,如下所示:{ {3}}

答案 3 :(得分:1)

我不相信有一种简单的方法来取消设置样式,因为从技术上讲,没有默认的设置样式。我认为您唯一的机会是使用javascript编写一些特定于浏览器的样式规则,以使其看起来像每个浏览器的默认值。

更好的方法可能是为您的所有输入(搜索字段输入除外)提供一个用于设置样式的类,而不是为所有输入标记设置样式。

答案 4 :(得分:0)

您可以为该单个链接使用ID或类吗?


更新

尝试使用

border-style:inset;

应该做的伎俩...

http://jsfiddle.net/N5KKH/10/