在做项目的时候,发现设置text-align不生效,后来设置了text-align-last生效了,今天查了一下两者的区别
问题回顾
代码如下,text-align的值为left、right、center时都能正常显示,但是唯独justify不生效,如果改为text-align-last:justify,就可以正常显示了
<style>
.justufy{
display: inline-block;
width: 80px;
text-align: justify;
}
</style>
<form>
<label for="name" class="justufy">用户名</label>
<input type="text">
<br>
<label for="password" class="justufy">密码</label>
<input type="password">
</form>
问题分析
首先看一下MDN上对text-align和text-align-last的定义:
text-align定义行内内容(例如文字)如何相对它的块父元素对齐。text-align 并不控制块元素自己的对齐,只控制它的行内内容的对齐。
text-align-last描述的是一段文本中最后一行在被强制换行之前的对齐规则。 text-align-last的默认值为auto,经测试发现,当text-align(以下简称t)设置为left时,text-align-last(以下简称l)继承left;t的值为right时,l继承right;t的值为center时,l继承center;但是,当t的值为justify时,l的值为left。也就是说,justify的值text-align-last是不继承的,必须手动设置。
当内容只有一行时,设置text-align:justify不生效,我猜测是一行也即最后一行,所以必须设置text-align-last