CSS之文本两端对齐

说起text-align,大家一定都不觉得陌生,我们常用关键字left、right、center实现行内元素相对父元素左、右、居中对齐,当然我们也使用justify来实现文本两端对齐。

如上图,两端对齐相对于左对齐,视觉上显得整齐有序。但justify对最后一行无效,通常这样的排版对整段文字是极好的,我们并不希望当最后一行只有两个字时也两端对齐,毕竟这是不便于阅读的,那么当我们只有一行文本,但要实现单行文本两端对齐怎么解决(如下图的表单项效果)?

根据justify对最后一行无效,我们可以新增一行,使该行文本不是最后一行,实现如下:

//html
<div class="item">
    <span class="label" >{{item.label}}</span>:
    <span class="value">{{item.value}}</span>
</div>

//scss
.item {
    height: 32px;
    line-height: 32px;
    margin-bottom: 8px;
    .label {
        display: inline-block;
        height: 100%;
        width: 100px;
        text-align: justify;
        vertical-align: top;
        &::after {
            display: inline-block;
            width: 100%;
            content: '';
            height: 0;
        }
    }
    .value {
        padding-right: 10px;
    }
}

but以上写法可以说是比较麻烦的,重点来啦,最近新了解到的一个属性text-align-last,该属性定义的是一段文本中最后一行在被强制换行之前的对齐规则。

//scss
.item {
    margin-bottom: 8px;
    .label {
        display: inline-block;
        height: 100%;
        min-width: 100px;
        text-align: justify;
        text-align-last: justify;
    }
    .value {
        padding-right: 10px;
    }
}

相比第一种实现,第二种实现方式就简单了不少,不过该属性有兼容性问题,大家可以根据情况决定实现方式

  Previous post 前端CDN引用库
Next post   CSS3– filter(滤镜)

添加新评论

  关于博主

00后,一名代码发烧友,线上喜欢研究各种代码,各种语言,线下热爱运动,跑步,篮球,喜欢交朋友,座右铭:生命在于学无止境!

  近期评论

  •  111: 66666
  •  aries: 感谢 但现在 2022年9月30日 01:54:17 已经 不能用了
  •  wu: 作者大大速速给个新方法
  •  嘎嘎嘎: 用不了了,大佬加油
  •  0.0: 20号用不起了。劳烦作者更新下吧。通关降难度。
  •  gxk: 这个方法用不了了
  •  11: 好像不行了,大佬
  •  惟依: 按您教的步骤执行,成功不了了。
  •  11: t值怎么来的
  •  菜菜: 非常感谢,确实可以,

成功源于不懈的努力。

暗自伤心,不如立即行动。

再多一点努力,就多一点成功。

得意淡然,失意坦然;喜而不狂,忧而不伤。

海纳百川,有容乃大;壁立千仞,无欲则刚。

召唤看板娘