html - 如何水平居中元素?

如何将 <div> 水平居中在另一个 <div>使用 CSS?

<div id="outer">
  <div id="inner">Foo foo</div>
</div>

最佳答案

您可以将此 CSS 应用于内部 <div> :

#inner {
  width: 50%;
  margin: 0 auto;
}

当然,您不必设置 width50% .任何小于包含 <div> 的宽度将工作。 margin: 0 auto是什么实际居中。

如果您的目标是 Internet Explorer 8 (以及以后),最好改用这个:

#inner {
  display: table;
  margin: 0 auto;
}

它将使内部元素水平居中,并且无需设置特定的width即可工作.

这里的工作示例:

#inner {
  display: table;
  margin: 0 auto;
  border: 1px solid black;
}

#outer {
  border: 1px solid red;
  width:100%
}
<div id="outer">
  <div id="inner">Foo foo</div>
</div>


编辑

flexbox水平和垂直居中的 div 样式非常容易。

#inner {  
  border: 0.05em solid black;
}

#outer {
  border: 0.05em solid red;
  width:100%;
  display: flex;
  justify-content: center;
}
<div id="outer">
  <div id="inner">Foo foo</div>
</div>

要使 div 垂直居中对齐,请使用属性 align-items: center .

https://stackoverflow.com/questions/114543/

相关文章:

html - 如何在 Web 表单字段/输入标签上禁用浏览器自动完成功能?

javascript - 我应该为 JavaScript 链接使用哪个 "href"值, "#"还是

javascript - 如何使用 JavaScript 更改元素的类?

html - 如何禁用 textarea 的 resizable 属性?

javascript - 如何在 HTML5 localStorage/sessionStorage

javascript - 我如何知道通过 jQuery 选择了哪个单选按钮?

html - 如何使用 CSS 垂直居中文本?

html - 如何使用 CSS 为文本或图像赋予透明背景?

css - 使用 CSS 更改 HTML5 输入的占位符颜色

html - 在 CSS 中设置 cellpadding 和 cellspacing?