页面顶部的奇怪空白区域 - HTML,CSS和PHP



好吧,这是我遇到的一个奇怪的问题。我有两个页面,它们略有不同,但它们共享几个相同的元素(基本上是两个图像)。

这些图像都由相同的 CSS 样式表控制,但是,它们在第二页上似乎都低了大约 20-30 像素。

第二页的不同之处在于它在 Doctype 声明之前使用 PHP。但是,正如后面所说,我认为这不是问题所在。

若要查看此效果,请连续查看这两个页面:http://www.codecreek.biz/login 和 http://www.codecreek.biz/registration/register。

需要明确的是,我已经查看了许多可能的答案。这似乎不是我的情况,因为我没有在这些页面上使用表格。

这是我尝试过的:

  • 检查代码中的空格。但是,如果您查看这两个页面的来源,您实际上会注意到第二个有问题的页面在其 Doctype 声明之前,顶部少了一行空格。
  • 从第二页中删除 PHP 代码。这也没有任何效果。
  • 将关闭 PHP 标记?><!DOCTYPE HTML>之间的表观空间减少到零。这又没有任何效果。
  • 检查物料清单。我使用 vim 执行此操作,结果证实没有使用 BOM。
  • 检查我的 CSS。我没有发现任何奇怪的东西,但我是 CSS 的新手,所以,由于这可能是问题所在,这里是我的样式表的链接:http://www.codecreek.biz/resources/main.css。(免责声明:我正在重写该页面,所以如果它看起来很奇怪,你去吧!

此外,Safari 的开发者检查工具清楚地显示,我的第二页上的 <body> 标签仅从大约 20 像素开始。

老实说,我很迷茫。我希望有一个简单的解决方法,但是我已经为此工作了几个小时,但无济于事。

编辑:这是CSS,包括"标题"图像和"波浪线"图像。

#login_title { position:absolute; width:1000px; top:100px; }
#login_line { position:absolute; width:500px; top:330px; left:250px; }

寄存器页面上的 H1 具有默认的边距。 有时,我不知道为什么,如果你给第一个元素一个边距,它会将其应用于父元素。

通过给 H1 #register_title 一个上边距 0,你应该可以解决问题。

#register_title { margin-top: 0; }

始终记住使用重置.css实现,或者记住元素默认设置样式。

编辑:我想指出,这是一个问题,因为您之前的所有元素都是绝对定位的。 你真的不应该像现在这样使用绝对定位。 您应该使用上边距、上边距将元素向下移动页面。 仅当没有其他定位元素的途径可用时,才应使用绝对定位。

一个主要区别是第一页具有标题动画javascript将标题移动到其最终位置。 注册页面没有这样的逻辑。

在 http://www.codecreek.biz/registration/register 中,徽标(login_title)的位置是绝对的,但在另一页中它是相对的。

在 http://www.codecreek.biz/registration/register 中设置为相对时,它会修复间隙。

(顺便说一下,您在 http://www.codecreek.biz/login 上用 relative 内联覆盖它,因此"top:100"没有生效,就像在另一页上一样)

最新更新