我有一个高度为50px的div,其中包含一个子div.子div的高度通过使用css属性/值对从父级继承:height:100%.
<div style="height: 50px;"> <div style="height: 100%;">Some Text</div> </div>
我想真正对齐子div中的文本,并且这样做我将line-height属性添加到子div.
<div style="height: 50px;"> <div style="height: 100%; line-height: 50px;">Some Text</div> </div>
请注意,对于行高,我必须将高度明确定义为50px.
子div可以从父级继承height属性(使用height:100%)但是对于line-height,我必须显式设置值?
如果是这样,这是(IMO)有点乱,因为假设我有一个嵌套10级深度的div并且它一直继承高度属性.然后,如果我想垂直对齐此div中的文本,我不仅要将值硬编码为等于最高父div的高度,而且还要浏览我的代码以找到明确定义高度的父级.
请注意,我不想在父级别定义行高,然后在子节点使用inherit来获取值.
如果有一种方法可以将line-height设置为等于它所在的div的高度,那将是很好的.也许语法看起来如下(完全组成):
<div style="height: 100%; line-height: from-property('height');">Some Text</div>
其中line-height使用from-property方法来访问height属性. (是的,我知道有一个方法,比如from-property引入了循环依赖的可能性,所以也许其他方式会更好.我只是用它来表达我想要的东西.)
谢谢!
一月
解决方法
您可以使用jQuery计算parent()的高度,然后根据该高度动态添加行高?
它看起来像:
$(document).ready(function(){ $('.lineHeightDiv').each(function(){ var div_height = $(this).parent('div').height(); $(this).css('lineHeight',(div_height / 2) + "px"); }); });