第三级菜单的宽度
Width of 3rd level of menu
我有一个下拉菜单。在HTML中我有:
<menu>
<li id="vysledky"><a href="#">Výsledky</a>
<ul class="menu2">
<li>2008
<ul class="menu3">
<li><a href="#">21.08. - MMSR SCg</a></li>
<li><a href="#">R SCOOechová Potôň SK</a></li>
<li><a href="#">SCOOTER Brezová /Visonta/ HU</a></li>
</ul>
</li>
<li>2010</li>
<li>2011<</li>
</ul>
</li>
<li id="forum"><a href="#" class="prvy"><span>Fórum</span></a></li>
</menu>
现在我想通过其中最长的文本自动设置每个第三级菜单(menu3)的宽度。所以在这个例子中,这个.menu3的宽度将是文本"SCOOTER Brezová/Visonta/HU"的宽度。
我不能使用css,因为menu2的宽度是稳定的,如果它比menu2长,则设置为menu2的宽(级联)所以我会使用javascript(jquery)。我有这个代码:
var i;
var podm;
$('menu>li').each(function() {
podm = 0;
if($(this).children('ul').size()) {
$(this).each(function() {
if($(this).children('ul').size()) {
$(this).each(function() {
podm++;
i = 60;
$(this).find('li a').each(function() {
var w = $(this).text();
$('#js').text(w);
w = $('#js').width();
if(w > i) {
i = w;
}
});
$(this).find("ul.menu3").css("width");
});
}
});
}
});
但是这个代码工作不好:-(.
Web:此处
您将menu3
ul的宽度设置为345px,这会导致较长的文本重叠。Javascript只是再次设置了这个宽度。
<ul class="menu3" style="width: 345px; display: block; opacity: 0.13">
尝试删除宽度规范和jQuery代码,并检查它是否有效。如果您需要级别3菜单的特定最小宽度,可以使用min-width
CSS属性。
编辑:好的,发现了。问题是.menu3
中的position: relative
属性。.menu3
的CSS应该如下所示:
.menu3 {
display: none;
position: absolute; /* This changed */
padding: 0;
margin: 0;
list-style: none;
left: 100px;
top: 0px; /* This changed */
background: #464646 url('3menu-po.png') repeat-y;
display: none;
white-space: nowrap;
}
注意position: absolute
。这会将子菜单从文档流中删除,因此它不受.menu2
中设置的宽度的影响。
相关文章:
- 如何创建具有第三级的垂直导航菜单
- Angular UI Router-在不了解第二级嵌套视图的情况下更改第三级嵌套视图
- AngularJS 视图在使用 angular-ui-router 的第三级嵌套路由上不更新
- 第四模式阻止导航栏下拉菜单正常工作
- jQuery第三级导航未按预期工作
- 如何制作三级下拉菜单
- IE8 JavaScript弹出菜单”;第3行的堆栈溢出”;
- jquery菜单ui.当第二级子菜单展开时,自动展开第三级子菜单
- 将第三级添加到CSS菜单
- 使用Angular ng repeat访问第三级JSON
- 循环访问第三级 JSON 对象
- HTML和JavaScript中的第三级引号转义
- 垂直切换菜单第三层父级保持打开.jQuery
- 在jquery中显示第三级子菜单
- 如何添加第三级到我的css菜单出现/消失在悬停
- 第三级的CSS / Javascript菜单
- 测试正则表达式的第三级斜杠
- 第三级菜单的宽度
- 第二/第三级的firebase查询
- 使用jquery显示第三级ul菜单