在item中实现布局预期效果为:左侧一个正圆形的用户头像,右侧的上方为该用户昵称、下方为个性签名(单行显示,超出实际能显示的最大宽度则用‘...’代替)。如图:xss
<view class="member-item"> <image class="avatar" src=""></image> <view class="info"> <view class="name">姓名</view> <view class="signature">这我的很懒,什么都没写。这我的很懒,什么都没写。</view> </view> </view>
.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;
便可解决。flex