使用flex制作容器全宽

时间:2016-07-05 11:41:40

标签: html css flexbox

我正在尝试创建一个包含几列的类别下拉菜单,具体取决于<ul>的长度。

I've created a fiddle here

我想将每个子菜单项放在前一个子菜单项之下,直到达到子菜单的高度。如果是这样,那么所有内容都应放在新列中。

这样的事情:

Main category
 |
 subcategory1                         subcategory3
  |subsub1 for subcategroy1            |subsub1 for subcategroy3 
  |subsub2 for subcategroy1           |
 |                                    subcategory4
 subcategory2                          | etc...
  |subsub1 for subcategroy2 
  |subsub2 for subcategroy2 
 --------------------------------------------------------------------  
 // total height of the dropdown 
    is reached here

我正在使用flex-flow并且实际上效果很好。但是,我不能让我的下拉容器为全宽度背景颜色。

我的HTML看起来像这样:

    <div class="cats">
      <ul>

        <li class="item sub">
          <a title="Baby" href="http://ministry.webshopapp.com/baby/" class="itemLink">Baby</a>
          <div class="subnav">
            <ul class="flex-wrap">
              <li class="subitem title"><a title="Borstvoeding" href="#" class="title">something</a></li>
              <li class="subitem"><a title="ATTITUDE" href="#" class="subitemLink">ATTITUDE</a></li>
              <li class="subitem"><a title="Apple Park" href="#" class="subitemLink">Apple Park</a></li>
              <li class="subitem title"><a title="Borstvoeding" href="#" class="title">something</a></li>
              <li class="subitem"><a title="ATTITUDE" href="#" class="subitemLink">ATTITUDE</a></li>
            </ul>
          </div>
        </li>
</ul>
</div>

因为CSS使用这个:

.cats .subnav {
  background: #fff none repeat scroll 0 0;
  border: 1px solid #eee;
  padding: 30px;
  position: absolute;
  text-align: left;
  z-index: 99;
  display:none;
}
.cats .item.sub:hover .subnav {
  display: block;
}
.flex-wrap {
  background: #fff none repeat scroll 0 0;
  display: flex;
  flex-flow: column wrap;
  height: 200px;
}
.subnav .subitem {
  background: #fff none repeat scroll 0 0;
  line-height: 36px;
}

那我怎样才能让.subnav填满背景?

1 个答案:

答案 0 :(得分:0)

请参阅以下css代码:

leftright添加到.cats .subnav

.cats .subnav {
    right: 0;
    left: 0; 
}