繁体   English   中英

包含具有动态宽度的列表项的无序列表 - 水平菜单

[英]Unordered list containing list items with dynamic widths - horizontal menu

我需要帮助尝试将我的水平菜单与其父<div>的宽度<div>

问题在于<ul>中的列表项是动态的,因此根据您是否已登录、是否已加入页面以及您是否是管理员,有多种组合会有所不同。

我已将<ul>设置为父<div> 100% 这工作正常。 目前我的<li>都是左对齐的,你可以在http://www.daddyleagues.com/OzeSportsCFM上看到这个(这是有主教练数据等的部分)

问题是我只是通过 CMS 使用 CSS 覆盖和 JS(添加类等)来编辑它。 列表确定后,我无法调整宽度。

所以我想知道是否有任何神奇的方法可以让<li>计算自己的%

我想我可能只需要创建一些 JavaScript 函数,它会根据出现的项目以%添加宽度。 这是最后的手段,希望有人有更简单的方法。

您可以使用 css3 flexbox

ul{
 display:flex;
 justify-content: space-around;
}

阅读更多关于 flexbox @ css-tricks

Flexbox 浏览器支持@caniuse

获取您的列表父元素(ul),为了答案,我们将其称为“菜单”。

var menu = document.getElementById('menu'),
    width = 100 / menu.length;

Array.prototype.slice.call(menu.children).forEach(function(li) {
  li.setAttribute('style', 'width:' + width + '%;');
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM