我有以下html和css代码,其中我希望<a>
标记使用css包裹<li>
标记。
这里是jsfiddle
HTML
<section class="row header">
<ul class="nav">
<li class="navfirst"><a href="#">Contact</a></li>
<li><a href="#">Home</a></li>
<li><a href="#">Resume</a></li>
<li><a href="#">Interests</a></li>
<li><a href="#">Work</a></li>
<li class="navlast"><a href="#">Comments</a></li>
</ul>
</section>
CSS
.header .nav {
margin: 0;
padding: 0; }
.header .nav li {
list-style-type: none;
display: inline-block;
padding: 0.5% 1%;
border: 1px solid green; }
.header .nav li.navfirst {
margin-right: 4%; }
.header .nav li.navlast {
margin-left: 4%; }
.header .nav li a {
display: block;
text-decoration: none;
border: 1px solid red;
width: 100%;
height: 100%; }
这是scss。上面的css是从scss文件转换而来的
.nav {
margin: 0;
padding: 0;
li {
list-style-type: none;
display: inline-block;
padding: 0.5% 1%;
border: 1px solid green;
&.navfirst {
margin-right: 4%;
}
&.navlast {
margin-left: 4%;
}
a {
display: block;
text-decoration: none;
border: 1px solid red;
width: 100%;
height: 100%;
}
}
}
答案 0 :(得分:1)
从li
标记中删除填充:
...
display: inline-block;
padding: 0.5% 1%; <-- padding: 0
border: 1px solid green;
...
将填充添加到a
:
.header .nav li a {
display: block;
text-decoration: none;
border: 1px solid red;
padding: 5px;
}
从上面的规则中删除width: 100%
和height: 100%
,否则填充会弄乱布局......
在上面的规则中,百分比单位将无法工作,因为它没有基础宽度/高度来应用%。您有3个选项:1)将填充保留在LI中,2)将填充放在a
中,其中包含%(em
以外的单位),或3)使用媒体查询为每个屏幕尺寸设置不同的填充。