flex实现小程序自适应图文列表

分享者:武兵,来自公众号图说前端
需求:
1.左侧头像和右侧按钮区域宽度固定。
2.文字内容区域高度宽度自动。
3.3个区块垂直居中对齐。
4.头像和文字区域加链接。
5.按钮另外加链接。

在这里插入图片描述
在这里插入图片描述
1.因为头像和文字区域要加链接,所以装在一个navigator,关注按钮是右侧navigator。
2.左侧的navigator中再分头像和文字区域。

wxml:

<!--小程序中没有列表元素,用view-->
<view class="anglesList"> 
  <navigator url="http://xwbline.com/" class="anglesNavigator"> 
    <--图片套个view是为了渐变的边框(其实是背景色渐变,border-radius后border写不上渐变)。--> 
    <view class="imgBox"> 
      <image src=" " mode="aspectFill"></image> 
      <--images中的mode="aspectFill"让图片保持纵横比缩放,让图片的短边能完全显示出来。确保取到的图片不是正方形时不留空白。--> 
    </view> 
    <view class="textBox"> 
      <text class="name">姓名</text>
      <text class="companyName">公司名职位名</text> 
      <text class="num">已有600人关注</text> 
    </view> 
  </navigator> 
  <navigator url="http://xwbline.com/" class="btnFollowed">关注</navigator> 
</view>

wxss:
只写主要的样式。

.anglesList{ 
  display:flex;//使用flex布局 
  align-items:center;//子元素在垂直方向居中对齐 
  padding:25rpx 25rpx 25rpx 0;//留出边距 
  margin-left:25rpx;//其实可以写在内边距中 
  border-bottom:1px solid #f1f1f1; 
} 
//anglesList的子元素指两个navigator 
//头像和内容区域
.anglesList .anglesNavigator{ 
  display:flex;//头像和内容区域启动flex布局 
  align-items:center;//子元素在垂直方向居中对齐 
  flex-grow:1;//放大,占据剩余的空间 
} 
//头像父层
.anglesList .imgBox{ 
  flex:0 0 110rpx;//flex 是flex-grow, flex-shrink 和 flex-basis的简写。flex:0 0 110rpx的意思是不放大 不缩小 固定宽度是110rpx 
  width:110rpx; 
  height:110rpx; 
  border-radius:50%; 
  padding:5rpx; 
  margin-right:20rpx; 
  background:linear-gradient(#fff,#6a6969); 
} 
//头像
.anglesList .imgBox image{ 
  width:110rpx; 
  height:110rpx; 
  border-radius:50%; 
} 
//文字区域
.anglesList .textBox{ 
  flex-grow:1;//放大,占据剩余的空间。 
} 
//文本限制宽度,超出隐藏 
.anglesList text{ 
  display:block; 
  max-width:12em; 
  overflow:hidden; 
  white-space:nowrap; 
  text-overflow:ellipsis; 
}
//按钮 
.btnFollow{ 
  flex-basis:140rpx; //指定宽度,也可以写width
  height:46rpx; 
  border:1px solid #007ae8; 
  border-radius:24rpx; 
  background:#fff; 
  text-align:center; 
  font-size:28rpx; 
  line-height:46rpx; 
  color:#007ae8; 
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值