How to evenly distribute menu items with CSS when width and quantity is not known?(不知道宽度和数量时如何使用 CSS 均匀分布菜单项?)
问题描述
我已经阅读了很多关于使用 css 均匀分布元素的内容,但我发现的每个解决方案都要求您了解并定义要分布的元素的宽度和/或数量.
I've read a lot on evenly distributing elements using css but every solution i've found requires you to know and define the width and/or the number of elements being distributed.
我有一个固定宽度的容器 - 这里可以是任意数量的自动宽度的 li 元素,这些元素需要从左到右均匀分布在父元素中.
I have a container that is of a fixed width - within here could be any number of li elements of an automatic width which need to be distributed evenly across the parent element from left to right.
这是我的标记 - 除了可以有任意数量的标签,其中包含任意长度的文本.
Here is my markup - except there could be any number of tabs with any length text in them.
<ul class="tabs">
<li class="tab active" id="tab-1"><span class="tab-title">Tab 1</span></li>
<li class="tab " id="tab-2"><span class="tab-title">Tab 2</span></li>
<li class="tab " id="tab-3"><span class="tab-title">Tab 3</span></li>
<li class="tab " id="tab-4"><span class="tab-title">Tab 4</span></li>
</ul>
所以当元素的数量和宽度是动态的时,使用 css 进行均匀分布 - 可以做到吗?
So Even Distribution with css when the number of elements and width is dynamic - can it be done?
这似乎是一件显而易见的事情——该死的 CSS!
Seems like such an obvious thing to want to do - Damn CSS!
推荐答案
为此,您可以使用 CSS display:table-cell
属性.写这个:
For this, you can use the CSS display:table-cell
property. Write this:
.tabs {
display: table;
width: 300px;
border: 1px solid green;
}
.tabs li {
display: table-cell;
border: 1px solid red;
height: 40px;
}
检查这个JSFiddle.
这篇关于不知道宽度和数量时如何使用 CSS 均匀分布菜单项?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:不知道宽度和数量时如何使用 CSS 均匀分布菜单项
基础教程推荐
- Vue 3 – <过渡>渲染不能动画的非元素根节点 2022-01-01
- 直接将值设置为滑块 2022-01-01
- 如何使用JIT在顺风css中使用布局变体? 2022-01-01
- 用于 Twitter 小部件宽度的 HTML/CSS 2022-01-01
- 如何使用TypeScrip将固定承诺数组中的项设置为可选 2022-01-01
- 自定义 XMLHttpRequest.prototype.open 2022-01-01
- html表格如何通过更改悬停边框来突出显示列? 2022-01-01
- Electron 将 Node.js 和 Chromium 上下文结合起来意味着 2022-01-01
- 我可以在浏览器中与Babel一起使用ES模块,而不捆绑我的代码吗? 2022-01-01
- Chart.js 在线性图表上拖动点 2022-01-01