为啥无样式输入文本的边框宽度为 2px?

Posted

技术标签:

【中文标题】为啥无样式输入文本的边框宽度为 2px?【英文标题】:Why unstyled input text has a border width of 2px?为什么无样式输入文本的边框宽度为 2px? 【发布时间】:2012-12-31 12:34:07 【问题描述】:

我有以下 html 标记,这些标记会生成文本类型的输入表单元素。

<!DOCTYPE html>
<html>
    <body>
        <input type="text" />
    </body>
</html>

在一个不错的浏览器中,它呈现如下屏幕截图(在右侧是缩放的图像):

那么,为什么在检查&lt;input&gt; 元素时,浏览器显示的边框宽度为2px?我们可以直观地了解输入元素有 1 个像素。即使使用 jQuery,当我执行 jQuery('input').css('border-width') 之类的操作时,它也会吐出 2px

当然,这种情况只发生在无样式的表单输入元素中

我还创建了一个 JsFiddle 演示:http://jsfiddle.net/HBDUZ/

谢谢!

【问题讨论】:

浏览器默认样式表。 我猜这就是您的浏览器设置为使用默认样式呈现文本字段的方式。例如,在 ios 上的 Chrome 中,文本字段对我来说是“1px”。 (iPhone) 【参考方案1】:

每个浏览器都有一个内置样式表(称为“用户代理样式表”),其中包含某些元素的默认样式。

在本例中(Chrome 25 beta-m,Windows),样式为:

border: 2px inset;

inset 的结果在这个JSFiddle 中确实可见,具有对比色背景。

【讨论】:

以上是关于为啥无样式输入文本的边框宽度为 2px?的主要内容,如果未能解决你的问题,请参考以下文章

富文本内容里的图片放在h5适应(大于边框的宽度/300的宽度适应,其余不变,样式取消掉)

css样式中怎样控制下划线的粗细?

为啥 IE 和 Chrome 呈现 css 边框底部宽度不同?

控件基本属性

在jQuery中获取边框宽度

CSS如何怎么设置div边框颜色宽度和高度