javascript - 如何根据其 li 调整水平菜单的大小?

标签 javascript jquery html css

我的代码中有 7 个菜单。有时它可能是 6 个,具体取决于用户类型。如果输入管理员,它将是 7 个。用户可能只有 6 个菜单。 如何动态调整菜单大小。 为此,我使用了代码

<div id="menu">
<ul>
<li><a href="#">home1</a></li>
<li><a href="#">home2</a></li>
<li><a href="#">home3</a></li>
<li><a href="#">home4</a></li>
<li><a href="#">home5</a></li>
<li><a href="#">home6</a></li>
<li><a href="#">home7</a></li>
</ul>
</div>

我如何使用 jquery 做到这一点?

编辑

$(document).ready(function() {
    if ( $('#menu ul li').length > 6 ) {
        $('#menu ul li').css('width','14.5%'); 
    }
    else
    {
        $('#menu ul li').css('width','16.6%'); 
    }
});
    }
});

最佳答案

假设期望的结果是将上述菜单呈现在一行中,而不管元素的确切数量 -

做到这一点的最佳方式是使用表格,因为它们具有针对此类事物的 native 行为(占据一长列并在其上均匀分布元素)。好处是我们可以使用

轻松伪造该行为
#menu { display: table; width: 100%; }
#menu ul { display: table-row; }
#menu ul li { display: table-cell; }

这将自动分发您的 <li> s 在一条长线上,使用容器宽度。

您还可以看到 jsFiddle上面的例子。

关于javascript - 如何根据其 li 调整水平菜单的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16674225/

相关文章:

javascript - 单击按钮时删除两个 cookie

jquery - 如何从 li 元素列表中添加和删除类?

jquery - 如何获得默认外观

javascript - 收集数据不适用于 Angular.js 网站

jquery - 如何获取来自 flatpickr 的日期输入?

javascript - CryptoJS 是否可以进行二进制散列?

javascript - jQuery:尝试将选项附加到选择标签

javascript - Angular js中的默认值从服务器中选择

javascript - Fullcalendar popover error : Bootstrap tooltips require Popper. js 虽然这已经包含在内

javascript - Jquery datepicker 被输入重叠