由换行符分隔的中心元素在Firefox中无法正确对齐

时间:2011-07-29 16:06:24

标签: html firefox center line-breaks text-align

我正在构建一个所有内容都居中的登录框。我有一段文字,两个表格字段叠在一起,还有一个按钮。表单字段具有相同的宽度,我只需在它们之间放置换行符(<br />)即可堆叠它们。

由于整个框已经应用了text-align: center;,你会认为两个表格字段完全对齐(一个在另一个上面,两个边缘完美对齐,因为它们是&#39; re相同的宽度)?但是,在Firefox中,第二个表单字段向右移动了1或2个像素。

是什么原因引起的?线路断线是否占用了很小的空间,因此甩掉了定心?如果是这样,我该如何预防?

1 个答案:

答案 0 :(得分:1)

首先,换行符不会在它周围的内容之前或之后创建任何间距,因此它不是导致间距问题的换行符。完整的代码示例可以帮助但检查以下内容,因为这确实有效并在firefox中完美地对齐它们:

<div style="text-align: center;">
  Some text<br />
  <input type="text" style="width: 150px;"><br />
  <input type="text" style="width: 150px;">
</div>

首先检查页面的文档类型。确保你正确地声明它(xhtml假设你正在关闭你的换行符)。除此之外,鉴于我确定换行符不会在它们之后放置,你应该尝试剥离代码直到找到原因。你可以在其中一个输入框之前有一个不间断的空格(参见http://www.htmlbasictutor.ca/non-breaking-space.htm,因为我不知道如何使stackoverflow写入该字符),这会移动它,或者你可能有一些css给出一个他们是一个边际。你可以在它们上方有一个浮动的元素,它会侵入一个元素并将其移动。

如果所有其他方法都失败了,只需将它们放在自己的div中,而不是使用换行符。在div中包装内容会产生相同的效果。你也可以做清楚:两个;在div上确保没有任何浮动在它上面影响它。