text-align不生效问题

本文档介绍了在C端webview项目中遇到的text-align样式不生效问题,尤其是在Android和iOS设备上的兼容性挑战。针对该问题,提出了使用`text-align-last`属性的解决方案,以及在不被iOS支持时,通过插入标签并调整CSS实现文字两端对齐的替代方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

最近参与公司项目,做一个C端的产品,用webview,作为实习生,深刻体会到了C端的坑有辣么多,炒鸡多。

问题描述

目前有很多App都用了webview,但是…,webview还是有很多坑的,尤其是Android和ios之间存在的兼容性问题。其中就有text-align的问题。

其实text-align: justify不生效的问题在web上面也存在,text-align: justify在当文案只有一行的时候是不会生效的。

解决方案

首先的解决方案是用text-align-last: justify来修复text-align: justify对最后一行不起作用的问题。
但是…,兼容性毒。查看兼容性
Android还是有一定的支持度的,但是ios就惨了,完全不支持,所以只能改。
分析text-align: justify不生效的原因就是文字在最后一行,所以可以再想要两端对齐的文字前后分别加一个标签,然后把文字挤在不是最后一行的位置上。

html如下

<div class="wrapper">
    <span class="content"><i></i>这是想要两端对齐的文字<i></i></span>
    <!--这里设置两个i标签是因为前后都有,把文字挤回原来的位置-->
</div>

css如下

.content {
    width: 100px;/*要有固定宽度,不然没法两端对齐*/
    text-align: justify;/*设置两端对齐属性*/
}
i {
    display: inline-block;/*行内元素*/
    width: 100%;/*可以挤掉文字,保证不跟文字在同一行*/
    height: 0;
    visibility: hidden;
}

同上面的原理一样,可以用伪类来实现

.content {
    width: 100px;/*要有固定宽度,不然没法两端对齐*/
    text-align: justify;/*设置两端对齐属性*/
}
.content:before, .content:after {
    display: inline-block;/*行内元素*/
    content: '';
    width: 100%;/*可以挤掉文字,保证不跟文字在同一行*/
    height: 0;
    visibility: hidden;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值