html - 从父元素强制宽度

标签 html css

我有一个主菜单#navi。它的元素有不同的宽度。子菜单的宽度应与其父菜单相同。我制作了一个 JsBin 来演示它:http://jsbin.com/yusunohage/1

一个非常非常非常长的子菜单不应该比它的父级一个更长的菜单宽。

这是HTML:

  <ul id="navi">
    <li class="menu1">Menu </li>
    <li class="menu2">A longer menu 
      <ul class="children">
        <li>A very very very long submenu</li>
        <li>Submenu</li>
      </ul>
    </li>
    <li class="menu3">Menu item</li>
  </ul>

css

ol, ul {
  list-style: none;
  padding: 0;
}
#navi > li {
  padding: 0 10px;
}

li {
  float: left;
}
 ul.children{
   background: gold;


 }

#navi li ul li {
  float:none;
}

最佳答案

问题:

  • 在不固定 css 宽度参数的情况下让父元素限制子元素。

解决方案

  • 将子宽度设置为 0px 以测量原生父宽度。
  • 测量后使用父宽度设置子宽度。

jQuery:

$('.children li').css('width', 0);
$('.children li').css('width', $('.menu2').width());

此处的解决方案:http://jsfiddle.net/urahara/4m5vkkk2/2/

关于html - 从父元素强制宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29098854/

相关文章:

javascript - 如何在向下和向上滚动时触发 css 动画

javascript - 如何隐藏 Highslide Media Viewer 中的控件?

css - 所有字体都会在浏览器上占据相同的空间并具有相同的值吗?

css - 为 Angular Logo 创建无缝、可平铺的图像

javascript - 向下滚动到特殊的 div

html - 根据网格中元素的数量自动调整 css 中的文本大小

html - 创建具有对 Angular 线背景颜色的全宽标题

绑定(bind)到模型的 C# 单选按钮;检查状态样式 css

jquery - 单击后更改 Jquery 属性

javascript - 响应式导航栏(移动设备问题)