如何在具有百分比高度的div中垂直居中文本?
如何在具有百分比高度的div中垂直居中文本?
这个问题已经在这里有答案了:
这就是我现在拥有的。在其他div中使用vertical-align:middle
并将line-height
设置为与height
属性相同的值,应该会起作用!唯一的问题是,在这些div中,我使用了像素维度而不是百分比。有人能告诉我为什么这无法使用百分比吗?同时,将text-size
设置为50%也应该使文本大小减半,但实际上它仍然非常小?这里发生了什么?
#chooseStateAlabama { width: 20%; height: 25%; top: 0; left: 0; position: absolute; background: url(../_images/_unitedStates/_states/chooseStateAlabama.png); background-size: 100% 200%; float: left; color: #FFFFFF; font-family: Arial; font-style: normal; font-weight: bold; font-size: 50%; line-height: 25%; text-align: center; vertical-align: middle; }
admin 更改状态以发布 2023年5月24日
如果您可以更改标记,您可以使用很多方法来获得您想要的结果。
因为您有文本(我猜可能是一行或多行文本),那么您可以使用CSS表单元格来获得结果(请参见fiddle)。
.outer-container { display: table; width: 100%; } .txt-vertical-align { display: table-cell; text-align: center; vertical-align: middle; }
您可以在文本旁(在文本之前或之后)使用display:inline-block
、height:100%
和vertical-align:middle
来处理单个元素或伪元素:演示
#chooseStateAlabama:before {/* this can be an extra tag within HTML structure if pseudo used for other purpose */ content:''; display:inline-block; height:100%; vertical-align:middle; }
如果您有更多的内容或超过1行,则使用元素将其包装起来,同样将其应用于显示和垂直对齐。 DEMO2 以查看其行为