我已经使用了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/

显示的跨度绝对位于相对容器内。由于表格使用固定的布局,因此其单元格的宽度都是固定的,因此孩子应该能够使用百分比宽度。该表格有7列,而跨度的宽度设置为600%(即6列* 100%)。它无法涵盖Webkit浏览器中的所有6列。 Firefox和IE完全在所有指定的列中呈现。

理想情况下,将跨度的宽度设置为100%应该在1列上渲染,在2列上渲染200%,依此类推。

任何人有任何想法或解决方法吗?

最佳答案

试试这个:http://jsfiddle.net/JFxqt/3/

我在您的CSS中对此进行了更改:

body{margin:0px}
td div {

}
span.cols-6 {
    position: absolute;
    width: 85.6%;
    height: 20px;
    background: #ccc;
    z-index:10;
    top:0;
    left:0;
}

关于css - Webkit中相对定位的容器内的绝对定位元素的宽度为100%,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16148155/

10-11 14:09