微信小程序踩坑之一【weui-wxss-master单选按钮图标修改思路】

小程序原生所带的weui框架做小程序UI实在太方便了,但是他的一些细微变化也是让开发中碰到不少头疼的问题

一直以来单选多选的美化都是设计师重点表达的地方之一

而weui-wxss-master中的单选多选样式又写的与众不同,不同与常规的weui添加after伪类来显示 不同,他是通过type="success_no_circle"来实现的,所以无论怎么更改icon或icon的after或befor都无效果

这里想到一个变通的方法先给icon添加一个外层容器,给该容器添加背景图片来实现在不选中状态的UI样式,再给icon添加一个背景图片,同时控制 icon的显示 隐藏来达到图标切换的效果,

这里额外说下,在小程序中,背景图片是不许直接引用项目中的图片,否则 会直接报错,

可以直接引用一个带http的绝对地址图片,或者转化成bese64来实现【图片在线转换64,https://tool.css-js.com/base64.html】

先上原始UI

<radio-group bindchange="radioChange">
                <label class="weui-cell weui-check__label" wx:for="{{radioItems}}" wx:key="value">
                    <radio class="weui-check" value="{{item.value}}" checked="{{item.checked}}"/>

                    <view class="weui-cell__bd">{{item.name}}</view>
                    <view class="weui-cell__ft weui-cell__ft_in-radio" wx:if="{{item.checked}}">
                        <icon class="weui-icon-radio" type="success_no_circle" size="16"></icon>
                    </view>
                </label>
            </radio-group>

改良后的UI

<radio-group bindchange="radioChange">
                <label class="weui-cell weui-check__label" wx:for="{{radioItems}}" wx:key="value">
                    <radio class="weui-check" value="{{item.value}}" checked="{{item.checked}}"/>

                    <view class="weui-cell__bd">
                      <view>{{item.name}}<text>{{item.time}}</text></view>
                      <view class=‘text‘>{{item.text}}</view>
                    </view>
                    <view class="weui-cell__ft weui-cell__ft_in-radio">
                        <view class=‘price‘>{{item.price}}</view>
                        <view class=‘ck‘><icon class="weui-icon-radio" type="success_no_circle-1" size="16" wx:if="{{item.checked}}"></icon></view>
                    </view>
                </label>
            </radio-group>
data: {
    radioItems: [
      { name: ‘标准洗‘, time:‘30分钟‘,text: ‘30分钟‘, price:‘¥5‘, value: ‘0‘, checked: true},
      { name: ‘单脱洗‘, time: ‘30分钟‘, text: ‘30分钟‘, price: ‘¥5‘, value: ‘1‘ },
      { name: ‘快洗‘, time: ‘30分钟‘,text: ‘30分钟‘, price: ‘¥5‘,value: ‘2‘ },
      { name: ‘深层洗‘, time: ‘30分钟‘,text: ‘30分钟‘, price: ‘¥5‘, value: ‘3‘ },
    ]
  }
.weui-cell__ft .ck{
  width: 20px;
  height: 20px;
  padding: 0;
  padding-top: -3px;
  vertical-align: middle;
  display: inline-block;
  background-size: 100% auto;
  background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjc5REQ0Q0FFNkFDQjExRTg4NUIxRjRFODhCN0JBODAxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjc5REQ0Q0FGNkFDQjExRTg4NUIxRjRFODhCN0JBODAxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzlERDRDQUM2QUNCMTFFODg1QjFGNEU4OEI3QkE4MDEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzlERDRDQUQ2QUNCMTFFODg1QjFGNEU4OEI3QkE4MDEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6o6k/pAAAC9UlEQVR42syZO0xTURjHT28KA0KVgAMKMgk+40BNDJOCmzHGRTAajWGRKBjdxQQfG4NRNkkUHxgdjHEx8XFHjdZB8ckIVZaqiODQKvr/m/+NTVPb29LH+ZJfSOjt+X65595zzvc14LquySMcsBlsA2HQAlaCJfp8HnwEEyACmOQ5WMg1UTDH6xvBEbAPfAOPwG3wHkyBOV1XDZpAK2gHl8BScB0Mg2ihBevAINgLLoMdYDzD9V/ES3BL/9sIDoFXYAwMgM9+pipb7AFvwC9N5Ykscv+LcX13tcbimF2LuYP87ALoBDv1DBUieNf6wSi4AbaCPvAzlztYBe6AZr0EhZJLjojGblauKr+CQT0jfBN3gVlTvJhVjnnlDPoRvAgC4ABImOJHQrkCyp1RsEvP3H4QN6WLuHJ2aqVIK8il5DzoLvK0ZprubjksTyd4RovuC1O+YO6b4HTqMrNK09tiyh+D2iLPgUnvDvaCKyBmgWBMu1WvN8WOHtARY0+MyMnxTiXc+F9bJMhtcIZuFOwAD4x98ZDHOQq2gacWCtIp7OjM9s5CQTq1UrABfLJQkCfyBgrWgO8WCtKpxlsHfxtLw5FpyEK3vzNLwWmwwkJBVonTFPwA1loouIZujk4QWywUpFPEUVG93UJBOrkUfAaWgfUWydGllsWao3bENdBjkWCPnBa8dZDtiIOg3gK5erkMJx/5ozpqD1ggeFLtkmhqZ4Fyb3WyLldd0qbCaV26ooktiWMqoMuxs4SU+7hJaiql1sWc5sfgKqgooVyFcrrq12TsLPTr72iJJD05Rp+f1kdc1T0bjneLPN0h5ahWzrgfQcYPNXUmzb8uVKEjrLGZY7dyGr+CXlPnsN7ue2pJ1BVAzGuxcMxTypHIdB7MFnxx2L6tVMU/BDbkuX0NaYxKjTmW7Ut+e9QxVfpnwVFwH3xVafhER7appNKBh80mtVLatfHXavvaZHJoogcW+TNEhxZXijTqYWfMSWJCiz6Xrrx+hvgjwACimajJuQXaOgAAAABJRU5ErkJggg==);
}
.weui-cell__ft_in-radio .weui-icon-radio{
  width: 20px;
  height: 20px;
  margin: 0;
  padding: 0;
  vertical-align: top;
  background-size: 100% auto;
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY2RUE0MDc0NkFDQjExRTg4QTJEQzAxMkU2NDRDRjA4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY2RUE0MDc1NkFDQjExRTg4QTJEQzAxMkU2NDRDRjA4Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjZFQTQwNzI2QUNCMTFFODhBMkRDMDEyRTY0NENGMDgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjZFQTQwNzM2QUNCMTFFODhBMkRDMDEyRTY0NENGMDgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz52XzXLAAADyklEQVR42syZaUhUURTHzxstx8klLW21VcQyIg1sNzIp2uhDUZkEGRloC0gJEbZSfWmH0oqiVSqJiEgiiTT7IBqVZV+SojKNUlJzeeP++t/eHZsmde5z5o1z4PdBePe9n/fcefec+6SGZAM5EBKIBlPAWDAEsBvWgO+gFLwC9T3dwCejo9cHePZBKhCsBDEgDoy2c30DeAwKQC54r+VhWgRNIA3sBL4axrFrV3NYXAIHQKXIYNH8poByfmNfciw2g0/gpDME/cFlcI6vL2fFAJAKnjameEzuq+BIUAw2kX6xALyG5HytggGgDISR/jEQ5ENytqigN5+5QeTayINkuIjgFRBKrg82k3ftCSaBtdR/EYFZvPHPTmCzk3RoePXoGeOxw3y2ncF9biLHIss2xexXe5DcJ2Yj1TOsBZeT+8UKa8FYVzzREDSRBi7bTx6hMSKXx1t+JKxg+An89JSTAseSKb2EJKMfKXItNe0aKjJsOpOL0l9uDOTeQE6tM5SaL6JD41iKp+kut7u4S66z+gOZzy4VHR7CBMfpJuc/grxT80jyCVLlqsrIfDqOlPofwrUkS/FgXeQgZUp/S9KgQDWtdZUkH8FqajNruY3RwPsKu+ExYRaZ9paSMSnbvpzfcHXNWeSw5uRDEVrlul7UDSIXeq3PJMOIyeQZuYqMG6/3ktaR6przG8bX3EeSj80lpbmhL4loZYIVQlfmHvvbyEQnkFfChf/lTAFk2vOSpMGj1JlrrCbzqVhSfn3r60ppZGvwnciV7cVZ1Kx0kjHxplqzz0Fr0dlJLbeSebFkUtPqG6zKtTaRfGDSn3eeA1HFBIvY80U6vPYXt6hZkpBitSIaMG8LFn8FtRVeI+9tOX9nrvYrmc8sclSORYGl3LrPe12xjgdiXvGZVuYt+Pe8uuTkEzH4YZQ7Ksea/2DLXpyrZWTb84vUcme7VXfN5cx1JB+NcoYci9uoCTssgo+0jm57lkEt2Tu6/laa60k+PI2UphpnvUpzrE8WWCPNFtYGTZL5aJclAxmCw/7MKkuvk6KcH5f8U/KzLq7RXQpWpLfQtuRvAsfdQK7QItddV5fGe+L+il+2b5PumqR1QO4nwTWYvWp7gp/4mYmrIxlyuaJnM8VcUnGR3FbIndd6upXP24EiHcWq2JqDXIbW0y1LlICZ4KoOck/BVMg9sFcPikQiiNS6JfYQ7GB9CVgI7Nb+Ws6o2WwuBuywkR2eszPncMGxbIt5CJ6Ae5paBwc/Q0Rx4RDe23jzFsLMdyX2KaKQp7PbsPcZ4rcAAwAO+BVCRaiNXgAAAABJRU5ErkJggg==");
}

原文地址:https://www.cnblogs.com/zhixi/p/9155562.html

时间: 2024-10-10 08:25:28

微信小程序踩坑之一【weui-wxss-master单选按钮图标修改思路】的相关文章

微信小程序踩坑(二)——微信小程序recorderManager和innerAudioContext相关

目录 写在前面 RecorderManager录音相关 innerAudioContext播放相关 写在前面 关于微信小程序的录音和语音方面,踩了很多坑,记录一下 recorderManager相关文档 innerAudioContext相关文档 RecorderManager录音相关 在使用RecorderManager相关方法之前,在page外先定义全局唯一的录音管理器: const recorderManager = wx.getRecorderManager(); 录音开始 record

初识MpVUE开发微信小程序踩坑记录

安装预览的时候,不是用浏览器打开输入:localhost:8080. 而是打开微信开发者工具,把项目根目录导入进去. 坑一:不支持Vue-router 之前vue项目直接移入,同步生成小程序不能使用vue-router 坑二:eslint连vue和js后缀文件都有严格校验 找到build目录的webpack.base.conf.js把器rule注释掉. // { //   test: /\.(js|vue)$/, //   loader: 'eslint-loader', //   enforc

微信小程序踩坑集

setData function is not defined   这个问题只会出现在 wx.request(OBJECT)中 具体替代吗吧!写日志真的不是我的强项 //logs.js var util = require('../../utils/util.js') Page({ data: { logs: [], array: [] }, onLoad: function () { var that = this this.setData({ logs: (wx.getStorageSync

微信小程序踩坑日记4——真机端解析json数组和开发平台不一样

0. 引言 环境:访问服务器端php,获取json数组,并渲染在前台 问题描述:保证在开发平台上的正常运行,但是在真机端却出现了无法正确解析wx.request()返回的数据(特指无法解析res.data的json数组) 1. 解决方案 保证在开发平台的正确解析 问题自然而然引向了对string和json之间的转换问题,这里得益于这篇网友的博文. 但是,res.data在开发平台上显示的是object,而在真机端却显示的string,所以我们需要先判断开发平台,在转换类型. // 查看平台 wx

一名Android开发者的微信小程序填坑之路(2)

前言 上一篇是九月二十七日写的,而这一篇我动笔的时间是十月十日(特殊的日子),中间相隔十三天--当然是因为国庆节.说老实话,这十三天里面我都没有碰和小程序有关的东西--毕竟学习小程序的开发也只是起于兴趣,而平时的工作并不会涉及与其相关的东西--但是在这十三天里,我能明显的感受到小程序热正在逐渐的消退,或者说大家正在逐渐以一种较为平和的姿态接受它的存在,其实这是一件好事.期待公测的到来. 接下来我就直接进入正题了,另外,文末我想和大家分享一下我的国庆节. PS:这篇文章是接着上一篇文章 一名And

微信小程序:其中wxml和wxss的样式说明

微信小程序:其中wxml和wxss的样式说明 一.简介 对于css不熟悉的Android程序员来说,开发微信小程序面临的一个比较困难的问题就是界面的排版了.微信小程序的排版就跟wxml和wxss有关了,它们两者相当于android的布局文件,其中wxml指定了界面的框架结构,而wxss指定了界面的框架及元素的显示样式. 二.wxml 界面结构wxmL比较容易理解,主要是由八大类基础组件构成: 关于这八大类的属性和具体用法可参考以下参考文献链接: http://www.w3cschool.cn/w

小程序踩坑之旅

小程序踩坑之旅 —— 分包 小程序踩坑之旅 —— 分享 小程序踩坑之旅 —— 页面路由 小程序踩坑之旅 —— canvas 原文地址:https://www.cnblogs.com/xxhuan/p/11334792.html

微信小程序爬坑日记

新公司上手小程序.30天,从入门到现在,还没放弃... 虽然小程序发布出来快一年了,爬坑的兄弟们大多把坑都踩平了.而我一直停留在"Hello World"的学习阶段.一来没项目,只有项目才是实践学习的根本:二来刚出来,总是有很多坑.爬坑总是痛并快乐着. 再多的借口,产品项目需求拍在桌前,都得缴械投降.不要怂撸起袖子,就是干. 初识小程序 微信推出小程序,想要实现即开即用,用完即走的用户体验.免去APP下载安装繁琐的流程.听起来像谷歌推出的PWA,不过PWA普及到国内还有段时间.而小程序

一名Android开发者的微信小程序填坑之路(1)

前言 首先要声明的是,我是一名 Android 开发者,之前基本没有前端开发经验,甚至连 JS ,HTML 都是为了开发小程序现学的一些皮毛--所以文章中所提到的一些点也许在资深前端开发者看来只是小case,但是站在一个 Android 开发者的角度来看确实是大坑. 前面就不说太多东西了,文章的末尾再谈谈我对小程序的一些看法--这篇文章主要是谈谈在开发小程序的过程中遇到的一些坑. PS:推荐一下我写的一个微信小程序版的Gank客户端:wechat-weapp-gank 正文 1,获取小程序开发工