display: flex;’布局下使用‘white-space: nowrap;’导致的问题

2019/5/13 22:09:26 人评论 次浏览 分类:开发资料

需求:

在item中实现布局预期效果为:左侧一个正圆形的用户头像,右侧的上方为该用户昵称、下方为个性签名(单行显示,超出实际能显示的最大宽度则用‘...’代替)。如图:

代码:

wxml布局:

<view class="member-item">
    <image class="avatar" src=""></image>
    <view class="info">
      <view class="name">姓名</view>
      <view class="signature">这个人很懒,什么都没写。这个人很懒,什么都没写。</view>
    </view>
  </view>

wxss样式:

.member-item {
  margin-top: 1px;
  padding: 15rpx 30rpx;
  display: flex;
  flex-direction: row;
  background-color: white;
  width: auto;
}
 
.avatar {
  background-color: whitesmoke;
  width: 96rpx;
  height: 96rpx;
  border-radius: 50%;
}
.info {
  display: flex;
  flex-direction: column;
  margin-left: 30rpx;
  flex: 1;
}
.name {
  font-size: 30rpx;
  color: #333;
  line-height: 48rpx;
}
.signature {
  font-size: 28rpx;
  color: #888;
  line-height: 48rpx;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

效果:

问题:

为了自适应屏幕大小,这里父布局采用flex,展示个性签名的view对应的class为signature,其中我通过“overflow: hidden; text-overflow: ellipsis; white-space: nowrap;”来实现单行显示,超出实际能显示的最大宽度则用‘...’代替的效果。但是在实际效果如上图所示,当内容超出实际可显示宽度时,挤压推出左侧布局以显示signature中的内容,导致左侧布局的变形甚至被挤出。

解决办法:

在signature的父布局info中添加样式 min-width: 0; 即可解决。

赞赏

相关教程

  • 微信小程序卡券开发(亲测)

    提示:小程序卡券和公众平台调用基本一致,请先查看公众平台卡券文档一、公众帐号/小程序绑定由于微信卡券用的是一套逻辑。所以小程序需要先和公众账号绑定,才能在小程序中调起公众平台卡券登录微信公众平台:https://open.weixin.qq.com/ 进行绑定操作二、公众号卡券添加小……

    2017/6/3 18:45:01

共有访客发表了评论 网友评论

验证码: 看不清楚?