【发布时间】:2015-06-21 17:04:03
【问题描述】:
我在居中的 div 的两侧各有两张桌子。我希望左侧表格中的内容在右侧对齐,右侧表格中的内容在左侧对齐。我设法通过在左侧表格中创建一个额外的列并在第一个单元格上设置 width: 100% 并在第二个单元格上设置 white-space: nowrap 来做到这一点。
问题是,因为nowrap属性,当表格太小时内容溢出。我尝试设置word-wrap: break-word 是徒劳的。如何强制内容适合表格宽度?
到目前为止,这是我的代码:JSFIDDLE
#container {
height: 180px;
display: flex;
flex-flow: row;
align-items: stretch;
border: 1px dotted gray;
}
table {
flex: 1;
display: flex;
margin: 10px;
overflow-y: scroll;
overflow-x: hidden;
border: 1px dashed blue;
}
tbody {
display: block;
margin: auto 0;
}
td {
padding: 5px;
border: 1px solid red;
}
#left td:nth-child(1){
width: 100%;
}
#left td:nth-child(2) {
white-space: nowrap;
}
#list, #center {
width: 100px;
margin: 10px;
border: 1px dotted gray;
}
<div id="container">
<div id="list"></div>
<table id="left">
<tbody>
<tr>
<td></td>
<td>Lorem ipsum dolor sit amet</td>
</tr>
<tr>
<td></td>
<td>Valar morghulis</td>
</tr>
<tr>
<td></td>
<td>One fish, two fish, red fish, blue fish</td>
</tr>
</tbody>
</table>
<div id="center"></div>
<table id="right">
<tbody>
<tr><td>Lorem ipsum dolor sit amet, consectetur adipiscing elit</td></tr>
<tr><td>The quick brown fox jumps over the lazy dog</td></tr>
<tr><td>Would you kindly help me out</td></tr>
<tr><td>Supercalifragilisticexpialidocious</td></tr>
<tr><td>Alpha</td></tr>
<tr><td>Bravo</td></tr>
<tr><td>Charlie</td></tr>
<tr><td>Delta</td></tr>
<tr><td>Echo</td></tr>
<tr><td>Foxtrot</td></tr>
<tr><td>Golf</td></tr>
</tbody>
</table>
</div>
【问题讨论】:
-
这很令人困惑,因为您在 CSS 中将表格更改为 flexbox,我认为它不再像真正的表格了。
-
@Pangloss 我在 tbody 上设置了
display: block来解决这个问题。 See here -
我不知道你想要这样 - jsfiddle.net/6yrp73yy/2 是吗?
-
@Pangloss 左侧表格中的两列宽度相同。第一列不应该占用比需要更多的空间,刚好足以将第二列推到右侧。
-
不知道你要做什么,空的tds不能去掉吗? - jsfiddle.net/6yrp73yy/3 如果需要调整文本对齐方式,只需使用
text-align属性即可。
标签: html css flexbox word-wrap