我有一个简单的 html页面和一个相当简单的 css,它让我发疯 - 我根本不明白这里发生了什么(最初的任务是创建一个简单的联系表格,使用modernizr,但我已经剥离了一切) :
<html>
<head>
<style>
body {
font-size: 16px;
line-height: 26px;
}
label {
float: left;
margin-top: 4px;
}
input {
border: 1px solid #ccc;
margin: 4px;
}
input:focus {
border: 2px solid #900;
}
</style>
</head>
<body>
<label>1:</label><input id="1" /><br />
<label>2:</label><input id="2" /><br />
<label>3:</label><input id="3" /><br />
</body>
</html>
带有标签的三行和输入框的左边距增加,如果我将焦点设置为任何输入,下面的会跳回(至少在 Chrome 和 FF 中)。为什么?
现在,如果我删除几乎任何css 属性,事情就会变得陌生:
- 上面的原文可以在这里找到。
- 如果我删除了正文线(甚至只删除了line-height: 26px; part!!),左边距就会消失(为什么?),请在此处查看。
- 如果我删除input:focus线,则不再发生跳转(为什么?),请在此处查看。
- 如果我删除边框:1px solid #ccc; 从输入,边距消失了(为什么???),检查这里。
还有其他的相互依赖关系。这在 jsfiddle 和其他在线工具中不会发生,但可以在本地轻松复制。
底线:整个行为对我来说似乎完全陌生,我希望 CSS Sherlock Holmes 可以阐明这里发生的事情。