绝对定位元素的孩子的垂直居中不起作用

时间:2013-05-17 09:52:47

标签: html5 css3 vertical-alignment

我需要帮助将我的黄色框垂直居中。

<html>
<head>
    <title></title>
</head>
<body style="border-collapse: collapse;">
    <div style="margin: 100px; width: 100px; height: 200px; background-color: gray; border: 1px solid gray;">
        <table style='background-color: white; width: 100%; height: 100%; border-collapse: collapse; vertical-align: top;'>
            <tr>
                <td style='height: 33.33%;'>
                    <div style="position: relative; width: 100%; height: 100%;">
                        <div style="position: absolute; top: -50%; height: 100%; display: table-cell; vertical-align: middle;">
                            <div style="border: 1px solid #ccc; width: 30px; height: 30px; background-color: yellow; ">A</div>
                        </div>
                        <div style="position: absolute; bottom: -50%; height: 100%; display: table-cell; vertical-align: middle;">
                            <div style="border: 1px solid #ccc; width: 30px; height: 30px; background-color: yellow; ">B</div>
                        </div>
                    </div>
                </td>
            </tr>
            <tr>
                <td style="height: 33.33%;">
                    <div style="position: relative; width: 100%; height: 100%;">
                        <div style="position: absolute; bottom: -50%; height: 100%; display: table-cell; vertical-align: middle;">
                            <div style="border: 1px solid #ccc; width: 30px; height: 30px; background-color: yellow; ">C</div>
                        </div>
                    </div>
                </td>
            </tr>
             <tr>
                <td style="height: 33.33%;">
                  <div style="position: relative; width: 100%; height: 100%;">

                        <div style="position: absolute; bottom: -50%; height: 100%; display: table-cell; vertical-align: middle;">
                            <div style="border: 1px solid #ccc; width: 30px; height: 30px; background-color: yellow; ">D</div>
                        </div>
                    </div>
                </td>
            </tr>
        </table>
    </div>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

通过为每个方框添加margin-top: 50%;来解决问题。