4

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

这些图像都由相同的 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; }
4

3 回答 3

9

注册页面上的 H1 有一个默认的 Margin。有时,我不知道为什么,如果你给第一个元素一个边距,它会应用到父元素。

通过将 H1 #register_title 的上边距设为 0,您应该可以解决问题。

#register_title { margin-top: 0; }

永远记得使用 reset.css 实现或记住元素是默认样式的。

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

于 2012-04-12T22:29:31.120 回答
0

一个主要区别是第一页有标题动画javascript,它将标题移动到其最终位置。寄存器页没有这样的逻辑。

于 2012-04-12T22:27:52.440 回答
0

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

http://www.codecreek.biz/registration/register中设置为相对时,它修复了差距。

(顺便说一下,您在http://www.codecreek.biz/login上用 relative 覆盖它,所以“top:100”没有生效,就像在另一页上一样)

于 2012-04-12T22:29:46.583 回答