【问题标题】:CSS: Chrome browser doesn't leave a space between menu elementsCSS:Chrome 浏览器不会在菜单元素之间留下空格
【发布时间】:2014-12-17 05:28:20
【问题描述】:

编辑:

我自己找到了解决方案。我的 a 元素中的宽度和高度应该放在 li 元素中。所以这些:

    width: 7vw;
    height: 7vw;

进入里:)


我已经有一段时间了,我就是想不通。 Internet Explorer 和 Firefox 似乎可以正确显示我的菜单,但 Chrome 不能。

这是html:

<div id="navigationmenu">
<ul>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul> 
</div>

这是 CSS。

我那里有很多东西,但我都发布了。也许有什么干扰??

#navigationmenu a {
    display: block;
    text-transform: uppercase;
    text-decoration: none;
    color: #a2a2a2;
    font-size: 1.1vw;
    line-height: 7vw;
    text-align: center;
    width: 7vw;
    height: 7vw;
    border: 1px #a2a2a2 solid;
    background: #ffffff;
    -moz-border-radius: 50%;
    border-radius: 50%;
    cursor: default;
    margin-top: 0;
    margin-bottom: 0;
    margin-left: 2.1%;
    margin-right: 2.1%;
    transition-duration: 400ms;
    transition-property: box-shadow;
    transition-timing-function: ease;
    -webkit-transition-duration: 400ms;
    -webkit-transition-property: box-shadow;
    -webkit-transition-timing-function: ease;
    -o-transition-duration:400ms;
    -o-transition-property: box-shadow;
    -o-transition-timing-function: ease;
}
#navigationmenu a:hover{
    background:#ffffff;
    border: 1px #a2a2a2 solid;
    -webkit-box-shadow: 0px 0px 5px 1px rgba(0,0,0,0.75);
    -moz-box-shadow: 0px 0px 5px 1px rgba(0,0,0,0.75);
    box-shadow: 0px 0px 5px 1px rgba(0,0,0,0.75);
}
#navigationmenu li {
    display: inline;
    float: left;
    margin: 0;
    padding: 0;
}

我已经尝试将 a 元素的边距和填充设置为 0,并将左右边距应用到 li 元素,但这使得 li 元素消失了在 Firefox 中彼此相距太远(在 Chrome 中它们稍微好一点,但不好)。

【问题讨论】:

    标签: css menu html-lists margin padding


    【解决方案1】:

    使用以下css在li元素之间添加边距ul

    此处的示例:

    http://jsbin.com/piyilafupe/1/

    #navigationmenu ul li {
        margin-right: 50px; /* ADD YOU DESIRED DISTANCE HERE */
    }
    

    注意:如果出于任何原因您需要删除最右边元素的边距,您可以添加它

    #navigationmenu ul li:last-child  {
            margin-right: none;
    }
    

    【讨论】:

    • 在 Firefox 中它们彼此相距太远,而在 Chrome 中它们仍然相互堆叠......
    • 它们之间的距离应该是多少像素?您可以简单地尝试自己更改值 margin-right
    • 我已经在 Chrome 和 Firefox 上测试了代码并且工作正常,只需调整 margin-right 或者发布一个包含所有 css 代码的 jsbin 以便我们仔细检查它:-) 谢谢
    • 也许我的 Chrome 有问题,哈哈。无论如何,我找到了另一个解决方案! -webkit-margin-start 和 -webkit-margin-end。
    【解决方案2】:

    将边距应用于&lt;li&gt; 元素而不是&lt;a&gt;

    #navigationmenu a 中可以去掉下面的代码

    margin-left: 2.1%;
    margin-right: 2.1%;
    

    改为这样做

    #navigationmenu li {
        display: inline;
        float: left;
        margin-left: 2px;
        margin-right: 2px;
        padding: 0;
    }
    

    【讨论】:

    • 是的,我试过了,它在 FF 中看起来太宽了,在 Chrome 中它们仍然相互堆叠,但没有那么多。
    • 我认为你是在正确的轨道上。我在代码中搞砸了一点,发现当我从 a 元素中取出 7vw 的高度和宽度并将其放入 li 元素中时,它会解决一些布局问题。
    猜你喜欢
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 1970-01-01
    • 2014-05-18
    • 2015-07-02
    • 1970-01-01
    • 2018-11-27
    相关资源
    最近更新 更多