代码之家  ›  专栏  ›  技术社区  ›  Matt

为什么我的HTML/CSS网站顶部有空白?[副本]

  •  0
  • Matt  · 技术社区  · 6 年前

    我的HTML/CSS项目顶部有一个奇怪的空白,我无法摆脱它。我如何去除空白?甚至不用使用 normalize.css 文件,尽管我在中已将边距和填充设置为0 规范化.css 所以这不是问题所在。我已经做了一个JSsnippet here 这可能更容易理解。

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

    以下是我的项目的HTML/CSS代码:

    HTML:

    <!DOCTYPE html>
    <html>
        <head>
            <title>SuperMegaAwesome Landing Page | Matt Bell</title>
            <link rel="stylesheet" type="text/css" href="./Stylesheets/CSS/main.css">
            <link rel="stylesheet" type="text/css" href="./Stylesheets/CSS/normalize.css">
        </head>
    
        <body>
            <header>
                <p id="logo">Super<span>Mega</span>Awesome</p>
    
                <nav>
                    <a href="#">Home</a>
                    <a href="#">Portfolio</a>
                    <a href="#">Services</a>
                    <a href="#">Get in touch</a>
                </nav>
            </header>
    
            <section id="hero">
                <div id="hero_overlay">
                    <div class="wrapper">
                        <div id="content">
                            <h1 class="title">We create beautiful products</h1>
                            <h2 class="sub_title">Truffaut DIY keffiyeh, twee messenger bag venmo locavore organic master cleanse marfa gochujang selvage</h2>
                            <div class="button_wrapper">
                                <a href="#" class="button button_highlight">Learn More</a>
                                <a href="#" class="button button_secondary">Play Video</a>
                            </div>
                        </div>
                    </div>
                </div>
            </section>
            <div>hELLO</div>
            <div>HELLOOO</div>
            <footer>Hello</footer>
        </body>
    </html>
    

    body {
      font-family: "Brandon Grotesque", Helvetica, sans-serif;
    }
    
    .wrapper {
      width: 90vw;
      height: 100%;
      margin: 0 auto;
      background-color: rgba(100, 100, 0, 0.4);
    }
    
    header {
      position: fixed;
      height: 10vh;
      width: 100vw;
    }
    header #logo {
      color: #FFFFFF;
      font-weight: 700;
      font-size: 1.35rem;
      position: absolute;
      left: 10vw;
      top: 50%;
      transform: translateY(-50%);
    }
    header #logo span {
      font-weight: 300;
    }
    header nav {
      position: absolute;
      right: 10vw;
      top: 50%;
      transform: translateY(-50%);
    }
    header nav a {
      color: #FFFFFF;
      font-weight: 700;
      text-decoration: none;
      margin-left: 3vw;
    }
    
    #hero {
      background-image: url(../../images/banner_background.jpg);
      background-repeat: no-repeat;
      background-size: cover;
      background-position: top;
      height: 95vh;
    }
    #hero #hero_overlay {
      background-color: rgba(0, 0, 0, 0.4);
      width: 100%;
      height: 100%;
    }
    #hero .title, #hero .sub_title {
      color: #FFFFFF;
      text-align: center;
    }
    #hero .title {
      font-size: 3.5rem;
    }
    
    /*# sourceMappingURL=main.css.map */
    

    我也在使用 通过一些调整,可以使跨浏览器的格式同义:

    * {
            margin: 0;
            padding: 0;
            border: 0;
            outline: 0;
            font-size: 100%;
            vertical-align: baseline;
            background: transparent;
            box-sizing: border-box;
        }
    
    /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
    
    /* Document
       ========================================================================== */
    
    /**
     * 1. Correct the line height in all browsers.
     * 2. Prevent adjustments of font size after orientation changes in iOS.
     */
    
    html {
      line-height: 1.15; /* 1 */
      -webkit-text-size-adjust: 100%; /* 2 */
      padding: 0;
      margin: 0;
    }
    
    /* Sections
       ========================================================================== */
    
    /**
     * Remove the margin in all browsers.
     */
    
    body {
      margin: 0;
      padding: 0;
    }
    
    /**
     * Render the `main` element consistently in IE.
     */
    
    main {
      display: block;
    }
    
    /**
     * Correct the font size and margin on `h1` elements within `section` and
     * `article` contexts in Chrome, Firefox, and Safari.
     */
    
    h1 {
      font-size: 2em;
      margin: 0.67em 0;
    }
    
    /* Grouping content
       ========================================================================== */
    
    /**
     * 1. Add the correct box sizing in Firefox.
     * 2. Show the overflow in Edge and IE.
     */
    
    hr {
      height: 0; /* 1 */
      overflow: visible; /* 2 */
    }
    
    /**
     * 1. Correct the inheritance and scaling of font size in all browsers.
     * 2. Correct the odd `em` font sizing in all browsers.
     */
    
    pre {
      font-family: monospace, monospace; /* 1 */
      font-size: 1em; /* 2 */
    }
    
    /* Text-level semantics
       ========================================================================== */
    
    /**
     * Remove the gray background on active links in IE 10.
     */
    
    a {
      background-color: transparent;
    }
    
    /**
     * 1. Remove the bottom border in Chrome 57-
     * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
     */
    
    abbr[title] {
      border-bottom: none; /* 1 */
      text-decoration: underline; /* 2 */
      text-decoration: underline dotted; /* 2 */
    }
    
    /**
     * Add the correct font weight in Chrome, Edge, and Safari.
     */
    
    b,
    strong {
      font-weight: bolder;
    }
    
    /**
     * 1. Correct the inheritance and scaling of font size in all browsers.
     * 2. Correct the odd `em` font sizing in all browsers.
     */
    
    code,
    kbd,
    samp {
      font-family: monospace, monospace; /* 1 */
      font-size: 1em; /* 2 */
    }
    
    /**
     * Add the correct font size in all browsers.
     */
    
    small {
      font-size: 80%;
    }
    
    /**
     * Prevent `sub` and `sup` elements from affecting the line height in
     * all browsers.
     */
    
    sub,
    sup {
      font-size: 75%;
      line-height: 0;
      position: relative;
      vertical-align: baseline;
    }
    
    sub {
      bottom: -0.25em;
    }
    
    sup {
      top: -0.5em;
    }
    
    /* Embedded content
       ========================================================================== */
    
    /**
     * Remove the border on images inside links in IE 10.
     */
    
    img {
      border-style: none;
    }
    
    /* Forms
       ========================================================================== */
    
    /**
     * 1. Change the font styles in all browsers.
     * 2. Remove the margin in Firefox and Safari.
     */
    
    button,
    input,
    optgroup,
    select,
    textarea {
      font-family: inherit; /* 1 */
      font-size: 100%; /* 1 */
      line-height: 1.15; /* 1 */
      margin: 0; /* 2 */
    }
    
    /**
     * Show the overflow in IE.
     * 1. Show the overflow in Edge.
     */
    
    button,
    input { /* 1 */
      overflow: visible;
    }
    
    /**
     * Remove the inheritance of text transform in Edge, Firefox, and IE.
     * 1. Remove the inheritance of text transform in Firefox.
     */
    
    button,
    select { /* 1 */
      text-transform: none;
    }
    
    /**
     * Correct the inability to style clickable types in iOS and Safari.
     */
    
    button,
    [type="button"],
    [type="reset"],
    [type="submit"] {
      -webkit-appearance: button;
    }
    
    /**
     * Remove the inner border and padding in Firefox.
     */
    
    button::-moz-focus-inner,
    [type="button"]::-moz-focus-inner,
    [type="reset"]::-moz-focus-inner,
    [type="submit"]::-moz-focus-inner {
      border-style: none;
      padding: 0;
    }
    
    /**
     * Restore the focus styles unset by the previous rule.
     */
    
    button:-moz-focusring,
    [type="button"]:-moz-focusring,
    [type="reset"]:-moz-focusring,
    [type="submit"]:-moz-focusring {
      outline: 1px dotted ButtonText;
    }
    
    /**
     * Correct the padding in Firefox.
     */
    
    fieldset {
      padding: 0.35em 0.75em 0.625em;
    }
    
    /**
     * 1. Correct the text wrapping in Edge and IE.
     * 2. Correct the color inheritance from `fieldset` elements in IE.
     * 3. Remove the padding so developers are not caught out when they zero out
     *    `fieldset` elements in all browsers.
     */
    
    legend {
      box-sizing: border-box; /* 1 */
      color: inherit; /* 2 */
      display: table; /* 1 */
      max-width: 100%; /* 1 */
      padding: 0; /* 3 */
      white-space: normal; /* 1 */
    }
    
    /**
     * Add the correct vertical alignment in Chrome, Firefox, and Opera.
     */
    
    progress {
      vertical-align: baseline;
    }
    
    /**
     * Remove the default vertical scrollbar in IE 10+.
     */
    
    textarea {
      overflow: auto;
    }
    
    /**
     * 1. Add the correct box sizing in IE 10.
     * 2. Remove the padding in IE 10.
     */
    
    [type="checkbox"],
    [type="radio"] {
      box-sizing: border-box; /* 1 */
      padding: 0; /* 2 */
    }
    
    /**
     * Correct the cursor style of increment and decrement buttons in Chrome.
     */
    
    [type="number"]::-webkit-inner-spin-button,
    [type="number"]::-webkit-outer-spin-button {
      height: auto;
    }
    
    /**
     * 1. Correct the odd appearance in Chrome and Safari.
     * 2. Correct the outline style in Safari.
     */
    
    [type="search"] {
      -webkit-appearance: textfield; /* 1 */
      outline-offset: -2px; /* 2 */
    }
    
    /**
     * Remove the inner padding in Chrome and Safari on macOS.
     */
    
    [type="search"]::-webkit-search-decoration {
      -webkit-appearance: none;
    }
    
    /**
     * 1. Correct the inability to style clickable types in iOS and Safari.
     * 2. Change font properties to `inherit` in Safari.
     */
    
    ::-webkit-file-upload-button {
      -webkit-appearance: button; /* 1 */
      font: inherit; /* 2 */
    }
    
    /* Interactive
       ========================================================================== */
    
    /*
     * Add the correct display in Edge, IE 10+, and Firefox.
     */
    
    details {
      display: block;
    }
    
    /*
     * Add the correct display in all browsers.
     */
    
    summary {
      display: list-item;
    }
    
    /* Misc
       ========================================================================== */
    
    /**
     * Add the correct display in IE 10+.
     */
    
    template {
      display: none;
    }
    
    /**
     * Add the correct display in IE 10.
     */
    
    [hidden] {
      display: none;
    }
    
    2 回复  |  直到 6 年前
        1
  •  9
  •   dev101    6 年前

    这是因为 margin collapsing 现象看见 related question . 如果您删除了 您将看到布局变得“正常”(例如顶部没有空白),因此 不是问题的原因。

    简单地说,将此添加到您的 规范化.css *{}节。看见 fiddle

    * {
    overflow:hidden; /* or auto */
    }
    
        2
  •  1
  •   Partho63 BASANT KUMAR    6 年前

    尝试添加以下内容:

    body {
        margin: 0;
    }
    #hero .title {
        margin-top: 0;
    }
    

    body .title 详情如下:

    body {
        font-family: "Brandon Grotesque", Helvetica, sans-serif;
        margin: 0;
    }
    #hero .title {
        margin-top: 0;
        font-size: 3.5rem;
    }