HTML Margin和padding extrange行为

时间:2015-03-10 21:03:49

标签: html5 css3 margin padding

好吧,我正在开发一个网页。我想要左边的黑色和右边的内容。这是简单的HTML:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <link rel="stylesheet" href="style/main.css" >
  <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame 
       Remove this if you use the .htaccess -->
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  <title>indexhtml</title>
  <meta name="description" content="">
  <meta name="author" content="Lorena Soledad">

  <meta name="viewport" content="width=device-width; initial-scale=1.0">

  <!-- Replace favicon.ico & apple-touch-icon.png in the root of your domain and delete these references -->
  <link rel="shortcut icon" href="/favicon.ico">
  <link rel="apple-touch-icon" href="/apple-touch-icon.png">
</head>

<body>

<aside id="information">
    <header>
        <h1>Web Title</h1>
    </header>

    <footer>
        <p>Description</p>
    </footer>
</aside>

<section id="content">
    <nav>
        <ul>
            <li>Menu 1</li>
            <li>Menu 2</li>
            <li>Menu 3</li>
            <li>Menu 4</li>
        </ul>
    </nav>

    <article>
    </article>
</section>

</body>
</html>

这里是相应的CSS样式表:

html, body {
margin: 0;
    padding: 0;
    height: 100%;
    width: 100%; /*Para ocupar todo el ancho y el alto de la pantalla*/
}


section#content {
    background-image: url("img/crossword.png");
    width: 60%;
    height: 100%;
}


aside#information {
    background-color: black;
    float: left;
    width: 30%;
    height: 100%;
}

问题是,我希望身体能够填满整个浏览器。所以,正如你所看到的,我用过这个:

html, body {
    margin: 0;
        padding: 0;
        height: 100%;
        width: 100%;
    }

但是浏览器顶部仍有一些像素,就像this

一样

所以......在网上搜索我发现下一个代码,使用通用选择器,并将边距和填充属性移出html和body,就像这样:

* {
    margin: 0;
    padding: 0;
}

html, body {
    height: 100%;
    width: 100%;
}

这很有效!而且我不知道为什么。 Html标签不应该是包含所有内容的第一个标签吗? 我的意思是,当我在html / body标签中定义边距和填充时,为什么它不起作用,但是当我在通用选择器中定义它时它确实有效?我不明白。

我希望有人能向我解释一下。 感谢。

2 个答案:

答案 0 :(得分:0)

margin是由ul标记引起的,这会导致section向下推。

ul标记的上下边距默认为1em,第二个CSS块中的通用选择器正在删除它。

http://jsfiddle.net/bbr716yh/

答案 1 :(得分:0)

只需使用chrome并右键单击该白色区域,选择inspect元素即可看到它是什么。也许是旁边或标题元素......