【发布时间】:2013-04-22 13:18:54
【问题描述】:
我已经使用了这个positioning trick 来实现复杂的结果。我想我在 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/。
显示的 span 绝对位于相对容器内。由于表格使用固定布局,其单元格都是固定宽度,因此孩子应该能够使用百分比宽度。该表有 7 列,而跨度的宽度设置为 600%(即 6 列 * 100%)。它未能涵盖 webkit 浏览器中的所有 6 列。 Firefox 和 IE 完全呈现所有指定的列。
理想情况下,将 span 的宽度设置为 100% 应该在 1 列中呈现,200% 在 2 列中呈现,依此类推。
有人有任何想法或解决方法吗?
【问题讨论】:
-
看起来您正在创建一个 CSS 框架,所以我假设您将拥有
.cols-1、.cols-2....cols-10等样式是否正确?
标签: css google-chrome webkit width absolute