页面顶部的空白

新手上路,请多包涵

我的页面顶部有大约 20 像素的空白区域。我已经检查了每个元素,并且该区域没有任何填充或边距。当我检查 body 元素时,它不包括这个空间。当我检查 html 元素时确实包含这个空间。另外,如果我删除

<!DOCTYPE html>

空白消失了。

这是我的主要布局

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>Title</title>
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
    <meta name="viewport" content="width=device-width" />
    @RenderSection("Css", false)
</head>

<body>
    @RenderSection("JavaScript", false)
</body>
</html>

原文由 dan_vitch 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

在您的网站样式表顶部添加一个 css 重置,不同的浏览器呈现一些默认边距和填充,也许外部样式表也会做一些您不知道的事情,一个 css 重置只会初始化一个新的调色板可以这么说:

 html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, caption {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}

更新:改用通用选择器: @Frank 提到您可以使用通用选择器: * 而不是列出所有元素,并且这个选择器看起来 在所有主要浏览器中都是跨浏览器兼容的

 * {
        margin: 0;
        padding: 0;
        border: 0;
        outline: 0;
        font-size: 100%;
        vertical-align: baseline;
        background: transparent;
    }

原文由 Brian Ogden 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果其他答案都没有帮助,请检查是否有 margin-top 设置在某些(下面的某些级别)嵌套 DOM 元素上。

当您在调试器中检查 body 元素本身时,它将无法识别。只有当您在 Chrome Dev Tools 元素调试器中展开嵌套 body 元素中的几个元素并检查其中是否有一个 margin-top 设置时,它才会可见。

下面是站点屏幕截图的上半部分以及当您检查 body 标签时相应的 Chrome 开发工具视图。

这里没有顶部边距的迹象,并且您已经按照上面的答案重置了所有浏览器特定的 CSS 属性,但是不需要的空白仍然存在。

body 元素上方不需要的空白对应的调试器视图

以下是检查正确的嵌套元素时的视图。可以清楚地看到橙色的 top-margin 设置在上面。这是导致 body 元素顶部出现空白的原因。

清晰可见的上边距在此处输入图像描述

在找到的元素上,将 margin-top 替换为 padding-top 如果你需要它上面的空间,但不要将它泄漏到 body 标签之上。

希望有帮助:)

原文由 Valentine Shi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题