景象形容:
当text组件的内容较多且显示多行的时候,相邻的div款式会显示异样,会从失常的圆形变为椭圆。
问题代码如下:
<template> <div class="container"> <div style="align-items: center;"> <div class="typscolor" style="background-color: blue; opacity: 0.26; margin-left: 16px;"></div> <text>{{text}}</text> <div class="typscolor" style="background-color: blue; opacity: 0.26; margin-left: 16px;"></div> <text>{{text}}</text> <div class="typscolor" style="background-color: blue; opacity: 0.26; margin-left: 16px;"></div> <text>{{text}}</text> </div> </div></template><style> .container { flex-direction: column; justify-content: center; height: 100%; } text { font-size: 24px; } .typscolor { border-radius: 50%; width: 30px; height: 30px; background-color: red; margin-right: 8px; }</style><script> module.exports = { data: { text:'text文本内容过多时右边的圆圈会被拉伸' }, onInit() { }, } </script>
代码运行成果,如下图所示:
图1 异样
图2 失常
问题剖析:
当text组件内容过多时,text组件宽度减少,相邻div宽度不够,flex布局宽度超出会主动压缩,从而导致div标签被拉伸了。
解决办法:
能够给div标签设置flex-shrink: 0属性,显示指定不压缩,即可解决该问题。
批改代码如下:
<template> <div class="container"> <div style="align-items: center;"> <div class="typscolor" style="background-color: blue; opacity: 0.26; margin-left: 16px;"></div> <text>{{text}}</text> <div class="typscolor" style="background-color: blue; opacity: 0.26; margin-left: 16px;"></div> <text>{{text}}</text> <div class="typscolor" style="background-color: blue; opacity: 0.26; margin-left: 16px;"></div> <text>{{text}}</text> </div> </div></template><style> .container { flex-direction: column; justify-content: center; height: 100%; } text { font-size: 24px; } .typscolor { border-radius: 50%; width: 30px; height: 30px; background-color: red; margin-right: 8px; flex-shrink: 0; /*加上该属性即可解决拉伸问题*/ }</style><script> module.exports = { data: { text:'text文本内容过多时右边的圆圈会被拉伸' }, onInit() { }, } </script>
批改后代码运行成果如下图所示:
欲了解更多详情,请参见:
快利用通用款式介绍:
https://developer.huawei.com/...
原文链接:https://developer.huawei.com/...
原作者:Mayism