我已经使用了这个定位技巧来实现复杂的结果。我想我在 webkit 浏览器中遇到了一个我很难理解的错误。
这是简单的标记:
<table>
<tbody>
<tr>
<td>
<div>
<span class="cols-6"></span>
</div></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
和 CSS:
*, *:after, *:before {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
table {
table-layout: fixed;
border-collapse: collapse;
width: 100%;
}
tr {
border: 1px solid #ddd;
}
td {
vertical-align: top;
padding: 0;
height: 100px;
border: solid #ddd;
border-width: 1px 0 0 0;
box-shadow: -1px 0px #ddd;
}
td div {
position: relative;
}
td div span.cols-6 {
position: absolute;
width: 600%;
height: 20px;
background: #ccc;
}
要查看此操作,请在 chrome 中打开此http://jsfiddle.net/JFxqt/14/ 。
显示的跨度绝对位于相对容器内。由于表格使用固定布局,其单元格都是固定宽度,因此孩子应该能够使用百分比宽度。该表有 7 列,而跨度的宽度设置为 600%(即 6 列 * 100%)。它未能涵盖 webkit 浏览器中的所有 6 列。Firefox 和 IE 完全呈现所有指定的列。
理想情况下,将跨度的宽度设置为 100% 应该跨 1 列呈现,跨 2 列呈现 200% 等等。
有人有任何想法或解决方法吗?