html - 通过 flex box 严格平均动态分配宽度

标签 html css flexbox

如何使用 flex box 强制宽度均匀分布而不考虑其内部内容的大小?

我有一个 ul 元素,它包含三个必须等宽的 li 元素。正如您在演示中所见,使用 flex: 1 0 0 无法正常工作。第三个 li 元素占据了所有空间。

更新 该列表是动态创建的,使用 Javascript 计算百分比不是我想要的。

ul {
  list-style: none;
  display: flex;
  flex-direction: row;
  width: 100%;
  background-color: #F00;
  padding: 2px;
  margin: 0;
  box-sizing: border-box;
}

li {
  background-color: #eee;
  border: 1px solid #000;
  flex: 1 0 0;
}
<ul>
<li>AAAAAAA</li>
<li>BBB</li>
<li>CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC</li>
</ul>

最佳答案

Flexbox 做不到,但还有另一种选择。

CSS 表格

当然,如果文本太长会溢出,我们可以用word-break:break-all来解决。

ul {
  list-style: none;
  display: table;
  width: 100%;
  background-color: #F00;
  padding: 2px;
  margin: 0;
  margin-bottom: 10px;
  box-sizing: border-box;
  table-layout: fixed;
}
li {
  display: table-cell;
  background-color: #eee;
  border: 1px solid #000;
  word-break: break-all;
}
<ul>
  <li>AAAAAAA</li>
  <li>BBB</li>
  <li>CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC</li>
</ul>


<ul>
  <li>AAAAAAA</li>
  <li>BBB</li>
  <li>CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC</li>
  <li>DDDDDDDDDDDDDDDDDD</li>
</ul>

关于html - 通过 flex box 严格平均动态分配宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39168148/

相关文章:

javascript - 使用 JavaScript 创建动态 Bootstrap 切换

javascript - javascript 中的正则表达式 - 正则表达式中的变量

javascript - 当文本悬停在元素上时发生更改时,抓取 onclick 事件的文本

html - 输入元素的宽度行为很神秘

html - 如何修复 HTML 表格中的第一列以允许水平滚动?

python3提取txt文件中两个字符串之间的字符串

javascript - 在加载外部 css、js 之前,如何停止渲染 HTML

css - z-index iframe InternetExplorer 与 Chrome、Fox、

html - 仅CSS的砌体布局

html - 如何在 Angular 组件中使用嵌套的 flexbox?