【发布时间】:2017-06-24 03:34:39
【问题描述】:
我有一种情况,我需要指定孩子的宽度是父级的内部宽度的 100%,而不是外部宽度,这意味着父级水平滚动。
情况类似于这样:
http://codepen.io/anon/pen/ygqPZG?editors=1100
HTML
<div id='parent'>
<table id='child1'>
<colgroup>
<col width='400px'></col>
</colgroup>
<tbody>
<tr>
<td>Child1withareallyreallylongtitle</td>
</tr>
</tbody>
</table>
<div id='child2'>
<p>Child 2</p>
</div>
</div>
CSS
#parent {
margin: 16px;
border: 1px solid black;
box-sizing: border-box;
overflow-x: auto;
}
#child1 {
width: 100%;
border: 1px solid red;
}
#child2 {
width: 100%;
border: 1px solid blue;
}
当您将屏幕缩小到足够小以使表格 (chld 1) 停止缩小并迫使父级溢出并因此显示滚动条时,第二个子级仍保留父级的 OUTER 宽度的 100%,我想它是父级内部宽度的 100%,因此它与第一个子级(表)的宽度相同。
我想尽可能保持纯 CSS 的答案,只要 JavaScript 不依赖窗口调整大小事件就可以了,因为 #parent 可能由于其他原因而缩小(水平兄弟增长)。
【问题讨论】:
-
有什么理由不能使用
display:table、display:table-row和display:table-cell而不是将child1分隔到一个表中,将child2分隔到一个div 中?
标签: javascript jquery html css