我有一些文本,它们在不同的页面上可能是不同的。我需要让它垂直居中对齐。由于文本的宽度较小,因此存在一些问题。
.vertical-text-block {
width: 40px;
height: 100%;
position: absolute;
top: 0;
left: 0;
float: left;
background-color: grey;
}
.vertical-text {
display: block;
position: relative;
top: 50%;
white-space: nowrap;
font-size: 10px;
text-transform: uppercase;
transform: translateY(-50%);
transform: rotate(-90deg);
}<div class="vertical-text-block">
<span class="vertical-text">ASHWANI SHARMA</span>
</div>
它应该看起来像下面的图片:

发布于 2016-11-04 14:28:15
我添加了right: 50%、transform-origin: right并删除了transform: translateY()
.vertical-text-block {
width: 40px;
height: 100%;
position: absolute;
top: 0;
left: 0;
float: left;
background-color: grey;
background-image: linear-gradient(darkgrey 0%, darkgrey 50%, lightgrey 50%);
background-repeat: no-repeat;
}
.vertical-text {
display: block;
position: relative;
top: 50%;
right: 50%; /* 1 */
white-space: nowrap;
font-size: 10px;
text-transform: uppercase;
/*transform: translateY(-50%);*/ /* 2 */
transform: rotate(-90deg);
transform-origin: right; /* 3 */
}<div class="vertical-text-block">
<span class="vertical-text">ASHWANI SHARMA</span>
</div>
发布于 2016-11-04 23:36:41
我对DOM做了一个小的修改,并且能够实现它,即居中显示文本,而不考虑它的长度。
对DOM做了一个小改动。
<div class="vertical-text-wrap">
<div class="vertical-text-block">
</div>
<span class="vertical-text">American Leadership Index</span>
</div>添加了一个额外的包装器,希望它被允许。
.vertical-text-wrap {
position: absolute;
height: 100%;
margin: 0px 20px;
}
.vertical-text-block {
width: 40px;
height: 100%;
position: absolute;
top: 0;
left: 0;
float: left;
background-color: grey;
}
.vertical-text {
display: inline-block;
position: relative;
top: 50%;
left: -35%;
font-size: 10px;
text-transform: uppercase;
transform-origin: 50% 50%;
transform: translateY(50%) rotate(-90deg);
}<div class="vertical-text-wrap">
<div class="vertical-text-block">
</div>
<span class="vertical-text">American Leadership Index</span>
</div>
这里需要注意的是,当文本变短时,span.vertical-text的left位置必须进行调整。
但是,它是垂直居中的:)
发布于 2016-11-04 15:55:21
我认为你也可以这样做,只需在. http://codepen.io/Danstan/pen/QGWggO上正确添加translateX和translateY就可以了--所有内容都会居中显示
.vertical-text {
font-size:8px;
text-transform: uppercase;
position: absolute;
top: 50%;
left: 50%;
white-space: nowrap;
-webkit-transform: translateX(-50%) translateY(-50%) rotate(90deg);
transform: translateX(-50%) translateY(-50%) rotate(90deg); white-space: nowrap;font-size: 10px;}https://stackoverflow.com/questions/40416385
复制相似问题