javascript - 列表元素显示顺序不正确

标签 javascript html css

... 动态插入时。我不会凭直觉想到这一点,并且很难相信这是预期的行为,但是当我通过使用 JavaScript 更改它们的显示来动态插入列表元素时,它们会乱序显示。这张照片总结了这一点。

这是预期还是错误?

enter image description here

匹配显示类型的代码:

    Backbone.on('user_sign_in', function () {
        $A.log('user_sign_in event')
        if (getComputedStyle(self.E.main_nav, null).display === 'block') {
            self.E.user_menu.style.display = "block";
        } else {
            self.E.user_menu.style.display = "inline-block";
        }
    });

导致此问题的一种解决方案:

enter image description here

最佳答案

这可能与放置 span 有关。在 ul 里面,这是无效的 HTML。

<ul>

Permitted content:

zero or more <li> elements, eventually mixed with <ol> and <ul> elements.

来源:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul


如果您需要创建列表项的子组,请嵌套您的列表。

<ul>
    <li>...</li>
    <li>...</li>
    <li>
        <ul>
            <li>...</li>
            <li>...</li>
        </ul>
    </li>
    <li>...</li>
</ul>

更新(基于评论和修改后的问题)

在您的导航屏幕截图中,底部边缘的间隙可能是由 display: inline-block 引起的.

这里有两种删除它的方法:

  • 更改displayblock
  • 添加vertical-align: bottom遵守规则

有关解释和其他方法,请参阅此帖子:

关于javascript - 列表元素显示顺序不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34535294/

相关文章:

javascript - Fabric.js - 如何从 Sprite 表制作动画

javascript - 从字符串创建的对象上的 jQuery find()

html 网站内容在 MAC 操作系统上不可见但在其他操作系统上工作正常?

css - 线性渐变 Firefox 支持

javascript - 来自嵌套对象的 Angularjs $scope.object

php - 如何在 php 中使用正则表达式 (regex) 从 json 获取内容

javascript - 如何使用按钮遍历 <ul> ?

html - 使滚动条 float 在页面上

html - 为什么使用属性固定元素会改变它的大小?

html - 为什么我不能在我的 HTML 中为这个 UL 元素设置宽度?