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

ell*_*zan 4 html css php whitespace

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

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

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

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

为了清楚起见,我已经看过很多可能的答案.似乎不是我的情况,因为我没有在这些页面上使用表格.

这是我尝试过的:

  • 检查代码中的空格.但是,如果您查看这两个页面的来源,您实际上会注意到第二个有问题的页面在其Doctype声明之前在顶部有一个较少的空白行.
  • 从第二页删除PHP代码.这也没有任何影响.
  • 减少关闭PHP标记?>与之间的空白<!DOCTYPE HTML>.这再次没有任何效果.
  • 检查BOM.我使用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; }
Run Code Online (Sandbox Code Playgroud)

Ale*_*scu 9

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

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

#register_title { margin-top: 0; }
Run Code Online (Sandbox Code Playgroud)

始终记得使用reset.css实现,或者请记住默认情况下元素是样式化的.

编辑:我想指出这是一个问题,因为你以前的所有元素都是绝对定位的.你真的不应该像你一样使用绝对定位.您应该使用margin-top,padding-top来向下移动元素.只有在没有其他定位元素的途径时才能使用绝对定位.

  • 不是很奇怪,这就是盒子模型的工作方式:)(但是,你可以说盒子模型很奇怪) (2认同)