HTML 边距和填充异常行为
HTML Margin and padding extrange behaviour
好吧,我正在处理网页。我想要左边的黑色和右边的内容。这是简单的 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
所以...在网络上搜索我找到了下一个代码,使用通用选择器,并将 margin 和 padding 属性从 html 和 body 中移出,就像这样:
* {
margin: 0;
padding: 0;
}
html, body {
height: 100%;
width: 100%;
}
这成功了!我不知道为什么。
Html 标签不应该是包含所有内容的第一个标签?
我的意思是,为什么当我在 html/body 标签的 中定义边距和填充时它不起作用,但是当我在 通用选择器中定义它时它却起作用?没看懂。
我希望有人能给我解释一下。
谢谢。
margin
是由您的 ul
标签引起的,它正在将您的 section
推低。
ul
标记的顶部和底部边距默认为 1em
,第二个 CSS 块中的通用选择器正在删除它。
只需使用 chrome 并右键单击该白色区域,选择检查元素,您应该会看到它是什么。也许放在一边或 header 元素...
好吧,我正在处理网页。我想要左边的黑色和右边的内容。这是简单的 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
所以...在网络上搜索我找到了下一个代码,使用通用选择器,并将 margin 和 padding 属性从 html 和 body 中移出,就像这样:
* {
margin: 0;
padding: 0;
}
html, body {
height: 100%;
width: 100%;
}
这成功了!我不知道为什么。 Html 标签不应该是包含所有内容的第一个标签? 我的意思是,为什么当我在 html/body 标签的 中定义边距和填充时它不起作用,但是当我在 通用选择器中定义它时它却起作用?没看懂。
我希望有人能给我解释一下。 谢谢。
margin
是由您的 ul
标签引起的,它正在将您的 section
推低。
ul
标记的顶部和底部边距默认为 1em
,第二个 CSS 块中的通用选择器正在删除它。
只需使用 chrome 并右键单击该白色区域,选择检查元素,您应该会看到它是什么。也许放在一边或 header 元素...