;输入元素宽度渲染问题
我在渲染输入文本元素时遇到问题。如果我将 添加到我的文件中,输入元素会被拉伸,但我的输入提交按钮不会。 我已经在几个不同的浏览器中进行了测试,结果是一致的,所以可能是我:(。
在示例中,我的文本元素以 304 像素的宽度呈现。当我删除第一行时,它将以 300 像素的宽度呈现。
示例:
<!doctype html>
<html>
<STYLE type="text/css">
*{ margin: 0px; padding: 0px; }
input
{
width: 300px;
}
</STYLE>
<body>
<input/><br/>
<input type="submit">
</body>
</html>
有谁知道是什么原因造成的,但更重要的是如何解决它?
I have a problem when rendering my input text elements. If i add the <!doctype html>
to my file the input element gets stretched, my input submit button does not.
I have tested in several different browsers and it is consistent, so it is probably me :(.
In the example my text element is rendered with a width of 304 pixels. When I remove the first line it will render at 300 pixels.
example:
<!doctype html>
<html>
<STYLE type="text/css">
*{ margin: 0px; padding: 0px; }
input
{
width: 300px;
}
</STYLE>
<body>
<input/><br/>
<input type="submit">
</body>
</html>
Does anybody know what is causing it, but more importantly how it can be fixed?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当您没有该文档类型时,您的页面将以Quirks 模式呈现。
在 Quirks 模式下,
input
的border
和padding
计入300px
内部 > 宽度。当您添加文档类型时,您的页面将以标准模式呈现,并且
边框 和
padding
不再是300px
的一部分 - 这就是“额外”4px
的来源。请参阅此处:http://www.quirksmode.org/css/box.html
对于现代浏览器“修复”此问题的最简单方法是使用
box-sizing: border -box
:或者,您可以自己显式设置
padding
和border-width
,以确保值的总和>padding
、border-width
和width
总计为300px
。When you don't have that doctype, your page is rendering in Quirks Mode.
In Quirks Mode, the
border
andpadding
of theinput
are counted inside the300px
width.When you add the doctype, your page is rendering in Standards Mode, and the
border
andpadding
are no longer part of the300px
- that's where the "extra"4px
is coming from.See here: http://www.quirksmode.org/css/box.html
The easiest way to "fix" this for modern browsers is to use
box-sizing: border-box
:Or, you can explicitly set the
padding
andborder-width
yourself, to make sure the sum of the values ofpadding
,border-width
andwidth
add up to300px
.