来自“ bjnsn”的答案很好,但并不完美,因为当文本中包含空格时,答案将失败。例如,他使用“居中?” 作为文本,但是如果我们将文本更改为假设“居中?否”,那么它将无法正常工作,并且会占用空格后的下一行。Ther不是为内部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的宽度来使整个文本居中对齐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/
display: table
元素吗?因为垂直对齐动态div的“标准”方法应该可以与转换一起正常工作:stackoverflow.com/a/6182661/188221