微信小程序15 搜索框和tab项的结构与样式,无功能
一般来说首页上都会有搜索的功能,那么我们来加个搜索框试试
在newlist上继续操作
简单搜索框的布局和样式
页面上
<view class="headClass"> <input type="text" placeholder="请输入"></input> </view>
但是这样太丑了,完善一下样式
.headClass{ background-color: silver; height: 40px; overflow: hidden; } .headClass input{ width: 80%; background-color: white; color: black; margin: 10px auto auto auto; border-radius: 5px;
font-size: 12px;
padding-left: 5px;
padding-right: 5px;
}
样式这个东西不经常写前端的可能不太熟,但是简单的一些样式效果、布局啥的百度一下都能查到,一般来说也不会考虑特别复杂的样式。
稍微解释一下,按顺序。
.headClass 设置了 背景色,高度,overflow控制的是高度的溢出效果,配合input里的 margin-top 来让输入框处于view的中间。
.headClass input 设置了宽度,背景色,文字颜色,margin 是 简写的 分别是 top,left,right,buttom的元素距离,
border-radius 是让输入框是圆角好看些,
设置文本字体大小为12px
最后设置左右填充5px,这个就类似上面margin的详细写法,分别是设置left和right部分,看起来比较直观点。
效果,虽然难看但是是我们手动写的哈哈哈哈。
Tab切换
除了搜索框,我们在很多网站,app,小程序都见过Tab切换的功能。
在html基本都是用标签ul>li实现,但是小程序里可没这个
一般用view+text
还是在newlist上添加
都挤在一块了,完善样式让它好看点。
.tabClass{ font-size: 16px; line-height: 30px; border-bottom: 1px solid silver; }
.tabClass定义了字体大小,行高,以及下边框的样式
text也需要控制样式
.tabClass text{ margin-left: 11%; font-weight: bold; }
.tabClass text 设置了 text标签左侧间距,按百分比是考虑不同的手机屏幕宽度(其实这种设置都是按百分比比较好,示例就随意了,想用啥用啥),然后字体加粗
一般来说,我们选中的tab项,需要有个高亮提示,因此再加一个样式
.tabClass text.select{ color: red; }
限定必须是 带 select的字体变成红色
同时给第一个text加上class=select 就行,表示默认显示 “关注”,这里不写了。
效果如图
切换事件
加上切换效果
页面加上方法,参数,和控制代码
<view class="tabClass"> <text class="{{selectIndex==1?'select':''}}" bind:tap="selectItem" data-itemIndex="1">关注</text> <text class="{{selectIndex==2?'select':''}}" bind:tap="selectItem" data-itemIndex="2">推荐</text> <text class="{{selectIndex==3?'select':''}}" bind:tap="selectItem" data-itemIndex="3">文章</text> <text class="{{selectIndex==4?'select':''}}" bind:tap="selectItem" data-itemIndex="4">视频</text> </view>
js中data增加一个selectIndex变量,默认值是 1,增加方法
selectItem(e){ this.setData({ selectIndex: e.currentTarget.dataset.itemindex }); }
这样切换时text里的文字会变红。