我有一个导航菜单,似乎我不能margin: 3px;在<li>元素之间添加一个空格().
您可以在此jsfiddle或更低版本上查看HTML和CSS代码.
你会看到我已经添加了一个border-bottom: 2px solid #fff;来#access li模拟元素之间的空间,但这不会起作用,因为在导航菜单下我会有一堆不同的颜色.如果我添加margin-button: 2px它不起作用.
这是HTML:
<nav id="access" role="navigation">
<div class="menu-header-menu-container">
<ul id="menu-header-menu" class="menu">
<li id="menu-item-41" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-41">
<a href="http://localhost:8888/fullstream/?page_id=5">About Us</a>
</li>
<li id="menu-item-35" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-35">
<a href="http://localhost:8888/fullstream/?page_id=7">Services</a>
</li>
<li id="menu-item-34" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-34">
<a href="http://localhost:8888/fullstream/?page_id=9">Environmental Surface Cleaning</a>
</li>
<li id="menu-item-33" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-33">
<a href="http://localhost:8888/fullstream/?page_id=11">Regulations</a>
</li>
<li id="menu-item-32" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-32">
<a href="http://localhost:8888/fullstream/?page_id=13">Contact Us</a>
</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
这是CSS:
#access {
background: #0f84e8; /* Show a solid color for older browsers */
display: block;
margin: 0 auto 6px 55px;
position: absolute;
top: 100px;
z-index: 9999;
}
#access ul {
font-size: 13px;
list-style: none;
margin: 0 0 0 -0.8125em;
padding-left: 0;
}
#access li {
position: relative;
padding-left: 11px;
}
#access a {
border-bottom: 2px solid #fff;
color: #eee;
display: block;
line-height: 3.333em;
padding: 0 10px 0 20px;
text-decoration: none;
}
#access li:hover > a,
#access ul ul :hover > a,
#access a:focus {
background: #efefef;
}
#access li:hover > a,
#access a:focus {
background: #f9f9f9; /* Show a solid color for older browsers */
background: -moz-linear-gradient(#f9f9f9, #e5e5e5);
background: -o-linear-gradient(#f9f9f9, #e5e5e5);
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#f9f9f9), to(#e5e5e5)); /* Older webkit syntax */
background: -webkit-linear-gradient(#f9f9f9, #e5e5e5);
color: #373737;
}
#access ul li:hover > ul {
display: block;
}
Run Code Online (Sandbox Code Playgroud)
Mat*_*zke 84
加:
margin: 0 0 3px 0;
Run Code Online (Sandbox Code Playgroud)
你的#access li行动
background: #0f84e8; /* Show a solid color for older browsers */
Run Code Online (Sandbox Code Playgroud)
到了#access a并取出了border-bottom.然后它会工作
这里: http ://jsfiddle.net/bpmKW/4/
Jos*_*ren 26
它有一个强大的功能,flex允许指定每个子项之间的空间,而不必通过 引用“最后一个子项” gap。我发现自己比margin现在更频繁地使用:
ul {
display: flex;
flex-direction: column;
gap: 10px;
}
Run Code Online (Sandbox Code Playgroud)
li {
background: red;
}
ul {
background: silver;
display: flex;
flex-direction: column;
gap: 10px;
}Run Code Online (Sandbox Code Playgroud)
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
</ul>Run Code Online (Sandbox Code Playgroud)
Rob*_*obB 24
您可以使用该margin属性:
li.menu-item {
margin:0 0 10px 0;
}
Run Code Online (Sandbox Code Playgroud)
由于您要space between,我会在最后一个项目上添加覆盖,以消除那里的多余利润:
li {
background: red;
margin-bottom: 40px;
}
li:last-child {
margin-bottom: 0px;
}
ul {
background: silver;
padding: 1px;
padding-left: 40px;
}Run Code Online (Sandbox Code Playgroud)
<ul>
<li>Item 1</li>
<li>Item 1</li>
<li>Item 1</li>
<li>Item 1</li>
<li>Item 1</li>
</ul>Run Code Online (Sandbox Code Playgroud)
由于余量崩溃和填充的原因,它的结果可能并非始终可见。在我所包含的示例代码片段中,我1px padding在ul-element中添加了一个小字符以防止崩溃。尝试删除li:last-child-rule,您将看到最后一项现在扩展了ul-element 的大小。
这里的大多数答案都不正确,因为它们也会在最后一个添加底部空间<li>,因此它们不仅在中间添加空间<li>!
在最准确,最有效的解决方案如下:
li.menu-item:not(:last-child) {
margin-bottom: 3px;
}
Run Code Online (Sandbox Code Playgroud)
说明:
通过使用:not(:last-child)样式将应用于除最后一个之外的所有项目(li.menu-item)。