html - 在 CSS 中的 div 中水平和垂直居中文本
问题描述
我div
在 HTML 中创建了一个:
.Div {
border: 1px solid red;
margin: 1px;
text-align: center;
vertical-align: middle;
font-size: 20px;
height: 80px;
}
...
<div class="Div">
Just testing my Div.
</div>
...
我希望文本在这个矩形的中间,垂直和水平。我应该如何实现它?
需要说明的是,我没有div
在主体内部使用它,它在另一个内部使用div
;但在那我也有text-align: center;
。我不知道这是否重要;但如果需要,我可以提供有关此代码的更多详细信息。
PS:我对 css 和 html 很陌生。如果此代码不符合某些标准,请接受我的道歉。
解决方案
有几种方法可以做到这一点。由于您自己首先尝试使用vertical-align
,因此vertical-align
只能使用display: table-cell;
. 为了实现它,您应该将您的div
,设置display
为table-cell
,然后您还应该width
为您div
定义一个特定的(我只是100vw
用来填充可用的视口)。
所以你的最终代码应该是这样的:
.Div {
border: 1px solid red;
margin: 1px;
text-align: center;
display: table-cell;
vertical-align: middle;
font-size: 20px;
height: 80px;
width: 100vw;
}
<div class="Div">
Just testing my Div.
</div>
但是如果你想要一些通用的方法,你应该使用它flexbox
。为了使用flexbox
,您应该定义三个特定的属性来满足您的要求。
display: flex;
. 这将表明您div
的弹性项目,然后他们的孩子应该遵循弹性规则。align-items: center;
. 这将表明您的所有项目都应水平对齐在您的中间div
。justify-content: center;
. 这将表明您的所有项目都应在div
垂直中间对齐。
.Div {
border: 1px solid red;
margin: 1px;
text-align: center;
display: flex;
align-items: center;
justify-content: center;
font-size: 20px;
height: 80px;
}
<div class="Div">
Just testing my Div.
</div>
推荐阅读
- arm - STM32F767ZI 与 DAC082S085 接口
- java - Java应用程序中的无限while循环
- packaging - 可选手册?还是在分发中预编译?
- swift - 仅具有类型功能的结构和仅具有类型功能的类之间有什么区别?
- javascript - 根据元素 ID 从数据部分获取值
- mathematical-optimization - ILOG-CPLEX。如何从 excel 将数据加载到我的模型中?
- c# - EF Core and an encapsulated collection
- python - Django, CreateView: pass form argument to reverse_lazy
- html - 当我单击选项卡时,图像消失
- python - Relations between special vectors in python