我正在尝试解决两个问题,但无法找到解决方案
第一个是li场之间的空间比2px宽得多。我该如何删除它?
另外一个是a字段只有文本高,尽管字段高度定义为50px。
我也从GitHub启用了normalize.css文件。
有什么建议吗?
HTML
<nav class="nav-box">
<div class="row">
<ul class="main-nav">
<li><a href="#">YES</a></li>
<li><a href="#">NO</a></li>
</ul>
</div>
</nav>
CSS
.row {
max-width: 1140px;
margin: 0 auto;
}
.nav-box {
position: fixed;
top: 0;
left: 0;
width: 100%;
box-shadow: 0 2px 2px #f2f2f2;
min-height: 65px;
}
.main-nav {
float: right;
margin-top: 7px;
}
.main-nav li {
list-style: none;
display: inline-block;
font-size: 100%;
}
.main-nav li a {
height: 50px;
background-color: #ee4723;
padding: 0 18px 0 18px;
font-size: 1.4rem;
color: #fff;
font-family:'Oswald', sans-serif;
border:solid #fff;
border-width: 0 1px 1px 0;
line-height: 54px;
}
这是fiddle。
答案 0 :(得分:6)
这是inline-block
元素的问题(两个这样的元素之间出现额外的间距)。解决此问题的一种方法是将父元素(在本例中为<ul>
)font-size
设为0,然后明确设置font-size
元素的<li>
。还有其他方法,如负边距,但我发现font-size: 0
方法是最方便的。
您可以在此处阅读其他方法https://css-tricks.com/fighting-the-space-between-inline-block-elements/
虽然您已将inline-block
属性提供给<li>
元素,但子<a>
元素仍然是内联的。 height
和width
等属性对内联元素没有影响。将display: inline-block
添加到<a>
元素以及所需效果
答案 1 :(得分:-1)
您可以使用负边距:
.main-nav li {
margin: 0 -2px;
}
.main-nav li a {
display: inline-block;
}