【小程序】手动实现switch开关中带文字效果(开关左右文字相同/不同都可以)

2023-11-01

最终效果:

左右文字宽度相同
在这里插入图片描述
左右文字宽度不同
在这里插入图片描述

左右长度相同

效果:配合wx:show切换
在这里插入图片描述
注意:左右长度相同的话可以设置合适的相同的宽度。

html:

<view class="switch">
 <view
    class="switchNums {{ switchChecked == true ? 'currentNum' : '' }}"
    bindtap="switchChange"
    data-index="0"
    >{{ selectOpen[0] }}
  </view>
  <view
    class="switchNums {{ switchChecked == false ? 'currentNum' : '' }}"
    bindtap="switchChange"
    data-index="1"
    >{{ selectOpen[1] }}</view
  >
</view>

css:

.switch {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width:120px;
  height: 54rpx;
  border-radius: 54rpx;
  background: #f7f7fb;
}
 
.switchNums {
  width: 112rpx;
  height: 54rpx;
  line-height: 54rpx;
  border-radius: 54rpx;
  text-align: center;
  color: #C1C1C1;
  font-size: 28rpx;
  font-weight: bold;
}
 
.currentNum {
  background: #1989FA;
  color: #ffffff;
}

js:

data: {
	selectOpen: ['扫码', '输入'],
	switchChecked: true
 }
methods:{
    switchChange() {
       this.switchChecked = !this.switchChecked
       console.log('switchChecked', this.switchChecked)
     }
}

配合wx:show:或true

wx:show="{{switchChecked===false}}

参考:
小程序 switch 上添加文字显示_小程序switch中怎么添加一个提示_梦到韩大厨的博客-CSDN博客

左右长度不同

如:
在这里插入图片描述

如果宽高不够,且一边文字更多,可能出现文本换行的问题。

文本换行原因:文本的宽度大于外层块级元素设置的宽度

因此我们可以不设置宽而设置padding,让padding撑开距离:没有设置宽就不会换行,距离随字数自适应长度,加点padding保证距离美观。

如上图,若希望左边的再宽一些就可以单独再加padding。

左右长度不同+inline-block

实际上,我们需要的switch开关一般不会占一行。即,我们并不需要块级元素。
然而,switch开关一般会有背景色,如果:

  • 是块级元素
  • 没有设置宽度

则一整行都会是switch的背景色,这并不好看:

在这里插入图片描述
若设置了宽度,背景色会只有宽度那么宽,但是,在不同屏幕上由于分辨率问题可能出现文本换行问题。我们当然可以使外面的switch类的宽度十分大,以使得 文字+padding 一定小于switch的宽,但是这会导致外部的背景色宽度明显大于switch。

解决方法:使用inline-block

当我们想要让一个元素既不独占一行,又可以设置其宽高属性的时候,我们就可以选择inline-block了。

效果:

  • switch开关宽度随文字长度+padding自适应
  • 背景色随上述宽度自适应(即上述宽度多宽,背景色就有多少)
  • 不会出现文本换行问题(文本换行问题本质:文本宽度>设置宽度)
.switch {
  display:inline-block;
  height: 70rpx;
  border-radius: 70rpx;
  background: #f7f7fb;
}
 
.switchNums {
  display:inline-block;
  height: 70rpx;
  line-height: 70rpx;
  border-radius: 70rpx;
  text-align: center;
  color: #C1C1C1;
  font-size: 28rpx;
  font-weight: bold;
  //加点padding撑开
  padding:0 8px;
}
 
.currentNum {
  background: #1989FA;
  color: #ffffff;
}

效果:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【小程序】手动实现switch开关中带文字效果(开关左右文字相同/不同都可以) 的相关文章

随机推荐

  • python 绘制箱型图(boxplot)时如何去掉出现的连续散点

    问题如上所示 绘制箱型图时发现在箱型图的上下边界出现许多散点 如何去除呢 只需要在绘制时添加一个命令即可 ax boxplot data h 0 就是这一步就可以去除连续的散点 showmeans True vert True vertic
  • java jdk8 使用stream实现两个list集合合并成一个list集合(对象属性的合并)

    java使用stream实现list中对象属性的合并 根据两个List中的某个相同字段合并成一条List 包含两个List中的字段 目录 一 前言 二 示例 示例1 java8 合并两个 list map 示例2 java8 合并两个 li
  • ES6 Set 转换成 Array

    用 操作符 可以实现将 Set 转成 Array let a new Set 1 2 3 4 5 let arr a console log arr 运行结果 1 2 3 4 5
  • python怎么编写模拟交易_python简单区块链模拟详解

    最近学习了一点python 那就试着做一做简单的编程练习 首先是这个编程的指导图 如下 对的 类似一个简单区块链的模拟 代码如下 class DaDaBlockCoin index 索引 timestamp 时间戳 data 交易记录 se
  • [QT_000]学习Qt的最好途径(个人记录)

    00 先通过相关书籍 网上视频了解基础 可以通过某位大神的系列博客总结去学习 这样相对全面一些 达到最好能了解到整个Qt的全貌 不求甚解 01 当了解完基础以后 把Qt自带的案例例子运行一遍 搞懂案例 这是非常有用的一步 现实中好多小功能都
  • 数字水印技术的原理及应用研究

    一 问题分析 随着计算机和网络技术的普及 数字产品的保密性及版权保护等问题逐渐凸显出来 这使得数字水印技术成为热点问题 一些别有企图的个人和团体在没有得到原作者的同意的情况下复制和传播有版权的数据文件或作品 所以 数字媒体的信息安全 知识产
  • 【ARIMA-SSA-LSTM】合差分自回归移动平均方法-麻雀优化-长短期记忆神经网络研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 1 1 ARIMA模型 1 2 鲸鱼优化算法 1 3 LSTM 模型 2 运行结果 3 参考文献 4 Py
  • 计算机网络 五、 五层协议体系结构-----网络层(上)

    网络层 network layer 主要包括以下两个任务 1 负责为分组交换网上的不同主机提供通信服务 在发送数据时 网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送 在TCP IP体系中 由于网络层使用IP协议 因此分组也叫做
  • 了解chat-GPT必须要读的论文汇总

    前言 今年在nlp领域 最靓的仔要数chat gpt了 未来也可能颠覆搜索行业 甚至其他行业也会慢慢的被颠覆被取代 作为技术人员 为了保证饭碗 必须跟进相关技术的发展 目前梳理了一下chat gpt技术的脉络 通过该脉络可以比较系统的了解c
  • 开发uniapp苹果app,苹果签名证书的创建方法

    在uniapp云打包界面 打包苹果app 需要私钥证书p12文件 还需要证书profile文件和证书密码 这两个文件到底是从什么地方获取的呢 答案是这两个证书需要在苹果开发者中心生成 下面我们这篇教程 将教会大家如何创建这两个打包所需的证书
  • C语言基础(五)自定义类型与宏定义

    自定义类型与宏定义 一 自定义类型 二 宏定义 三 枚举 一 自定义类型 自定义类型 typedef用新的类型名代替原有的类型名 例如 指定用u8为类型名 作用与unsigned char相同 typedef unsigned char u
  • 自定义Dynamics 365实施和发布业务解决方案 - 7. 报表

    在每个组织中 决策者都依赖于各种报告来推动业务取得成功 因此 每个软件开发项目都需要开发报告 Dynamics365配备了最先进的报告功能 这些报告的范围从简单的查询到具有复杂查询的更高级的报告 此外 Dynamics365的一个关键功能是
  • Qt 串口发送0x00

    应用场景 大恒光电的平移台 GCD 040101M 先看看要发什么东西 这是串口监听软件截取的结果 绿色的字 串口协议主要包括三个部分 前面是固定的 后面是key 后面是 0x00 最后面是数据 错误版本1 bool MoveStage w
  • Windows10点击睡眠之后不锁屏?

    一些用户反馈自己在使用win10系统笔记本电脑过程中 突然碰到了无法睡眠的情况 不管是盖上屏幕还是在系统中选择睡眠 电脑都无法进行睡眠 根本没有任何反应 该怎么办呢 接下来 系统城小编就为大家带来该问题的具体解决方法 首先可以按方法一进行设
  • Deepin 系统安装并开启本地远程使Windos系统访问

    思路 1 系统安装 2 安装xrdp Linux和Windows间的远程桌面访问 coder i 的博客 CSDN博客 linux远程连接windows桌面 sudo apt install xrdp 然后启动xrdp服务 sudo sys
  • 关于stm32的GPIO的操作

    首先先了解一下输出的模式 比较常用的是 推挽输出 1 GPIO Mode AIN 模拟输入 2 GPIO Mode IN FLOATING 浮空输入 3 GPIO Mode IPD 下拉输入 4 GPIO Mode IPU 上拉输入 5 G
  • 字符流

    import java io FileNotFoundException import java io FileReader import java io FileWriter import java io IOException publ
  • 线性代数(17)——坐标转换

    坐标转换 空间的基与坐标系 任意坐标系与标准坐标系之间的转换 任意坐标系之间的转换 标准单位矩阵作为桥梁 结论验证 不使用单位坐标系为桥梁的情况 空间的基与坐标系 坐标系是理解空间的基的一个视角 如果只到了一个坐标系也相当于知道了空间中的一
  • 【axmol】基于Cocos2d-x 4.0的持续维护的游戏引擎介绍

    Axmol引擎 A Multi platform Engine for Desktop XBOX UWP and Mobile games A radical fork of Cocos2d x 4 0 Axmol是基于Cocos2d x
  • 【小程序】手动实现switch开关中带文字效果(开关左右文字相同/不同都可以)

    最终效果 左右文字宽度相同 左右文字宽度不同 左右长度相同 效果 配合wx show切换 注意 左右长度相同的话可以设置合适的相同的宽度 html