html – 如何在Webkit和Gecko的文本输入上删除额外的,不同的伪填充?

问题只发生在Webkit中的input [type =“text”]上.不管我做什么,相当于一个额外的填充:元素上的1px 0 0 1px(仅上和左).

类似的问题发生在Gecko中,输入[type =“text”]有一个等效的额外填充:1px 0 0 1px,输入[type =“button”]有一个额外的填充:1px 0 0 0.

这是一个JSFiddle,显示了我尝试过的一切,没有任何作用:http://jsfiddle.net/PncMR/10/

有趣的是,当您将所有元素的线高设置为0(http://jsfiddle.net/PncMR/11/)时,唯一未受影响的元素是有问题的元素,因此我假设浏览器默认为特定的线高,现在正在寻找一种方法来覆盖它.

我没有发现任何这样做的webkit基础样式,但随时检查一下自己:

http://trac.webkit.org/browser/trunk/Source/WebCore/css/html.css

这不是一个moz焦点内部的问题,或外观:没有问题,或者是盒子大小的问题,或大纲问题,我找不到任何其他解决方案.

编辑:请看下面的垂直填充问题的答案,但是我仍然在寻找一个额外的padding-left的解决方案:仅在webkit和gecko中的文本输入上相当于1px. (http://jsfiddle.net/PncMR/14/)

解决方法

在Webkit中

Webkit中输入[type =“text”]上的额外垂直“padding”是因为您不能给文本输入一个小于正常值的线高值,这不是一个特定的值but varies depending on the typeface.

我知道这是原因,但我无法找到输入将获得此样式的位置,因为它不会出现在Webkit UA样式表中.

在壁虎

Gecko中输入[type =“text”]和input [type =“button”]上的额外垂直“padding”是由于user-agent样式表包含:

input {
    line-height: normal !important;
}

和!用户代理样式表cannot be overidden in any way中的重要声明.

结论

你不能在线高度下:在Webkit中是正常的,并且您不能在Gecko中的这些元素上具有除line-height之外的任何东西:正常的,所以最好的解决方案是总是使用line-height来定义这些元素:normal获得最佳的一致性,这不是一个很好的解决方案.理想情况下,我们可以覆盖所有的UA风格.

这两个都不会影响两个渲染引擎中只显示在输入[type =“text”]上的文本缩进的额外1px.

关心这个的人应该就这两个Bugzilla主题发表意见:

> https://bugzilla.mozilla.org/show_bug.cgi?id=697451
> https://bugzilla.mozilla.org/show_bug.cgi?id=349259

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


html5中section的用法
span标签和p标签的区别
jsp文件和html文件的区别是什么
span标签和div的区别
html颜色代码表大全
span标签的作用是什么
dhtml的主要组成部分包括什么
html编辑器哪个软件好用
span标签属于什么样式标签
html文件乱码怎么办
html怎么读取json文件
html文件打开乱码怎么恢复原状
html怎么链接外部css
html文件怎么保存到本地
html怎么链接css文件
html和css怎么连接
html和css怎么关联
html文件怎么保存到一个站点
html文件怎么写
html出现乱码怎么解决