我对css有点新意。我正在尝试制作一个只有3个文本项的水平导航栏,用于查看移动设备。我将宽度设置为100%,每个部分宽度设置为32%(我尝试了33%,但它会将第3个项目放在新行上。)它看起来不错,但是当我悬停(或点击使用移动设备)背景颜色发生变化,您可以看到边距。
ul.nav {
width:100%;
margin:0 auto;
padding:0;
list-style:none;
display:inline-block;
background-color:#62564A;
text-align:center;
font-family: sans-serif;
}
.nav li {
display:inline;
}
.nav a {
width:33%;
text-align:center;
display:inline-block;
padding-bottom:13px;
padding-top:12px;
border-left: 1px solid #fff;
border-right: 1px solid #fff;
}
.nav a:hover {
background:#A26A42;
border:none;
width:32%
}
ul.nav li:first-child a{
border:none;
}
ul.nav li:last-child a {
border:none;
}
CSS结束
<ul class="nav">
<li><a href="#">Search</a></li>
<li><a href="#">Legend</a></li>
<li><a href="#">Info</a></li>
</ul>
<div id="map_canvas" style="position:absolute;left:0;right:0;"></div>
感谢您的帮助。
答案 0 :(得分:3)
我会像 jsFiddle example 那样重写你的CSS。
<强> CSS 强>
ul.nav {
width:100%;
margin:0 auto;
padding:0;
list-style:none;
background-color:#62564A;
text-align:center;
font-family: sans-serif;
}
.nav li {
display:inline-block;
width:33%;
margin:0;
padding:0;
}
.nav a {
text-align:center;
padding:12px 0 13px 0;
margin:0;
border-left: 1px solid #fff;
border-right: 1px solid #fff;
display:block;
}
.nav a:hover {
background:#A26A42;
border:none;
}
ul.nav li:first-child a{
border:none;
}
ul.nav li:last-child a {
border:none;
}
答案 1 :(得分:1)
试试这个:
* { margin:0; padding:0; } // This reset should go at the top of your CSS (if you don't have one already)
.nav li {
display:block;
float:left;
width: 33%;
}
.nav li a {
display:block;
text-align: center;
}
答案 2 :(得分:0)
在“悬停”上,您可以使菜单项比正常情况更窄。另外,你可以移除边缘,这将使它更加狭窄。此外,看起来你正在使用1px边框左右间隔。如果是这种情况则使用保证金。使用jsfiddle练习。
试试这个:
ul.nav {
width:100%;
margin:0;
padding:0;
list-style:none;
text-align:center;
font-family: sans-serif;
}
.nav li {
display:inline;
}
.nav a {
width:32%;
text-align:center;
display:inline-block;
padding-bottom:13px;
padding-top:12px;
margin-left: 1px;
background: #62564A;
}
.nav a:hover {
background:#A26A42;
}
ul.nav li:first-child a{
margin-left: 0;
}