开始
第一行
第一行分为左右两边,左边是头像
头像参考官方文档
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';




