关于hms-core:如何解决div样式拉伸问题

32次阅读

共计 1730 个字符,预计需要花费 5 分钟才能阅读完成。

景象形容:

当 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

正文完
 0