开始
第一行
第一行分为左右两边,左边是头像
头像参考官方文档
https://uniapp.dcloud.io/component/image.html
输入uim会提示
选择uImage
这里准备好的一些图片素材。
正常情况下mode如果不设置的话,图片会被压缩
这样不会被压缩和拉伸。
lazy-load不需要传任何参数。
头像后面跟着昵称
<view class="index-list1">
<view>
<image src="../../static/demo/userpic/12.jpg"
mode="widthFix" lazy-load></image>
</view>
<view>
</view>
</view>
右侧
右键检查元素
<view>
<view class="icon iconfont icon-zengjia"></view>
</view>
第2、3行
2行直接是文字。
第三行还是图片,
<view class="index-list2">我是标题</view>
<view class="index-list3">
<image src="../../static/demo/userpic/11.jpg" mode="widthFix" lazy-load></image>
</view>
第四行
也是分为左右两边
评论的图标
转发
<view class="index-list4">
<view class="">
<view class=""><view class="icon iconfont icon-icon_xiaolian-mian"></view>10</view>
<view class=""><view class="icon iconfont icon-kulian"></view>10</view>
</view>
<view class="">
<view class=""><view class="icon iconfont icon-pinglun1"></view>10</view>
<view class=""><view class="icon iconfont icon-zhuanfa"></view>10</view>
</view>
</view>
css
最外层的,然后里面有1234
.index-list{
}
.index-list1{
}
.index-list2{
}
.index-list3{
}
.index-list4{
}
和旁边都是有边距的,增加一个外边距
最下面有1条横线
上下左右的间距,和底部的边框
.index-list{
padding: 20upx;
border-bottom: 1upx solid;
}
输入flex搜索,官方也封装了flex布局。
这里我们就自己写,先不用官方封装好的了。
第一行是flex布局。水平方向排列,又分为左右两边。
水平方向,左右两个靠边。
垂直方向居中。
.index-list1{
display: flex;
justify-content: space-between;
align-items: center;
}
最后一行也是同样的布局方式
我们把1的样式复制到4这里即可,
最后一行现在是左右两边的布局了
头像的宽高。
里面分为两个view
.index-list1>view:first-child{
}
.index-list1>view:last-child{
}
头像也是flex布局,水平居中即可,
关注和加号,也必须是水平方向的,也是flex布局。和上面一样。
最后一行的原理也是一样的。都是flex布局,然后都居中显示。
.index-list4>view:first-child{
display: flex;
align-items: center;
}
.index-list4>view:last-child{
display: flex;
align-items: center;
}
头像。先给90upx
.index-list1>view:first-child image {
width: 90upx;
height: 90upx;
}
底部的两个必须要水平方向。view下面的view
.index-list4>view>view{
display: flex;
align-items: center;
}
中间的图片没有占满全部
3下面的image.图片宽度设置为100%,然后加上圆角
.index-list3>image{
width: 100%;
border-radius: 20upx;
}
头像圆角。纯圆的,就设置为100%
.index-list1>view:first-child image {
width: 90upx;
height: 90upx;
border-radius: 100%;
}
根据参考图,调整一下,
头像和昵称之间有间距,
.index-list1>view:first-child image {
width: 90upx;
height: 90upx;
border-radius: 100%;
margin-right: 10upx;
}
昵称的字体颜色,用吸色器,吸取一下。
.index-list1>view:first-child{
display: flex;
align-items: center;
color: #999999;
}
关注按钮的样式
有背景色,加上一点点的圆角。
.index-list1>view:last-child{
display: flex;
align-items: center;
background: #929292;
border-radius: 5upx;
}
标题和上下都有间距
.index-list2{
padding-top: 15upx;
}
.index-list3{
padding-top: 15upx;
}
最后一行和上面也是有间距
第四行 图标的颜色
第四行下面所有的view的 字体颜色
.index-list4 view{
color: #999999;
}
关注按钮颜色 重新吸取
.index-list1>view:last-child{
display: flex;
align-items: center;
background: #F4F4F4;
border-radius: 5upx;
}
第四行所有的图标,都加上右间距。三层view
.index-list4>view>view>view{
margin-left: 15upx;
}
数字后面的间距,就是第一个view和第二个view之间的间距
先把这个改成10
.index-list4>view>view>view{
margin-right: 10upx;
}
.index-list4>view>view:first-child{
margin-right: 10upx;
}
最下面的线
取色器 取颜色
关注的按钮,左右两边没有间距了。
这俩先和到一起。
合起来,下面的删除。
上下为0 左右为10upx
.index-list1>view:last-child{
display: flex;
align-items: center;
background: #F4F4F4;
border-radius: 5upx;
padding: 0 10upx;
}
这个先删除
文章标题的文字
.index-list2{
padding-top: 15upx;
font-size: 32upx;
}
优化代码
有太多的display为flex 和 align-items为center。这些都可以封装起来。
用u-f取代display为flex
align-items也是很重复。
.u-f,.u-f-ac,.u-f-ajc{
display: flex;
}
.u-f-ac,.u-f-ajc{
align-items: center;
}
.u-f-ajc{
justify-content: center;
}
替换flex样式
开始替换。比如这里原来是用的flex布局
第一行和第三行都删除
删除后
用u-f-ac。它既是flex布局 还是居中。
<view class="index-list1 u-f-ac">
删除后
第一行的左边
第一行的右边
删除后
第一行的右边也是这样的
第四行的左边和右边
第四行
删除后
<view class="index-list4 u-f-ac">
也就是第四行view下面的view
<view class="index-list4 u-f-ac">
<view class="u-f-ac">
<view class="u-f-ac"><view class="icon iconfont icon-icon_xiaolian-mian"></view>10</view>
<view class="u-f-ac"><view class="icon iconfont icon-kulian"></view>10</view>
</view>
<view class="u-f-ac">
<view class="u-f-ac"><view class="icon iconfont icon-pinglun1"></view>10</view>
<view class="u-f-ac"><view class="icon iconfont icon-zhuanfa"></view>10</view>
</view>
</view>
头像大小再改下
.index-list1>view:first-child image {
width: 95upx;
height: 90upx;
border-radius: 100%;
margin-right: 10upx;
}
封装左右两边靠边
.u-f-jsb{
justify-content: space-between;
}
<view class="index-list1 u-f-ac u-f-jsb">
删
<view class="index-list4 u-f-ac u-f-jsb">
都是margin-right
用逗号合并到一行里面
.index-list4>view>view>view,.index-list4>view>view:first-child{
margin-right: 10upx;
}
公共css封装
新建common.css
.u-f,.u-f-ac,.u-f-ajc{
display: flex;
}
.u-f-ac,.u-f-ajc{
align-items: center;
}
.u-f-ajc{
justify-content: center;
}
.u-f-jsb{
justify-content: space-between;
}
App.vue内引入公共样式
/* 公共样式 */
@import './common/common.css';