'bjnsn' 的答案很好但并不完美,因为当文本中包含空格时它会失败。例如,他使用“居中?” 作为文本,但如果我们将文本更改为假设“居中?与否'那么它将无法正常工作,并将在空格后占用下一行。没有为内部 div 块定义宽度或高度。
.inner {
font-size: 13px;
font-color: #878787;
position: absolute;
top: 50%;
left: 50%;
background: #DDD;
}
https://jsfiddle.net/touqeer_shakeel/f1gfy1yy/
但是我们可以使整个文本正确居中对齐,通过设置内部div的宽度等于外部div的高度,内部div的行高等于外部的宽度div 并使用 align-items:center 和 justify-content:center 属性设置内部 div 的 display flex 属性。
.inner {
font-size: 13px;
font-color: #878787;
position: absolute;
top: 50%;
left: 50%;
display: flex;
justify-content:center;
align-items:center;
line-height:40px;
}
$('#height').on('change', function(e) {
$('.outer').css('height', $('#height').val() + 'px');
$('.inner').css('width', $('#height').val() + 'px');
});
更新小提琴 https://jsfiddle.net/touqeer_shakeel/cjL21of5/