css - 无法在 css 中居中元素

标签 css html margin

我下载了一个模板并对其进行了编辑。现在我想将 one_third 元素居中,但是

margin-left: auto;
margin-right: auto;

没用。

This是jsfiddle中的模板。

谁能帮帮我?

最佳答案

要使 margin-left:auto;margin-right:auto; 正常工作,元素需要有一个宽度。所以尝试这样的事情:

margin-left: auto;
margin-right: auto;
width: 600px;

更新:

因为你似乎一直在改变你的例子,这里是对 displaymargins 工作原理的一个非常基本的理解:

要使任何框在另一个框内居中,您需要做两件事:

a) 给外框一个宽度(否则内框不知道以什么为中心

b) 内框需要有margin: 0 auto(这和margin-left: auto; margin-right: auto;是一样的)

此外,两个框都需要是 block 级元素(即具有display: block,而不是display: inline;)

所以放在一起看起来像这样:

HTML:

<section id="outer">
    <section id="inner"></section>
</section>

CSS:

#outer {
    width: 600px;
    display: block;
    border: 1px solid red;
}
#inner {
    margin-left: auto;
    margin-right: auto;
    width: 200px;
    height: 200px;
    border: 1px solid green;
}

这将为您提供一个 200 像素 x 200 像素的绿色框,其中心位于宽度为 600 像素的红色框内。

现在,如果您想在绿色框中并排放置两个元素,您可以在那里添加内联元素,即

<section id="outer">
    <section id="inner">
        <article>Hi</article>
        <article>Hi agian!</article>
    </section>
</section>



#outer {
    width: 600px;
    display: block;
    border: 1px solid red;
}
#inner {
    margin-left: auto;
    margin-right: auto;
    width: 200px;
    height: 200px;
    border: 1px solid green;
}
#inner article {
    display: inline;
}

关于css - 无法在 css 中居中元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14735761/

相关文章:

javascript - 在 jquery 中使用 array.push() 中的变量

html - 计算 margin-top 值以占据流体设计中的剩余高度

asp.net - AutoGenerateColumns ="true"时动态设置 gridview 列的宽度

php - 在页面加载时滚动到底部,但允许在顶部滚动

jquery - 如何使用 jQuery 从选择框插件中更改选择?

html - 服务器显示文本而不是 HTML

javascript - 用 javascript 字符串附加 html

html - CSS 页脚分隔

javascript - 使用 jQuery 拖动面板以显示 div。这太痛苦了

javascript - 从中心到底部关闭物化模态