CSS: 提交按钮看起来比文本输入框和文本域小

12

我刚刚注意到这个非常简单的表单的奇怪渲染。

以下是我的标记/CSS:http://jsfiddle.net/a9PLM/

正如您所看到的,文本字段和按钮共享相同的样式,但它们的大小差异很大。

为什么会发生这种情况?

谢谢!

5个回答

32

这是我多年来困惑的事情的最简单解释,干杯! - ConstantineK

1

我认为这是一个浏览器呈现问题...按钮的显示方式与文本输入不同。

要解决此问题,请将以下内容添加到您的 CSS 中

form input[type="submit"]{
    width:273px;
}

示例:http://jsfiddle.net/jasongennaro/a9PLM/1/


0
问题在于表单部件通常不像普通的HTML元素一样呈现,而且对它们进行样式设置总是有点靠运气。我会尽量避免这种需要精确尺寸的情况,但如果你不能避免,那么请按如下方式拆分选择器:
    form textarea, form input[type=text]
    {
        width:250px;
        padding:10px;
    }
    form input[type=submit] { width: 270px }

请注意,我将宽度增加了20像素(10 x 2)以补偿填充。

0

我使用了这个仅基于CSS的解决方案,它可以在IE、FF和Chrome中工作。基本上,思路是手动强制输入元素的高度大于标准框的值。对于文本和按钮都要这样做:

  • 将边距和填充设置为0。
  • 将垂直对齐设置为中间。
  • 使用高度/宽度来控制文本和按钮的尺寸。文本高度必须比字体高度大几个像素(以覆盖标准框尺寸)。按钮的高度必须比文本高2个像素。

示例:

input { margin:0; padding:0; border:solid 1px #888; vertical-align:middle; height:30px; }
input[type="submit"] { height:32px; }

0

文本字段上的填充会在两侧增加额外的空间。请将输入框和文本区域的填充设置为0。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接