css定位表彼此相邻

时间:2011-07-01 13:53:02

标签: html css positioning

使用下面的HTML / CSS我有3个表。 我希望表1和表2在“同一行”上彼此相邻,表3位于下方,但它们之间有间隔。

但是,当我在前两张桌子上使用float:left / right时,表3总是直接在下面并且“触摸”tables1 / 2?

我已经尝试过margin / clear / float并且似乎无法排列:(

感激不尽的任何帮助。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Untitled Page</title>
    <style type="text/css">
        DIV.search
        {
            width: 80%;
            margin-right: auto;
            margin-left: auto;
        }

        DIV.search TABLE
        {
            border: 1px solid black;
            border-collapse: separate;
        }

        DIV.search TABLE.table1
        {
            float: left;
            width: 45%;
        }

        DIV.search TABLE.table2
        {
            float: right;
            width: 45%;
        }

        TABLE.table3
        {
            border: 1px solid black;
            margin-top: 50px;
            margin-right: auto;
            margin-left: auto;
            width: 80%;
        }
    </style>
</head>
<body>
    <div class="search">
        <table class="table1">
            <tr>
                <td>
                    TABLE 1
                </td>
            </tr>
        </table>
        <table class="table2">
            <tr>
                <td>
                    TABLE 2
                </td>
            </tr>
        </table>
    </div>
    <table class="table3">
        <tr>
            <td>
                TABLE 3
            </td>
        </tr>
    </table>
</body>
</html>

2 个答案:

答案 0 :(得分:3)

您应该应用其他一些风格:

DIV.search
{
    width: 80%;
    margin-right: auto;
    margin-left: auto;

    overflow: hidden; /* Fixing the problem in modern browsers */
    zoom: 1; /* Fixing in old IE by applying hasLayout */
    padding-bottom: 50px; /* I prefer padding here than margin in table3 */
}

TABLE.table3
{
    border: 1px solid black;
    /* margin-top: 50px; */
    margin-right: auto;
    margin-left: auto;
    width: 80%;
}

您可以尝试使用:之后(在下面的答案中),但旧的IE不支持它。

答案 1 :(得分:3)

我知道这有点晚了,但类似的解决方案可能只适用于css“display:inline-block”,但也有“display:inline-table”。为我工作:))

另外,对我有用的另一件事是使用"float:left"

请参阅here