为什么我的导航区域下面有一个小空间.我已将导航的边距设置为0以及其下方的所有内容.仍然空间不会消失.这是我的标记.
<!DOCTYPE html>
<html>
<head>
<title>HTML5</title>
<style>
body{
width: 964px;
background-color: white;
margin: 0 auto;
border: 1px solid black;
font-family: sans-serif;
}
nav{
width: 964px;
background-color: blue;
margin: 0;
}
nav ul {
list-style-type: none;
padding: 0;
margin: 0;
}
nav ul li {
display: inline-block;
float: left;
}
nav ul li a{
display: inline-block;
padding: 10px;
text-decoration: none;
color: #fff;
background-color: blue;
}
nav ul li a:hover{
background-color: #00a;
}
header{
text-align: center;
background-color: orange;
}
header h1{
margin: 0;
padding: 20px;
}
aside{
float: left;
width: 180px;
height: 500px;
background-color: red;
}
aside ul{
list-style-type: none;
padding-left: 15px;
}
aside ul li a{
display: inline-block;
text-decoration: none;
background-color: #080;
padding: 5px;
width: 139px;
color: white;
border-bottom: 1px solid black;
}
aside ul li a:hover{
background-color: #050;
}
section{
height: 500px;
width: 964px;
background-color: green;
}
footer{
clear: both;
background-color: yellow;
text-align: center;
padding: 5px;
}
.clearfix:after{
content: " ";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
.clearfix{
display: inline-block;
}
</style>
</head>
<body>
<header><h1>Header</h1></header>
<nav class="clearfix">
<ul>
<li><a href="#">HOME</a></li>
<li><a href="#">CONTACT</a></li>
<li><a href="#">ABOUT</a></li>
</ul>
</nav>
<aside>
<ul>
<li><a href="#">Champions</a></li>
<li><a href="#">Runes</a></li>
<li><a href="#">Skins</a></li>
<li><a href="#">Masteries</a></li>
</ul>
</aside>
<section></section>
<footer>footer</footer>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我只想消除导航和旁边之间的空间,但是在导航附近的每个容器上放置边距:0都不起作用.
小智 6
:after是一个伪元素,它告诉浏览器在内容之后在元素内呈现假元素.
.clearfix:after{
content: "";
display: block;
clear: both;
}
Run Code Online (Sandbox Code Playgroud)
这是一个块元素,这意味着它占用了它的父级的全宽.但是,以下规则使伪元素的父元素.clearfix成为内联块元素.这意味着该元素将仅占用其内容所需的最小宽度.
.clearfix{
display: inline-block;
}
Run Code Online (Sandbox Code Playgroud)
您正在看空间,因为内联块元素以字符形式内联呈现,元素两侧的空白区域呈现为单个空格.您可以使用以下任一方法解决此问题.
删除内联块规则
(演示)
.clearfix{
display: inline-block;
}
Run Code Online (Sandbox Code Playgroud)或者,将父级的字体大小设置为0,然后将所有直接子级的字体大小设置为基本字体大小.
(演示)
body {
font-size: 0;
}
body > * {
font-size: 1rem;
}
Run Code Online (Sandbox Code Playgroud)