html - 固定宽度的中心元素,两侧有自动扩展元素

标签 html css

我正在尝试使用 CSS3 重现下面的 HTML 表格结构。我尝试了各种 float 元素的方法,创建新的渲染上下文、自动边距、内联 block 等。

<table width="100%" border="0" cellpadding="0" cellspacing="0" style="margin-bottom: 16px;">
    <tr>
        <td>B1, auto-expands</td>
        <td width="175">A, fixed width</td>
        <td>B2, auto-expands</td>
    </tr>
</table>

最终结果应该是一个居中的中间元素宽度、一个固定的绝对宽度和两侧的两个元素应该扩展以假定剩余的可用宽度而不与中间元素重叠。

我已经决定使用 CSS 的 display: table|table-row|table-cell,但我想知道这里是否有人有更好的方法来实现相同的结果。

最佳答案

使用 flexbox 怎么样?

HTML:

  <ul>
    <li>left, auto-expands</li>
    <li class="fix">A, fixed width</li>
    <li>right, auto-expands</li>
  </ul>

CSS:

ul {
  display: -webkit-box;
  display:    -moz-box;
  display:         box;
  padding: 0;
}

li {
  -webkit-box-flex: 1;
     -moz-box-flex: 1;
          box-flex: 1;
  list-style: none;
  border: 1px solid red;
 }

.fix {
  text-align: center;
  width: 175px;
  -webkit-box-flex: 0;
     -moz-box-flex: 0;
          box-flex: 0;
}

关于html - 固定宽度的中心元素,两侧有自动扩展元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23278510/

相关文章:

javascript - JQuery 没有按应有的方式行事

jquery - Fancybox:从事件覆盖中链接到另一个内联 html div

html - Emmet - 我可以编写 html 以便 css 结构自动生成吗?

html - 如何将内联菜单列表移动到右侧的 Burger Bar(菜单栏)旁边

html - 无法使一个 div 的背景在其他两个 div 之上可见

html - slider 动画

Javascript 对话框自动高度无法正常工作

javascript - 延迟一个接一个地动画 sibling

javascript - 只有当它有标题时才显示 img?

html - Css: :nth-child: 我错过了什么?