我做了以下非常简单的HTML页面
<html>
<head>
<style>
a {
padding: 5px;
background-color: blue;
color: white;
}
#header {
background-color: orange;
height: 50px;
}
</style>
</head>
<body>
<div id="header"></div>
<div>
<a href="/foo">foo</a>
<a href="/foo">foo</a>
</div>
</body>
</html>
正如您在此演示中看到的,链接的蓝色背景与其父级兄弟姐妹的橙色背景重叠(带有 id="header"
的div )。如何在不删除链接填充的情况下防止这种情况发生?
如果尝试向内联元素添加维度,某些属性将 应用,某些属性将被部分应用,而其他属性将被应用 根本不应用。最值得注意的属性是宽度, 高度、边距和填充。 .
虽然填充可以应用于内联元素的所有侧面,但只有 左边距和右边距将对周围内容产生影响。
我的解决方案:将锚链接设置为 inline-block
。
优秀的文章 - 链接
JSfiddle 备份演示
* {
margin: 0;
padding: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
a {
padding: 5px;
background-color: blue;
color: white;
display: inline-block;
}
#header {
background-color: orange;
height: 50px;
}
#nav {
background: red;
}
<body>
<div id="header"></div>
<div id="nav">
<a href="#">foo</a>
<a href="/foo">foo</a>
</div>
</body>
http://jsfiddle.net/whura34x/3/
您需要使锚点内联块
a {
padding: 5px;
background-color: blue;
color: white;
display:inline-block
}
父元素的内联元素填充很奇怪:d
尝试使用锚点更改显示类型。
a{
display:block;//you can also use inline-block without the float.
float:left;
}
试试这个
#header {
background-color: orange;
display: inline-block;
height: 50px;
width: 100%;
}