html – 缩小到合适的菜单项 – 第一项增长

前端之家收集整理的这篇文章主要介绍了html – 缩小到合适的菜单项 – 第一项增长前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一个预先指定宽度的菜单

我希望每个菜单项缩小到其内容,除了一个,然后填充菜单中的剩余空间。

喜欢这个:

Fill | item | item | item

到目前为止,我最接近实现这一效果的是在每个菜单项的css代码中使用display:table-cell。但是问题是,除非我定义一个项目的宽度,它们都会在表中占用相同的宽度。

Fill      |      item      |      item      |      item      |      item

有什么办法让物品空间收缩以适应物品,并且填充物品只是填满其余的div?

解决方法

为什么不使用浮点?只是颠倒你的菜单项的顺序。
#menubar {
  background-color: lime;
  width: 100%;
}
.menuitem {
  float: right;
  padding-right: 10px;
  padding-left: 10px;
}

/* Clear float */
#menubar:after {
  content: ' ';
  display: block;
  clear: right;
}
<div id="menubar">
  <div class="menuitem">item</div>
  <div class="menuitem">item</div>
  <div class="menuitem">item</div>
  <div class="menuitem">item</div>
  <div class="menuitem">fill</div>
</div>

使用显示的替代方式:填充宽度的内联块:

#menubar {
  width: 100%;
  text-align: right;
}
.menuitem {
  display: inline-block;
  background-color: aqua;
}
.filled {
  width: 100%;
  background-color: gray;
}
<div id="menubar">
  <div class="menuitem filled">fill
    <div class="menuitem">item</div>
    <div class="menuitem">item</div>
    <div class="menuitem">item</div>
  </div>
</div>

第二种方法唯一的失败是菜单项实际上包含在第一个菜单项/填充中。它是填充宽度的诀窍:100%…如果它们是下拉菜单,你可能想要做一些z-index工作和崩溃边框/设置padding / etc …

猜你在找的HTML相关文章