小程序实现文字两端对齐

我们知道,text-align: justify;对最后一行无效,当有一个段落而最后一行只有两个字时,text-align: justify;的效果是前面N行两端对齐,最后一行居左,这样有利于用户的视觉体验,但是当我们只有一行文本,该怎么实现单行文本两端对齐呢?效果如下:

 

 

方法一,利用伪类after新增一行,使该行文本不是最后一行

wxss:

.ul .li label:after {
    display: inline-block;
    width: 100%;
    content: '';
    height: 0;
}

方法二,利用新属性text-align-last: justify;实现最后一行的文本对齐,小程序兼容

wxss:

.ul .li label{
  display: inline-block;
  width: 20%;
  text-align: justify;
  text-align-last: justify;
}

wxml:

<view class="ul">
    <view class="li flex">
      <label>姓名</label>:
      <view class="li-input">
        <input auto-focus placeholder="请输入姓名" />
      </view>
    </view>
</view>

text-align-last 属性规定如何对齐文本的最后一行。
注意:text-align-last 属性只有在 text-align 属性设置为 "justify" 时才起作用。

浏览器支持:

 

原文作者技术博客:https://www.jianshu.com/u/ac4daaeecdfe

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
小程序中,可以使用一些CSS样式来实现文字溢出时自动缩小字体的效果。下面是具体实现步骤: 1. 设置文本的`max-width`和`max-height`属性,使其具有固定的大小。 2. 使用`white-space: nowrap`属性来防止文本换行。 3. 使用`overflow: hidden`属性来隐藏超出部分的文本。 4. 使用`text-align: justify`属性来实现文本两端对齐。 5. 最后,使用JavaScript来实现自动缩小字体的效果。 下面是一个具体的CSS样式代码示例: ``` .text { max-width: 200px; max-height: 80px; white-space: nowrap; overflow: hidden; text-align: justify; } ``` 使用JavaScript来实现自动缩小字体的效果,可以监听文本框的宽度和高度变化,根据文本框的大小来动态调整字体大小。代码示例如下: ``` Page({ data: { fontSize: 16 // 初始字体大小 }, onReady() { // 获取文本框的宽度和高度 const query = wx.createSelectorQuery().in(this); query.select('.text').boundingClientRect((res) => { // 计算文本框的高度和宽度 const height = res.height; const width = res.width; // 计算文本的实际宽度和高度 const ctx = wx.createCanvasContext('canvas'); ctx.setFontSize(this.data.fontSize); const text = '这是一段需要缩小的文本'; const textWidth = ctx.measureText(text).width; // 如果文本实际宽度大于文本框宽度或文本实际高度大于文本框高度,则缩小字体 while (textWidth > width || this.data.fontSize * 1.2 > height) { this.setData({ fontSize: this.data.fontSize - 1 // 字体大小每次减1 }); ctx.setFontSize(this.data.fontSize); textWidth = ctx.measureText(text).width; } }).exec(); } }) ``` 这样,当文本超出文本框的大小时,字体就会自动缩小,以适应文本框的大小。希望这个方法对您有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值