如何使用CSS将两列居中?

8

我正在尝试将网站上的两列居中,但是出现了一些问题。每次更改的结果都是左侧位置(请参见图片)。我做错了什么?这是我的CSS:

body {
    background - image: url("../img/gray.png");
}

#header {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 100px;
    background: #cc0000;
    text - align: center;
}

#wrapper {
    margin: 100px;
    width: 1280px;
}

#leftcolumn {
    float: left;
    background - image: url("../img/gray.png");
    margin: 10px 0px 10px 0px;
    padding: 10px;
    height: 682px;
    width: 460px;
}

#rightcolumn {
    float: left;
    color: #333;
    border: 1px solid # ccc;
    background: #F2F2E6;
    margin: 10px 0px 10px 0px;
    padding: 10px;
    height: 500px;
    width: 439px;
    display: inline;
    position: relative;
}

谢谢


1
请提供一个jsfiddle或类似的工具。可能需要使用“auto”水平边距。 - Grant Thomas
2个回答

9

由于两栏的宽度小于包装器的宽度(即959px与1280px相比),您需要将这两个列放入一个固定宽度的容器中:

<div id="wrapper">
    <div id="column_container">
        <div id="column1"></div>
        <div id="column2"></div>
    </div>
</div>

然后执行类似以下的操作:
#column_container {
    width: 959px;
    margin: 0 auto;
}

它可以工作!但正如@mookamafoob所提到的,应该有margin: 100px auto。 - Fastkowy
#wrapper 元素已经有了一个边距。这应该是在此基础上使用的。请查看更新后的答案。 - BenM

3

没有实际看到,但类似这样的代码应该可以工作:

#wrapper { 
   width: 1280px;
   margin:100px auto ;
}

但是正如已经提到的,这只会将#wrapper居中。列并没有填满整个1280宽度,所以它们仍然左对齐在#wrapper中。

@Fastkowy 你可以通过使用 text-align:center; 来实现让 #wrapper 中的内容居中显示。 - NullPoiиteя

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接