在<li>元素之间添加空格

Geo*_*ita 51 css

我有一个导航菜单,似乎我不能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/

  • 为了让它真正*在*元素之间而不在最后一个项目之下,你可以使用`li:not(:last-child)`。在此处查看更多信息:/sf/ask/180148111/ (7认同)

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)

演示:http://jsfiddle.net/UAXyd/


Veg*_*gar 6

由于您要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 paddingul-element中添加了一个小字符以防止崩溃。尝试删除li:last-child-rule,您将看到最后一项现在扩展了ul-element 的大小。


Alp*_*haX 5

这里的大多数答案都不正确,因为它们也会在最后一个添加底部空间<li>,因此它们不仅在中间添加空间<li>

最准确,最有效的解决方案如下:

li.menu-item:not(:last-child) { 
   margin-bottom: 3px;  
}
Run Code Online (Sandbox Code Playgroud)

说明: 通过使用:not(:last-child)样式将应用于除最后一个之外的所有项目(li.menu-item)。