代码之家  ›  专栏  ›  技术社区  ›  Tom

使用CSS将两列表格居中

  •  1
  • Tom  · 技术社区  · 13 年前

    我在一个网站上有以下页面:

    Screenshot

    我已经将这两列居中,在它们周围添加了两列,并定义了宽度:

        <table class="form">
        <tbody>
        <tr>
        <td style="width:20%;"></td>
        <th>User ID</th>
        <td><input type="text" name="userid" id="userid" class="medium" value="" /></td>
        <td style="width:20%;"></td>
        </tr>
        <tr>
        <td></td>
        <th>Password</th>
        <td><input type="password" name="password" id="password" class="medium" /></td>
        <td></td>
        </tr>
        <tr>
        <td></td>
        <th><label for="remember">Remember my user ID</label></th>
        <td><input type="checkbox" name="remember" id="remember" value="true" /></td>
        <td></td>
        </tr>
        </tbody>
        <tfoot>
        <tr>
        <td colspan="3"><a href="forgot/">Forgot your user ID or password?</a></td>
        <td><input type="submit" name="submit" id="submit" value="Login" /></td>
        </tr>
        </tfoot>
        </table>
    

    如果侧面没有两个宽度为20%的空柱,有什么方法可以做到这一点吗?

    3 回复  |  直到 8 年前
        1
  •  5
  •   DiMono    13 年前
    <style>
    table.form {
        width: 400px; /* or however wide you want it */
        margin: 0 auto;
    }
    </style>
    

    然后,如果愿意,您可以将提交按钮放在自己的元素中,使其跨越整个宽度,也可以将其保留在表中以保持一致的宽度。

        2
  •  5
  •   Heartcroft    13 年前

    尽管你可以找到一个解决方案来处理表,因为有人已经解决了这个问题,但我建议你不要为此使用它们,因为表的样式总是有问题的。您可以使用不同的html元素(如div)来完成此操作。下次再考虑一下:)

        3
  •  0
  •   boksa    13 年前

    定义要居中的元素的宽度(使用像素、em-s、百分比..),并设置 margin-left: auto margin-right: auto 会有所帮助