【发布时间】:2013-10-29 09:59:24
【问题描述】:
当已知文本高度时,我知道如何在 div 中垂直对齐文本中心。假设文字的高度是 20px。
用 span 包裹文本。样式 div 和 span。
div {
position: relative;
}
span {
display: block
position: absolute;
top: 50%;
height: 20px;
margin-top: -10px;
}
现在我想响应式对齐文本。我想要的是文本的字体大小与正文的高度成比例。假设我有以下风格:
body {
font-size: 100%;
}
span {
font-size: 1.5em;
}
然后我会在窗口大小改变时改变body的font-size。在这种情况下,文本的高度是不确定的。那么如何让文字居中垂直对齐呢?
我知道我可以使用 JavaScript 来动态更改跨度的高度和顶部边距。但是我必须在窗口大小改变后这样做。然后有可能是窗口大小发生了变化,然后用户看到文本不在中间,然后执行了JS代码,文本跳转到了div的中间。这可能不是一个可接受的解决方案。
我想知道有没有纯CSS解决方案。
我想我可以使用下面的样式来垂直对齐文本中心。
div {
display: table-cell;
vertical-align: middle;
}
但使用此解决方案,div 的边距无法正确呈现。而且语义不对。
那么有完美的解决方案吗?
【问题讨论】:
-
那你不是在找这个吗? jsfiddle.net/Wznmc
-
边距在此解决方案中不起作用,正如我在说明的最后指出的那样。
-
我知道你这么说..这就是我问的原因..只是检查一下你是否忽略了一些东西。
标签: javascript html css vertical-alignment