【发布时间】:2014-06-08 20:20:59
【问题描述】:
我正在尝试创建一个高度为 40 像素并填充 80% 浏览器宽度的简单菜单栏。
这里的问题是我试图使文本居中,但是当使用不同的颜色(一种用于 div,另一种用于 ul,另一种用于 li)查看它时,我看到一个小像素没有被填充<a> 的填充。
填充它的唯一解决方案是将填充设置为 10.35 像素而不是 10 像素或 11 像素。
HTML:
<html>
<head>
<meta charset="utf-8" />
<title>myWebSite</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="menu">
<ul>
<li>
<a href="www.google.com">Hello</a>
</li>
<li>
<a href="www.google.com">Hello</a>
</li>
<li>
<a href="www.google.com">Hello</a>
</li>
<li>
<a href="www.google.com">Hello</a>
</li>
<li>
<a href="www.google.com">Hello</a>
</li>
<li>
<a href="www.google.com">Hello</a>
</li>
</ul>
</div>
</body>
</html>
还有 CSS :
body, html {
width : 100%;
margin : 0;
}
#menu {
background-color : black;
width : 100%;
height : 40px;
}
ul {
list-style : none;
height : 100%;
background-color : yellowgreen;
}
li {
margin : 0;
padding : 0;
float : left;
line-height : 40px;
background-color : blue;
}
a {
margin : 0;
text-decoration : none;
color : white;
font-weight : bold;
padding : 10px 5px;
background-color : blueviolet;
}
a:hover {
background-color : orange;
}
谁能解释一下为什么会发生这种情况以及我应该使用什么更好的解决方案来做到这一点?
【问题讨论】:
-
将行高从 40px 改为 39px。
-
作为所有答案的补充:当您设置宽度和高度之类的百分比值时,您必须记住浏览器最终使用像素。因此,如果您想要 11px 元素的 50% 宽度,一些浏览器会将其设为 5px,而某些浏览器会将其设为 6px。如果您缩放窗口,也可以看到这一点
标签: html css html-lists padding