我有一个包含文本的<div>元素,我想将这个<div>的内容垂直居中对齐。
这是我的<div>风格:
#盒子{高度:170px;宽度:270px;背景:#000;字体大小:48px;颜色:#FFF;文本对齐:居中;}<div id=“box”>Lorem ipsum悲哀坐</div>
实现这一目标的最佳方式是什么?
我有一个包含文本的<div>元素,我想将这个<div>的内容垂直居中对齐。
这是我的<div>风格:
#盒子{高度:170px;宽度:270px;背景:#000;字体大小:48px;颜色:#FFF;文本对齐:居中;}<div id=“box”>Lorem ipsum悲哀坐</div>
实现这一目标的最佳方式是什么?
当前回答
CSS3柔性接线盒有一个小小的魔力:
/*重要*/部分{显示:柔性;显示:-webkit flex;}第p节{/*关键部件*/边距:自动;}/*不重要,着色和UI*/部分{高度:200px;宽度:60%;边距:自动;边框半径:20px;边框:3px实心橙色;背景色:金色;}第p节{文本对齐:居中;font-family:Cantarell,Calibri;字体大小:15px;背景色:黄色;边框半径:20px;填充:15px;}<章节><p>我是一个居中的盒子<br/>Flexbox很棒!</p></section>
提示:如果要将文本居中,请将上面标记为“关键部件”的行替换为以下行之一:
仅垂直:边距:自动0;仅水平:边距:0自动;
正如我注意到的,这个技巧也适用于网格(即display:grid)。
其他回答
请尝试以下代码:
display: table-cell;
vertical-align: middle;
第二部分{高度:80%;宽度:100%;文本对齐:居中;显示:表格单元格;垂直对齐:中间;背景:#4CAF50;颜色:#fff;字体大小:50px;字体样式:斜体;}<div>Lorem Ipsum只是印刷和排版行业的虚拟文本。自15世纪以来,Lorem Ipsum一直是业界的标准虚拟文本</div>
一个非常简单和最强大的垂直对齐中心的解决方案:
.外部div{高度:200px;宽度:200px;文本对齐:居中;边框:1px实心#000;}.内部{位置:相对;顶部:50%;变换:translateY(-50%);颜色:红色;}<div class=“outer div”><span class=“inner”>无可用数据</span></div>
较新的浏览器现在支持CSS calc功能。如果您针对的是这些浏览器,您可能需要考虑这样做:
<div style=“位置:相对;宽度:400px;高度:400px,背景色:红色”><span style=“位置:绝对;行高:40px;高度:80px;文本对齐:居中;宽度:300px;溢出:隐藏;顶部:计算(50%-40px);左侧:计算(50%-150px);”>这里有两条线,即使父div改变大小,也会居中。</span></div>
关键是在绝对或相对定位的父除法中使用style=“top:calc(50%-[inerFixedHeightInPX/2]px);height:[inerFixed HeightInPX;”。
简单而通用的方法是表格方法):
[ctrv]{
display: table !important;
}
[ctrv] > *{ /* Addressing direct descendants */
display: table-cell;
vertical-align: middle;
// text-align: center; /* Optional */
}
在父标记上使用此属性(或等效的类)甚至可以使许多子标记对齐:
<parent ctrv> <ch1/> <ch2/> </parent>
这是个更好的主意。你也可以这样做
身体html格式{高度:100%;}.父级{空白:nowrap;高度:100%;文本对齐:居中;}.父项:在之后{显示:内联块;垂直对齐:中间;高度:100%;内容:“”;}.居中{显示:内联块;垂直对齐:中间;空白:正常;}<div class=“parent”><div class=“center”><p>Lorem ipsum dolor坐amet</p></div></div>