使用響應式布局MediaQuery解決text組件在不同分辨率機型上文字顯示不一致的問題


問題概述

text組件,設定寬度,文字鋪滿對應寬度,高分辨率機型加載文字壓縮,聯盟存在同樣問題

 

復現步驟

1、加載demo

2、組件-->基礎組件-->text組件

 

實際行為

1、低配機型加載正常 2、高分辨率機型加載文字壓縮

 

驗證

找了兩台設備 ,其分辨率分別是2340 * 1080和2560 * 1600, 分別對一下樣式進行驗證

<text style="width: 172px;">text-align:center</text>2340 * 1080

 

 

可以明顯看到完整貼和邊緣

抓取布局得到布局寬度是 248 pixel

172 * (1080 / 750) = 247.68 四舍五入為248

 

2560 * 1600

 

可以看到布局不下了,被換行了

抓取布局得到布局寬度是 367 pixel

172 * (1600 / 750) = 366.9 四舍五入為367

 

驗證結果

 

  • 在2560 * 1600的設備上完整布局這行文本需要175px;

  • 在2340 * 1080的設備上完整布局這行文本需要172px;

 

分析

2560 * 1600

textsize = 64.0

2340 * 1080

textsize = 43.0

實際上是不同設備下的生效的textsize是不一樣的,所以最終生成的布局寬度可能不是一個固定的寬度

 

解決

快應用提供了MediaQuery能力,可以用來適配不同分辨率的設備

在這里就可以使用mediaquery判斷屏幕寬度的方式

 

例子

 

  • 使用前

<template>    
<div>        
<text>text-align:left</text>    
</div>
</template>
 <style>    
 .text-test {
         width: 172px;    
}</style>
  • 效果

 

  • 使用后

<template>
    <div>
        <text class="text-test">text-align:left</text>
    </div>
</template>

<style>
    @media (width > 1080) {
        .text-test {
            width: 175px;
        }
    }
    .text-test {
        width: 172px;
    }
</style>
  • 效果

 

適配方案
  • 首先找到不同分辨率的設備,使用ide的inspact功能獲取到期望的寬度值

2560 \* 1600需要的寬度是175px; 2340 * 1080需要的是172px;

  • 使用mediaquery對不同設備進行區分

 

這里判斷一下設備寬度

@media (width > 1080) { 
       .text-test {
                   width: 175px;        
                   }    
         }

原文鏈接:https://developer.huawei.com/consumer/cn/forum/topic/0204423007060260633?fid=18

原作者:Mayism


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM