nvue下多个text标签一行显示,超出自动换行

需求背景:

在做一个直播聊天室(主播页用了nvue)聊天室显示访客进来的昵称和消息内容字体得分开显示。例如:

 

 

 

难题所在:

开始就以为是写的样式得问题。为了一行,flex-direction: row; 该属性试了但是确实可以同行,但是不会换行。众所周知:nvue下得文字必须在text标签下才能显示正常,不然你的样式就不起效果了(会是默认得样式和字体,一半很丑)。但是如果你里面只用一个text标签显示肯定就是没用问题的......就是一半UI不给这么干!

解决问题

以下面的为示例:采用rich-text代替红色加粗部分

<list class="listview" :scrollable="true" :scroll-y="true" :show-scrollbar="false"
id="msgScroll" ref="msgScroll">

<cell v-for="(item, index) in messageList" :key="item.msgId" >
<div class="cell">
<!-- <text class="msg-name">{{item.name}}</text>
<text class="msg-item">{{item.message}}</text> -->
<rich-text :nodes="richNodes(item)"></rich-text>
</div>
</cell>
<cell class="cell">
<text class="msg-itemGao">公告:平台公告:欢迎来到直播间!苏跃小Q直播倡导绿色直播,如果直播间出现违法违规行为,请及时举报。为了您的购物安全,请在右下角"小红袋"官方渠道选购商品</text>
</cell>
</list>

 

逻辑部分:

richNodes(item){
return [{
children: [
{
type: 'text',
attrs: {
class:'msg-name'
},
text: item.name+':'
},
{
type: 'text',
attrs: {
class:'msg-item'
},
text: item.message
}
]
}]
}

 

css部分:

.listview {
width: 500rpx;
height: 500rpx;
border-radius: 20rpx;
transform: rotate(180deg);
flex:1;
padding:0 10rpx;
}

.cell {
padding: 6rpx;
margin: 6rpx 0;
border-radius: 10rpx;
background-color: rgba(0, 0, 0, 0.3);
transform: rotate(180deg);

}
.msg-name {
color: #fed93a;
font-size: 32rpx;
}

.msg-item {
color: #f3f3f3;
font-size: 32rpx;
}

感悟:
在vue能用的css在nvue里未必行得通啊。天无绝人之路。加油。奥里给!

 

posted @ 2021-07-08 17:57  Robot666  阅读(4829)  评论(3编辑  收藏  举报