我如何用CSS垂直集中一个 <div> 在另一个 <div> 中?
<div id="outer">
<div id="inner">Foo foo</div>
</div>
我如何用CSS垂直集中一个 <div> 在另一个 <div> 中?
<div id="outer">
<div id="inner">Foo foo</div>
</div>
当前回答
更新 2022 中央元素 垂直
1、使用 flexbox 垂直集中
要垂直集中一个像(div)这样的元素,需要将显示:flex 和正当内容:中心添加到元素 css 类。
<div class="center">
<h1>I'm Horizontally center</h1>
</div>
.center{
display:flex;
justify-content:center;
}
二、使用边界的水平集中
下面的例子表明如何使用边界和宽度以水平为中心的元素。
.center{
width:50%;
margin:0 auto;
}
在上面的代码中,添加了宽度:50%和边缘:0自动,以便元素在左边和右边边之间平等分配可用的空间。
3、使用转型视角
下面的例子表明如何使用位置和转换属性以水平为中心的元素。
.center{
position: absolute;
left: 50%;
transform: translateX(-50%);
}
首先,添加位置:绝对,以便元素从正常文档流出。第二,我们添加左:50%,以便元素向前移动50%向x轴。第三,我们添加转换:translateX(-50%),以便元素向后返回50%并将其调整到中心。
其他回答
.outer - 完整的宽度.inner - 没有宽度设置(但可以指定最大宽度)
假设计算的元素的宽度为1000像素和300像素。
在.center-helper 中插入.center-helper 创建.center-helper 一个内线区块; 它变成相同的尺寸.center 使其宽 300 像素. 按.center-helper 50% 相对其父母; 此位置其左在 500 像素. 向外. 按.center-helper 50% 相对其父母; 此位置其左在 -150 像素. 向中帮助, 这意味着其左在 500 - 150 = 350 像素。
演示:
最简单的答案: 添加边界:自动; 到内部。
<div class="outer">
<div class="inner">
Foo foo
</div>
</div>
CSS 代码
.outer{
width: 100%;
height: 300px;
background: yellow;
}
.inner{
width: 30%;
height: 200px;
margin: auto;
background: red;
text-align: center
}
查看我的 CodePen 链接: http://codepen.io/feizel/pen/QdJJrK
此分類上一篇
#outer { 顯示: flex; align 項目: center; } <div id="outer"> <div id="inner"> Foo foo</div> </div>
這應該是你的孩子或 #內部 div 地平線. 但你實際上看不到任何變化. 因為我們的 #外部 div 沒有高度,或者說,它的高度是自動設定的,所以它有相同的高度的所有兒童元素。
#outer { 高度: 500px; 显示: flex; 匹配元素: 中心; 背景颜色: 蓝色; } #inner { 高度: 100px; 背景: 黄色; } <div id="outer"> <div id="inner"> Foo foo</div> </div>
使用此代码:
<div id="outer">
<div id="inner">Foo foo</div>
</div>
#inner {
width: 50%;
margin: 0 auto;
text-align: center;
}
我已经看到很多和很多答案,他们都是过时的,谷歌已经实施了一个解决这个常见的问题,它将对象的中心字面上在中间,无论发生什么,是的,它是响应性的。
.HTML
...
<div class="parent">
<form> ... </form>
<div> ... </div>
</div>
饰 CSS
.parent {
display: grid;
place-items: center;
}