文字横向自适应宽度并横向排列

news/2024/11/19 11:35:50/

如下图左侧图,候选项是后端的数据字典中动态管理的数据,并不能事先知道文本字数,即选项的所占宽度,也就无法直接设定宽度来让文本拥有个比较好的样式,那么想要达到右侧效果图那样的效果该怎么做?

请添加图片描述

可能很多人会考虑从宽度去解决问题,设置固定宽度 width、最小宽度 min-width…但遇到了字数较多等情况,用户体验并不不怎么好,我愣了一会儿,突然意识到,这是宽度不够,导致文本自动换行了,那我用 css 属性设置文本不换行呢?

  • 顺带设置个最大宽度,让太长的文本显示省略号,不至于页面样式混乱
  /* 设定最大宽度,超出显示省略号... */max-width: 350rpx;overflow: hidden;text-overflow: ellipsis;/* 设定最大宽度,超出显示省略号... */white-space: nowrap; /* 关键样式代码 */

结果还真行,easy 而且个人感觉兼容性还挺好,就很 nice,记录一下

按钮和选项的结构代码

<view class="addBtn" bindtap="addApply"><view class="options"><view class="option-row" bindtap="addNewApply" data-value="1">预约来访</view><view class="option-row" bindtap="addNewApply" data-value="2">营业执照代办</view><view class="option-row" bindtap="addNewApply" data-value="3">厂房租赁价格代办</view></view>
</view>

按钮和选项的样式代码

.addBtn {width: 120rpx;height: 120rpx;border-radius: 50%;background-color: #00A0E9;box-shadow: 0 2px 12px 0 rgb(0 0 0 / 40%);color: white;font-size: 120rpx;position: fixed;right: 20rpx;bottom: 20rpx;
}
.addBtn::before {content: "";display: block;width: 65rpx;height: 10rpx;border-radius: 10rpx;background-color: white;position: absolute;left: calc(50% - 32.5rpx);top: calc(50% - 5rpx);
}
.addBtn::after {content: "";display: block;width: 10rpx;height: 65rpx;border-radius: 10rpx;background-color: white;position: absolute;left: calc(50% - 5rpx);top: calc(50% - 32.5rpx);
}.options {font-size: 28rpx;position: absolute;right: -20rpx;bottom: 100rpx;opacity: 0;pointer-events: none;transition: right 0.3s;
}
.options.show {opacity: 1;right: 110rpx;pointer-events: initial;
}
.option-row {color: white;background-color: #00A0E9;box-shadow: 0 2px 8px 0 rgb(0 0 0 / 40%);/* 设定最大宽度,超出显示省略号... */max-width: 350rpx;overflow: hidden;text-overflow: ellipsis;/* 设定最大宽度,超出显示省略号... */white-space: nowrap; /* 关键代码 */padding: 4rpx 14rpx;border-radius: 4rpx;margin-top: 12rpx;text-align: center;
}

点击加号展示收起选项的逻辑代码

Page({/*** 页面的初始数据*/data: {showAddOption: false,},addApply() {this.setData({showAddOption: !this.data.showAddOption,})},addNewApply(event) {let servicetype = event.currentTarget.dataset.valuewx.navigateTo({url: `./form/form?id=&servicetype=${servicetype}`,})},})

ps: 这是农历2021年的最后一篇博客,也是2022年1月的最后一篇博客,祝大家除夕快乐,新年快乐,新的一年节节高升,一切都好~


http://www.ppmy.cn/news/497413.html

相关文章

营业执照数据生成

import pandas as pd from PIL import Image from PIL import ImageFilter from PIL import ImageEnhance import cv2 from PIL import ImageDraw, ImageFont from PIL._imaging import fontimport csv import codecs #两个函数用于保存需要的坐标点 # def save_to(path,name):…

广告设计和平面设计区别是什么?

大家好我是微风&#xff0c;一个爱设计爱生活的平面设计师&#xff0c;最近总有一些朋友问我&#xff0c;什么是广告设计&#xff0c;什么是平面设计&#xff0c;广告设计和平面设计区别是什么&#xff0c;那么今天的这篇文章主要给大家介绍下广告设计和平面设计区别是什么&…

安卓商店应用商城申请需要资料

Oppo应用商店 所需文件列表 企业营业执照法人代表身份证 要求&#xff1a;a、企业营业执照扫描件必须为彩色&#xff0c;要求照片清晰&#xff0c;字迹清楚&#xff0c;无遮挡或涂改&#xff1b; b、提供的营业执照经营范围必须与互联网有相关关系&#xff0c;否则不予审核通过…

商标和字号的五大区别

商标和字号的五大区别 1、核发机关不一样 注册商标是有国家知识产权局核发的&#xff0c;商标申请人需要提交相应的材料至国家知识产权局商标就进行商标注册申请&#xff0c;审核通过后才会获得商标注册证书。而公司字号是工商行政管理部们核发的&#xff0c;在注册公司的时候也…

阿里云域名备案

2019独角兽企业重金招聘Python工程师标准>>> 首先购买域名&#xff0c;虽然说域名没实名认证不能解析&#xff0c;但是可以先弄邮箱(如果有需要的话) 邮箱只能使用QQ的地址登录&#xff0c;而不能使用mail.youdomain.com登录(不允许和未解析) 这时可以顺便开通一下对…

vue 打印(模板套打)

vue 使用 print-template 生成pdf 打印 。支持生成二维码、条形码、文本、图片、线 安装 yarn add print-template或npm install print-template 内容类型 line线条barcode条形码qrcode二维码image图片text文本 内容属性 通用 x必须 所有类型 y必须 所有类型 default固定…

网店工商信息图片文字提取

首先非常抱歉&#xff0c;最近一段时间由于学校课程作业较多&#xff0c;外加个人较懒&#xff0c;所以一直没有更新文章&#xff0c;以后一定会勤奋点&#xff0c;多加更新。正如前几天在stormzhang**(张哥)**的公众号里看到的一样&#xff0c;写作其实并不难&#xff0c;每个…

美团算法团队:深度学习在美团OCR中的应用!

http://blog.itpub.net/31077337/viewspace-2157198/ AI(人工智能)技术已经广泛应用于美团的众多业务&#xff0c;从美团App到大众点评App&#xff0c;从外卖到打车出行&#xff0c;从旅游到婚庆亲子&#xff0c;美团数百名最优秀的算法工程师正致力于将AI技术应用于搜索、推荐…