赞
踩
由于之前的文章中已经教会了大家如何注册自己的一个微信小程序,并且利用微信开发工具进行小程序的开发,所以这里不再介绍如何下载工具和注册账号,不懂的小伙伴们可以观看我之前发过的教程哦。
#####下面我将手把手地教大家如何开发自己的第一个微信小程序实例–计算器
注意:在代码块中的/xxx或//xxx代表着注释,不是代码的一部分!!
/*直接将"pages":[参数]中的参数删除,我们要创建界面在pages下,名称为a2的界面。@是更改的内容*/
"pages": [
"pages/a2/a2" /@直接在这里创建目录(系统会自动补充四个文件)
],
"window": {
"backgroundTextStyle": "light",/下拉背景字体,loading图的样式,仅支持(light/dark)
"navigationBarBackgroundColor": "#fff",/导航栏背景颜色(#000000)
"navigationBarTitleText": "WeChat",/导航栏标题文字内容
"navigationBarTextStyle": "black"/导航栏标题颜色(仅支持black/white)
},
"sitemapLocation": "sitemap.json"/小程序根目录下的 sitemap.json 文件用于配置小程序及其页面是否允许被微信索引
}
更改前:界面结构如下
更改后:界面结构中多出来了一个a2目录,并且该目录下也同时创建了相应的a2.js、a2.json、a2.wxml、a2.wxss.
<view class="btngroup">//这里使用view视图容器组件(分区分块)来设置四个不同的按钮一行/一列显示
<button class="btn-item">清除</button>//这里通过button(按钮)来设置一个清除按钮
<button class="btn-item">回退</button>
<button class="btn-item">//class="xxx",支持在.wxss中使用xxx来控制组件的样式。
<icon type="waiting"></icon>//这里不使用文字,而是通过微信自带的图标嵌入第三个按钮上
</button>
<button class="btn-item">/</button>
</view>
更改前模拟器的界面如下所示:一片空白更改后点击编译后模拟器的界面内容如下所示:
//在.wxml中<button class="btn-item">class="xxx",支持在.wxss中使用xxx来控制组件的样式。
/*上面的wxml中 view定义了一个class"btngroup",通过设置.btngroup的样式属性来更改*/
.btngroup{
display: flex; /设置多栏多列布局
flex-direction: row; /view容器中的组件为横向排列
}
/*button定义了一个class"btn-item"*/
.btn-item{
width: 190rpx; /宽度为190rpx(相当于整个微信屏幕的1/4)
text-align: center; /对齐元素中的文本(居中)
line-height: 150rpx; /设置行高15rpx
border-radius: 0; /按钮的边框角度为0,将圆角边框变为矩形框
}
设置a2.wxss后的界面如下所示:
<view class="btngroup"> <button class="btn-item">清除</button> <button class="btn-item">回退</button> <button class="btn-item"> <icon type="waiting"></icon> </button> <button class="btn-item">/</button> </view> <view class="btngroup"> <button class="btn-item">4</button> <button class="btn-item">5</button> <button class="btn-item">6</button> <button class="btn-item">-</button> </view> <view class="btngroup"> <button class="btn-item">1</button> <button class="btn-item">2</button> <button class="btn-item">3</button> <button class="btn-item">+</button> </view> <view class="btngroup"> <button class="btn-item">0</button> <button class="btn-item">.</button> <button class="btn-item">=</button> </view>
更改之后的模拟器显示界面如下所示:
//a2.wxml
<button class="btn-item">0</button>//修改代码前
<button class="btn-item zero">0</button>//修改代码后
/在原来的a2.wxss中加入如下代码块
.zero{
width: 376rpx;
}
更改代码后模拟器显示界面如下:
/a2.wxml添加如下内容
<view class="bottom">
<view class="btngroup">xxx</view>
<view class="btngroup">xxx</view>
<view class="btngroup">xxx</view>
<view class="btngroup">xxx</view>
</view>
/a2.wxss中添加如下代码内容
.bottom{
position: fixed; //生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。
bottom: 0; //距离底部0px:
}
更改后得模拟器界面如下:这是的a2.wxml中存在的内容截图为:(a2.js、a2.json我们到这步一直不去动它)这是的a2.wxss中存在的内容截图为:
//a2.wxml
<button class="btn-item gry">清除</button>
<button class="btn-item white">4</button>
<button class="btn-item orange">+</button>
//a2.wxss
page{
background: #000 //定义该显示屏的颜色为黑色
}
.white{
background:#EFEFED;
}
.orange{
background: #FC9504;
}
.gry{
background: #CFCFCF;
}
更改后模拟器界面如下所示:
<view class="screen"> //定义嵌套的两个view,第一个view将整个黑色的背景框固定下来
<view>000</view> //第二个view用于定位000的显示位置
</view>
.screen{ //class="screen" -->.screen{xxx}
position: fixed;
bottom: 750rpx;
word-wrap: break-word; /允许长单词换行到下一行:
width: 745rpx;
}
.screen view{ /嵌套的class可以直接通过.screen view{xxx}来调整嵌套在内部的各个属性
color: #fff; /白色
font-size: 30px; /字体大小
text-align: right; /字体靠右显示
margin-right: 30rpx; /距离右端30rpx
}
更改后模拟器界面如下所示:
/a2.wxml
<icon type="waiting"></icon>/更改前
<icon type="waiting" size='30' color="#999"></icon>/更改后
/a2.wxss,注意,这里不是.icon{},而是icon{}
icon{
position: absolute; /生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。
left: 55rpx;
top:37rpx;
}
button::after{ /将各个圆角按钮变成矩形按钮
border-radius: 0;
}
更改后的模拟器显示界面为:
/a2.wxml
<button class="btn-item gry">清除</button>/更改前
<button hover-class="shadow" class="btn-item gry">清除</button>/更改后(注:所有的按钮全部加上hover-class="shadow")
/a2.wxss
.shadow{
background: #999;
}
为了让大家更加直观的感受到,按键前后发生的变化,这里采用对比图
点击之前:点击完之后:
/a2.wxml中在整个界面中添加下面的代码块
<view class="btngroup">
<button hover-class="shadow" class="btn-item white">7</button>
<button hover-class="shadow" class="btn-item white">8</button>
<button hover-class="shadow" class="btn-item white">9</button>
<button hover-class="shadow" class="btn-item orange">*</button>
</view>
/a2.wxss 由于我们增加了一行,而整个界面是固定的,所以为了界面的美观我们应该更改按钮的高度
.btn-item{
width: 189rpx;
text-align: center;
line-height: 145rpx; /原来这里是180rpx
border-radius: 0;
}
更改后的模拟器界面如下所示:
/a2.js 原来的a2.js中的系统默认给我们的代码全部删除,增加如下代码 Page({ data: { /通过id值的不同来绑定每一个不同的按钮 id1:"clear", id2:"back", id3:"history", id4:"div", id5:"num_7", id6:"num_8", id7:"num_9", id8:"mul", id9:"num_4", id10:"num_5", id11:"num_6", id12:"sub", id13:"num_1", id14:"num_2", id15:"num_3", id16:"add", id17:"num_0", id18:"dot", id19:"equals", result:"0", }, })
/a2.wxml
<view class="screen">
<view>{{result}}</view>
</view> //更改前
<view class="screen">
<view>{{result}}</view>
</view> //更改后通过a2.js中data的result来绑定这个view的具体值
**********************************************************
//更改前
<button hover-class="shadow" class="btn-item gry">清除</button>
//更改后(通过使用我们a2.js中定义的键值对的键来标识不同的按钮)
<button id="{{id1}}" hover-class="shadow" class="btn-item gry">回退</button>
/a2.wxml
<button id="{{id1}}" hover-class="shadow" class="btn-item gry">清除</button>/更改前
<button id="{{id1}}" bindtap="clickButton" hover-class="shadow" class="btn-item gry">清除</button>/更改后
/a2.js Page({ data: { id1:"clear", id2:"back", id3:"history", id4:"div", id5:"num_7", id6:"num_8", id7:"num_9", id8:"mul", id9:"num_4", id10:"num_5", id11:"num_6", id12:"sub", id13:"num_1", id14:"num_2", id15:"num_3", id16:"add", id17:"num_0", id18:"dot", id19:"equals", result:"0", }, clickButton: function(e){ /实现对bindtap="clickButton"的clickvButton的功能函数 console.log(e); /打印log 具体可见log1图 var btnValue=e.target.id; /由图可知,我们的通过id绑定之后我们能够id来识别该按钮 var res=this.data.result; /通过res来接收并判断data中result的值 if(btnValue>="num_0"&&btnValue<="num_9"){ console.log(btnValue.split('_')); /打印log 具体可见log2图 var num=btnValue.split('_')[1]; /将id中num_1中的1分离出来 if(res=="0"){ /如果res还是等于0,那么说明数字按钮0按下了,那么显示屏上应该显示数字0 res=num; }else{ /如果res不等于0,那么我们就在该数字后面添加按下的数字 res=res+num; } } this.setData({ /通过setData 将按下的值传给data中的result:xxx,然后通过a2.wxml来显示我们更改的xxx的值 result: res, }); } })
因为有的小伙伴可能已经糊涂了,所以我把从开始写计算器开始到现在的代码贴出来,如下所示:
a2.js到现在的全部代码:
Page({ data: { id1:"clear", id2:"back", id3:"history", id4:"div", id5:"num_7", id6:"num_8", id7:"num_9", id8:"mul", id9:"num_4", id10:"num_5", id11:"num_6", id12:"sub", id13:"num_1", id14:"num_2", id15:"num_3", id16:"add", id17:"num_0", id18:"dot", id19:"equals", result:"0", }, clickButton: function(e){ console.log(e); var btnValue=e.target.id; var res=this.data.result; if(btnValue>="num_0"&&btnValue<="num_9"){ console.log(btnValue.split('_')); var num=btnValue.split('_')[1]; if(res=="0"){ res=num; }else{ res=res+num; } } this.setData({ result: res, }); } })
a2.wxml到现在的全部代码:
<view class="screen"> <view>{{result}}</view> </view> <view class="bottom"> <view class="btngroup"> <button id="{{id1}}" bindtap="clickButton" hover-class="shadow" class="btn-item gry">清除</button> <button id="{{id2}}" bindtap="clickButton" hover-class="shadow" class="btn-item gry">回退</button> <button id="{{id3}}" bindtap="clickButton" hover-class="shadow" class="btn-item gry"> <icon type="waiting" size='30' color="#999"></icon> </button> <button id="{{id4}}" bindtap="clickButton" hover-class="shadow" class="btn-item orange">/</button> </view> <view class="btngroup"> <button id="{{id5}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">7</button> <button id="{{id6}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">8</button> <button id="{{id7}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">9</button> <button id="{{id8}}" bindtap="clickButton" hover-class="shadow" class="btn-item orange">*</button> </view> <view class="btngroup"> <button id="{{id9}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">4</button> <button id="{{id10}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">5</button> <button id="{{id11}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">6</button> <button id="{{id12}}" bindtap="clickButton" hover-class="shadow" class="btn-item orange">-</button> </view> <view class="btngroup"> <button id="{{id13}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">1</button> <button id="{{id14}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">2</button> <button id="{{id15}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">3</button> <button id="{{id16}}" bindtap="clickButton" hover-class="shadow" class="btn-item orange">+</button> </view> <view class="btngroup"> <button id="{{id17}}" bindtap="clickButton" hover-class="shadow" class="btn-item zero white">0</button> <button id="{{id18}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">.</button> <button id="{{id19}}" bindtap="clickButton" hover-class="shadow" class="btn-item orange">=</button> </view> </view>
a2.wxss到现在的全部代码:
page{ background: #000; } .btngroup{ display: flex; flex-direction: row; } .btn-item{ width: 189rpx; text-align: center; line-height: 145rpx; border-radius: 0; } .zero{ width: 376rpx; } .bottom{ position: fixed; bottom: 0; } .white{ background:#EFEFED; } .orange{ background: #FC9504; } .gry{ background: #CFCFCF; } .screen{ position: fixed; bottom: 750rpx; word-wrap: break-word; width: 745rpx; } .screen view{ color: #fff; font-size: 30px; text-align: right; margin-right: 30rpx; } icon{ position: absolute; left: 55rpx; top:37rpx; } button::after{ border-radius: 0; } .shadow{ background: #999; }
log1图:log2图:按下0后的模拟器界面图:连续按下0123456789后的模拟器界面图:
/a2.js 新增加的部分,后面会有注释说明这一步产生的作用 Page({ data: { id1:"clear", id2:"back", id3:"history", id4:"div", id5:"num_7", id6:"num_8", id7:"num_9", id8:"mul", id9:"num_4", id10:"num_5", id11:"num_6", id12:"sub", id13:"num_1", id14:"num_2", id15:"num_3", id16:"add", id17:"num_0", id18:"dot", id19:"equals", result:"0", dotSign:false, /增加一个键值dotSign:false,用来判断如果小数点按下该值变为真,如果下次再按则不会再次出现小数点 }, clickButton: function(e){ console.log(e); var btnValue=e.target.id; /获取id的值,小数点的btnValue值为dot var res=this.data.result; var newDotSign=this.data.dotSign; /通过一个变量newDotSign来接收dotSign的值(true/false) if(btnValue>="num_0"&&btnValue<="num_9"){ console.log(btnValue.split('_')); var num=btnValue.split('_')[1]; if(res=="0"){ res=num; }else{ res=res+num; } }else{ /上面用来判断数字的显示,这里使用else来判断小数点的按下后是否显示 if (btnValue=="dot"){ /如果是小数点 if(!newDotSign){ /如果!newDotSign是为false,则代表添加小数点,如果为true,则不显示 res=res+'.'; /在数字的后面添加一个小数点,+代表连接符 newDotSign=true; /将newDotSign置为true,用于下一次判断按下小数点将不会显示 } } } this.setData({ result: res, dotSign:newDotSign, /通过设置dotSign: true/false更新整个的data的值 }); } })
更新代码后模拟器界面如下所示:
/a2.js clickButton: function(e){ console.log(e); var btnValue=e.target.id; var res=this.data.result; var newDotSign=this.data.dotSign; if(btnValue>="num_0"&&btnValue<="num_9"){ console.log(btnValue.split('_')); var num=btnValue.split('_')[1]; if(res=="0"){ res=num; }else{ res=res+num; } }else{ if (btnValue=="dot"){ if(!newDotSign){ res=res+'.'; newDotSign=true; } }else if(btnValue=="clear"){ /如果btnValue值等于清除 res="0"; /设置res=0,显示在屏幕上的就是0 newDotSign = false; /重新设置小数点为默认值false 表示可以再次按下显示 }else if(btnValue=="back"){ /如果btnValue值等于回退 var length=res.length; /通过length获取目前屏幕上res的长度,也就是上一次按键结束,这一次按键开始前屏幕上显示的数 if(length>1){ /如果长度>1 res=res.substr(0,length-1); /通过substr截图从0-倒数第二个数,然后更新res的值 }else{ /如果长度=1或者=0那么就会设置res的值为0 res="0"; } } } this.setData({ result: res, dotSign:newDotSign, }); } })
清除前模拟器的显示界面:清除后模拟器的显示界面:回退前模拟器的显示界面:长度>1是按下回退键之后的显示界面:长度=1/0时按下回退键之后的显示界面:
else if(btnValue=="back"){ var length=res.length; if(length>1){ res=res.substr(0,length-1); }else{ res="0"; } }else if(btnValue=="add"||btnValue=="sub"||btnValue=="mul"||btnValue=="div"){ /分别判断是否按下+-*/ newDotSign=false;/小数点置为false表示按下符号之后可以再次输入小数点(12.5+15.5) var sign; switch (btnValue){ /分别将add-->"+" sub-->"-"... case "add":sign = "+"; break; case "sub":sign = "-"; break; case "mul":sign = "*"; break; case "div":sign = "/"; break; } if(!isNaN(res.charAt(res.length-1))){ /判断显示屏最后一个是否为符合,如果是不能再次按下符号,必须按下其他的数字后才能再次按下符号 res = res + sign; } } } this.setData({ result: res, dotSign:newDotSign, });
按下符号键的模拟器界面如下:
/a2.wxml
<button id="{{id19}}" bindtap="equals" hover-class="shadow" class="btn-item orange">=</button>
/这里的bindtap="clickButton" 改为bindtap="equals"
this.setData({ result: res, dotSign:newDotSign, }); }, /注意,这里要加一个逗号来结束上一段功能函数代码的结束 equals:function(){ /等于号的函数功能编写 var str=this.data.result; /先获取显示屏上的数字和符号例如10+2*3-4 var strArr=[]; /定义一个数组用于分别存放数字和符号,存放方式为|10 + 2 * 3 - 4| var item=''; /定义一个item默认为空 var temp=0; for(var i=0;i<=str.length;i++){ /循环获取整个显示屏上的内容 var ch=str.charAt(i); /获取显示屏第i位的值为ch if((ch!=''&&ch>=0&&ch<=9)||ch=="."){ /如果ch!=空并且ch>=0 <=9 or ch==小数点 item=item+ch; /item后连接显示屏第i位的值ch 例如10+2*3-4 第一次循环是" "连接1 }else{ /如果是符号 strArr[temp]=item; /将item的值10存入 strArr[0]中 temp++; /temp=1 strArr[temp]=ch; /再将符号"+"存入strArr[1]中 temp++; /temp=2 item=''; /item清空 } } if (isNaN(strArr[strArr.length-1])){ /如果末尾有符号则清除末尾的符号,例如12+45+,则最后的"+"利用pop清除 strArr.pop(); } for (var i = 0; i <strArr.length; i++){ /依次打印数组中的每一项内容 console.log(strArr[i]); } }
(10+2*3-4)log图如下所示:将整个输入的值分别保存至数组中,从而将数字与符号分隔开
/|10+2*3-4|,首先获取第一个数10(res),然后获取第一个符号,然后获取第二个数2(num), 然后在进行res=res+num; 然后获取第二个符号*,然后获取第三个数3为新的num 然后进行res=res*num;接下来依次如此,知道算出来最后的res的值显示于主屏幕上 if (isNaN(strArr[strArr.length-1])){ strArr.pop(); } var res=strArr[0]*1; /这是按下等于号之后的将res的值变化为第一个数,例如按下7 接着按下=,则会出现=7 var num; for(var i=1;i<strArr.length;i=i+2){ 两位两位跳,直接将符号提取出来 if(res=="∞"){ /如果res=无穷大,那么直接跳出,显示=∞ break; } num=strArr[i+1]*1; /数字等于符号后面的数 switch (strArr[i]){ /判断符号为哪一个就执行哪一种运算 case '+': res = res + num; break; 1+1=2 那么2就是新的res的值 case '-': res = res - num; break; case '*': res = res * num; break; case '/': if(num!=0){ /如果分母为0,则res为无穷大,如果不为0,则进行除法运算 res = res / num; }else{ res="∞"; } break; } } this.setData({ result:"="+res, /设置result的值为=xxx }); }
那么我们整个的计算器的基本功能算是完成了,下面小编将贴出来所有的代码,大家如果跟着我的步伐来,那么对于整个的逻辑和思路会比较清晰。
//a2.js Page({ data: { id1:"clear", id2:"back", id3:"history", id4:"div", id5:"num_7", id6:"num_8", id7:"num_9", id8:"mul", id9:"num_4", id10:"num_5", id11:"num_6", id12:"sub", id13:"num_1", id14:"num_2", id15:"num_3", id16:"add", id17:"num_0", id18:"dot", id19:"equals", result:"0", dotSign:false, }, clickButton: function(e){ console.log(e); var btnValue=e.target.id; var res=this.data.result; var newDotSign=this.data.dotSign; if(btnValue>="num_0"&&btnValue<="num_9"){ console.log(btnValue.split('_')); var num=btnValue.split('_')[1]; if (res == "0" || res.charAt(res.length - 1) == '∞'){ res=num; }else{ res=res+num; } }else{ if (btnValue=="dot"){ if(!newDotSign){ res=res+'.'; newDotSign=true; } }else if(btnValue=="clear"){ res="0"; newDotSign = false; }else if(btnValue=="back"){ var length=res.length; if(length>1){ res=res.substr(0,length-1); }else{ res="0"; } }else if(btnValue=="add"||btnValue=="sub"||btnValue=="mul"||btnValue=="div"){ newDotSign=false; var sign; switch (btnValue){ case "add":sign = "+"; break; case "sub":sign = "-"; break; case "mul":sign = "*"; break; case "div":sign = "/"; break; } if(!isNaN(res.charAt(res.length-1))){ res = res + sign; } } } this.setData({ result: res, dotSign:newDotSign, }); }, equals:function(){ var str=this.data.result; var strArr=[]; var item=''; var temp=0; for(var i=0;i<=str.length;i++){ var ch=str.charAt(i); if((ch!=''&&ch>=0&&ch<=9)||ch=="."){ item=item+ch; }else{ strArr[temp]=item; temp++; strArr[temp]=ch; temp++; item=''; } } if (isNaN(strArr[strArr.length-1])){ strArr.pop(); } var res = parseInt(strArr[0]); var num; for(var i=1;i<strArr.length;i=i+2){ if(res=="∞"){ break; } num=strArr[i+1]*1; switch (strArr[i]){ case '+': res = res + num; break; case '-': res = res - num; break; case '*': res = res * num; break; case '/': if(num!=0){ res = res / num; }else{ res="∞"; } break; } } this.setData({ result:"="+res, }); } })
//a2.wxml <view class="screen"> <view>{{result}}</view> </view> <view class="bottom"> <view class="btngroup"> <button id="{{id1}}" bindtap="clickButton" hover-class="shadow" class="btn-item gry">清除</button> <button id="{{id2}}" bindtap="clickButton" hover-class="shadow" class="btn-item gry">回退</button> <button id="{{id3}}" bindtap="clickButton" hover-class="shadow" class="btn-item gry"> <icon type="waiting" size='30' color="#999"></icon> </button> <button id="{{id4}}" bindtap="clickButton" hover-class="shadow" class="btn-item orange">/</button> </view> <view class="btngroup"> <button id="{{id5}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">7</button> <button id="{{id6}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">8</button> <button id="{{id7}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">9</button> <button id="{{id8}}" bindtap="clickButton" hover-class="shadow" class="btn-item orange">*</button> </view> <view class="btngroup"> <button id="{{id9}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">4</button> <button id="{{id10}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">5</button> <button id="{{id11}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">6</button> <button id="{{id12}}" bindtap="clickButton" hover-class="shadow" class="btn-item orange">-</button> </view> <view class="btngroup"> <button id="{{id13}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">1</button> <button id="{{id14}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">2</button> <button id="{{id15}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">3</button> <button id="{{id16}}" bindtap="clickButton" hover-class="shadow" class="btn-item orange">+</button> </view> <view class="btngroup"> <button id="{{id17}}" bindtap="clickButton" hover-class="shadow" class="btn-item zero white">0</button> <button id="{{id18}}" bindtap="clickButton" hover-class="shadow" class="btn-item white">.</button> <button id="{{id19}}" bindtap="equals" hover-class="shadow" class="btn-item orange">=</button> </view> </view>
//a2.wxss page{ background: #000; } .btngroup{ display: flex; flex-direction: row; } .btn-item{ width: 189rpx; text-align: center; line-height: 145rpx; border-radius: 0; } .zero{ width: 376rpx; } .bottom{ position: fixed; bottom: 0; } .white{ background:#EFEFED; } .orange{ background: #FC9504; } .gry{ background: #CFCFCF; } .screen{ position: fixed; bottom: 750rpx; word-wrap: break-word; width: 745rpx; } .screen view{ color: #fff; font-size: 30px; text-align: right; margin-right: 30rpx; } icon{ position: absolute; left: 55rpx; top:37rpx; } button::after{ border-radius: 0; } .shadow{ background: #999; }
//a2.json
{
"usingComponents": {}
}
更改代码后模拟器截图如下所示:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。