我正在尝试创建一个CSS fluid tab menu
带有可变数量的选项卡的 , (类似于在 Windows 中可以看到的,其中选项卡根据包含的标题的长度展开,见下文)。
这是一个示例,我已经设置(我需要保留元素结构):
<div class="test">
<div class="element">
<h3>
<span class="dummy-a">
<span class="dummy-ui-btn-inner">
<span class="dummy-ui-btn-text">very long text is this</span>
</span>
</span>
</h3>
</div>
<div class="element">
<h3>
<span class="dummy-a">
<span class="dummy-ui-btn-inner">
<span class="dummy-ui-btn-text">Two</span>
</span>
</span>
</h3>
</div>
<div class="element">
<h3>
<span class="dummy-a">
<span class="dummy-ui-btn-inner">
<span class="dummy-ui-btn-text">Three</span>
</span>
</span>
</h3>
</div>
<div class="element">
<h3>
<span class="dummy-a">
<span class="dummy-ui-btn-inner">
<span class="dummy-ui-btn-text">Four</span>
</span>
</span>
</h3>
</div>
<div class="element">
<h3>
<span class="dummy-a">
<span class="dummy-ui-btn-inner">
<span class="dummy-ui-btn-text">Five</span>
</span>
</span>
</h3>
</div>
</div>
和 CSS:
.test { width: 100%; display: table; }
.test .element { border: 1px solid red; float: left; min-width: 19%; }
.test .element.prelast { border: 1px solid green; }
.test .element.last { float: none !important; overflow: hidden; }
.test .element h3 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
这将创建以下内容:
当我缩小屏幕时,菜单会分成多行,最后一个元素填充剩余宽度:
我的问题是扩展“第一行”中的元素以覆盖菜单中断后的可用空间。简单的设置min-width: 19%
是问题,但我什么也做不了。
问题:
如何仅使用 CSS 使“行”中的元素(它不是真正的行,如果它分成多行)占用所有可用空间?
编辑:
这是一个示例页面,显示了我的意思。缩小浏览器窗口并查看元素的行为方式。我正在寻找一种方法使第一行在分成多行后扩展全宽。
更新:
我已经更新了示例页面。见这里。我在扩展元素时没有任何问题,而它们都“排成一行”。当行“分成”多行时,问题就开始了。我想知道是否可以通过使元素在整个屏幕上展开来填补右上角的空白。
这是两个额外的屏幕截图。
所以需要关闭元素“四”旁边的间隙
现在需要关闭元素“三”旁边的间隙。您可以看到在元素“四”上设置某些内容不起作用,因为它并不总是位于右上角。相反,它应该是我在所有元素上设置的 CSS 规则(我猜)。
另外,如果这可以使用 Javascript/Jquery 轻松完成,我还会听取意见吗?
感谢您的帮助!