目前,我想到的唯一解决方案是你必须用两个额外div的 s 包裹桌子。
这是小提琴
正如我们所说,我正在尝试改进解决方案以摆脱 div。
目前,我使用一个 div 作为wrapper宽度设置为 100% 的 div,然后在其中有另一个 div ( innerWrapper) 绝对定位并扩展到wrapper的尺寸。为了设置 div 的高度,我使用了一个简单的技巧 - 将一个伪:after元素添加到设置为 133%的 divwrapper中。padding-bottom填充百分比值是从父级继承的width(是的!)。如果有人问 - 我们不能省略innerWrapperdiv 并将其样式直接设置为table因为top, right, bottom, left方法不适用于它(两者都width设置height为100%)。div 是block元素,表有display: table.
整个代码如下所示:
HTML:
<div id="wrapper">
<div id="innerWrapper">
<table></table>
</div>
</div>
CSS:
#wrapper {
width:100%;
position: relative;
}
#wrapper:after {
content: "";
display: block;
padding-bottom: 133%;
}
#innerWrapper {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
table {
width: 100%;
height: 100%;
}