【问题标题】:Margins between li's out of nowhereli 之间的空白无处不在
【发布时间】:2018-12-12 01:54:59
【问题描述】:

所以,我正在创建一个菜单,我注意到 li 之间有一些无法解释的边距。在开发者的控制台中也看不到它。这是代码: HTML

<div class="navbar">
                <ul class="navbar_ul">
                    <li class="navbar_list_item navbar_main">Point Blank</li>
                    <li class="navbar_list_item navbar_main">Tanki Online</li>
                    <li class="navbar_list_item navbar_main">Dota 2</li>
                    <li class="navbar_list_item navbar_main">Warface</li>
                    <li class="navbar_list_item navbar_minor">Топ аккаунтов</li>
                    <li class="navbar_list_item navbar_minor navbar_last_item">О нас</li>
                </ul>
            </div>

还有,这里是 CSS

.navbar_list_item {
        display: inline-block;
        }
.navbar, .navbar ul, .navbar li {
        text-align: center;
        padding: 0;
        }

    .navbar_ul {
        width: 100%;
        }

    .navbar_list_item {
        color: white;
        width: 16.3%;
        margin: 0;
        height: 40px;
        }

    .navbar_main {
        background-color: #3978C2;
        }

    .navbar_minor {
        background-color: #2E3A86;
        }

菜单截图如下: 谢谢!

【问题讨论】:

  • 我的意思是 li 之间的那些空白,如上图所示
  • 这似乎不是所有的CSS,请做一个可重现的例子。
  • 好的,我看到了,谢谢,我会看看我能做什么
  • 不,没有任何变化
  • 那不是完整的代码..

标签: html css margin padding


【解决方案1】:

这看起来像是&lt;/li&gt;&lt;li&gt; 标记之间的空格/换行符。尝试这样编写标记:

<li>content</li><li>content</li><
li>another content</li><li>yet another one</li>

【讨论】:

  • 虽然这个答案绝对是正确的,但我个人不喜欢这种修复内联块元素的方法。很多人都在使用它,但我发现它难以阅读、难以维护,而且它有点绕过了 HTML/CSS 在过去几代人中努力工作的职责分离。再说一遍,这没有错,只是不是我最喜欢的。
  • 我同意,但似乎没有优雅的解决方案。负边距也是一种技巧。
【解决方案2】:

display: inline-block 的工作方式存在“副作用”(实际上是令人困惑但预期的行为)。内联块元素的呈现方式与内联元素相同,即假定它们应该是一行文本的一部分。此外,HTML 将所有空格(空格、制表符、换行符)压缩到一个空格中,每个 LI 之间的换行符变成了一个空格符,并且元素之间有一个小的可见间隙。强>

有几种方法可以解决这个问题。你可能

  • 使用负边距使元素重新对齐
  • 使用零大小的字体
  • 使用display: blockfloat: left
  • 使用display: table
  • 删除代码中 LI 之间的所有空白字符

还有其他方法。每个都有自己的优点和缺点。

可以在这里找到关于不同解决方案的精彩文章:https://css-tricks.com/fighting-the-space-between-inline-block-elements/

【讨论】:

    【解决方案3】:

    li 元素之间没有边距。每个 li 之间的空间与您的相关

       width: 16.3%;
    

    所以你有 6 个 li 元素按比例间隔..

    这意味着每个元素的宽度都是固定的..

    【讨论】:

    • 在您发布的菜单图像中,我看不到 li 之间的空格,而是 6 个比例宽度为 16.3% 的菜单语音。没有空格..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 2021-02-26
    相关资源
    最近更新 更多