垂直对齐此文本我缺少什么?
What am I missing to vertically align this text?
我可以将 line-height
设置为 85px
,它会垂直对齐它,但我并不总是知道元素有多高。我确定我在这里遗漏了一些简单的东西...但是我可以在 .content
class 中修改什么以使文本垂直居中?
.tile {
position: relative;
width: 100px;
height: 85px;
display: inline-block;
border: 1px solid red;
}
#container1 {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
#container2 {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.content {
margin: auto;
height: 100%;
vertical-align: middle;
text-align: center;
}
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile">
<div id="container1">
<div id="container2">
<div class="content">Test</div>
</div>
</div>
</div>
您可以像这样使用 psuedo
元素:
.content:after {
content: '';
height: 100%;
display: inline-block;
vertical-align: middle;
}
参见下面的演示:
.tile {
position: relative;
width: 100px;
height: 85px;
display: inline-block;
border: 1px solid red;
}
#container1 {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
#container2 {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.content {
margin: auto;
height: 100%;
vertical-align: middle;
text-align: center;
}
.content:after {
content: '';
height: 100%;
display: inline-block;
vertical-align: middle;
}
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile">
<div id="container1">
<div id="container2">
<div class="content">Test</div>
</div>
</div>
</div>
我可以将 line-height
设置为 85px
,它会垂直对齐它,但我并不总是知道元素有多高。我确定我在这里遗漏了一些简单的东西...但是我可以在 .content
class 中修改什么以使文本垂直居中?
.tile {
position: relative;
width: 100px;
height: 85px;
display: inline-block;
border: 1px solid red;
}
#container1 {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
#container2 {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.content {
margin: auto;
height: 100%;
vertical-align: middle;
text-align: center;
}
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile">
<div id="container1">
<div id="container2">
<div class="content">Test</div>
</div>
</div>
</div>
您可以像这样使用 psuedo
元素:
.content:after {
content: '';
height: 100%;
display: inline-block;
vertical-align: middle;
}
参见下面的演示:
.tile {
position: relative;
width: 100px;
height: 85px;
display: inline-block;
border: 1px solid red;
}
#container1 {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
#container2 {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.content {
margin: auto;
height: 100%;
vertical-align: middle;
text-align: center;
}
.content:after {
content: '';
height: 100%;
display: inline-block;
vertical-align: middle;
}
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile">
<div id="container1">
<div id="container2">
<div class="content">Test</div>
</div>
</div>
</div>