IONIC 字体大小在不同设备中看起来不同

Posted

技术标签:

【中文标题】IONIC 字体大小在不同设备中看起来不同【英文标题】:IONIC font size looks different in different devices 【发布时间】:2017-12-24 11:31:03 【问题描述】:

我正在开发一个使用 ionic 作为 UI 部分的 android 应用;当我在不同的设备上查看我的应用程序时,会出现一些 CSS 问题。 现在我有两个平板电脑: 1- 一台联想 TAB2,屏幕尺寸为 9.43 英寸,160 dpi,屏幕分辨率为 1280 x 800。 2-一个联想idea-tab,屏幕尺寸为10.1英寸,149 dpi,屏幕分辨率为800 x 1280像素。

我的应用在创意选项卡上看起来漂亮而整洁。但是在 TAB2 中,font-size 的图标看起来更大——即使它们接收到相同的样式并且我已经在chrome:inspect 中确定了这一点,文本部分也会发生同样的事情。 例如,在第一页上,当我检查chrome:inspect 时,所有图标都有font-size:190px;,但它们在TAB2 上看起来更大,并且都浮动到其容器的左按钮部分。

这与我的平板电脑的分辨率和屏幕尺寸有关吗?我在这里遗漏了什么重要的东西吗?

提前致谢。

P.S.:如果有帮助,我在最后添加了我的第一页代码。

<ion-content level-ionside-shifter>
        <div class="home-container"
             ng-class="'compact' : (CompactValue == 1), 'fa-font r2l' : (TranslationValue == 1)">
            <ion-slide-box on-slide-changed="slideHasChanged($index)" class="slider-content"
                           >
                <ion-slide>
                    <div class="row">
                        <div class="col col-20 scale-hover">
                            <div class="home-btn color-a" ui-sref="app.factories">
                                <i class="icon icon-diagnostic"></i>
                                <span>"D_DIAGNOSTICS" | translate</span>
                            </div>
                        </div>

                        <div class="col col-20 scale-hover">
                            <div class="home-btn color-b" ng-click="goToBTPage()">
                                <i class="icon icon-vci"></i>
                                <span>"D_VCI" | translate</span>
                            </div>
                        </div>

                        <div class="col col-20 scale-hover">
                            <div class="home-btn color-c" ng-click="goToUpdatePage()">
                                <i class="icon icon-update"></i>  
                                <span>"D_UPDATE" | translate</span>
                            </div>
                        </div>
                    </div>

                </ion-slide>

            </ion-slide-box>
        </div>
    </ion-content>

这就是 css 的编写方式:

   .home-container 
  .slider-slides 
    left: 650px;
  
  clear: both;
  box-decoration-break: clone;
  height: 100%;
  .slider 
    display: flex;
    -webkit-flex-direction: column;
    -webkit-align-items: center;
    -webkit-justify-content: center;
    height: 100%;
    justify-content: center;
    align-items: center;
    padding-bottom: 8%;
    clear: both;

  
  .slider-slides 
    height: initial;
  
  .slider-pager 
    #$position-inverse: 0;
    bottom: 75px;
  
  .col 
    position: relative;
  
  .row 
    display: flex;
    padding: 5px;
    width: 100%;
    margin: auto;
    align-items: center;
    justify-content: center;
  
  .row-2 
    padding-top: 4%;
  
  .col-offset-r 
    margin-right: 0;
  
  .col-offset-l 
    margin-left: 0;
  
  .slider-pager .slider-pager-page 
    color: #6b69a5;
  
  .home-btn 
    position: relative;
    display: block;
    background: $color-f;
    text-align: center;
    width: 130px;
    height: 130px;
    margin: auto;
    border-radius: 15px;
    box-shadow: 0 4px 0 darken($color-f, 17%);
    @include transition(0s);
    span 
      position: absolute;
      display: block;
      margin: auto;
      width: 140%;
      margin-left: -20%;
      margin-right: -20%;
      bottom: -35px;
      color: #fff;
      text-shadow: 0 2px 3px #000;
      cursor: default;
      //font-size: 1.2em;
      @if $font_choice == 1
        font-size: $font_mainMenu_small;
    
      @if $font_choice == 2
        font-size:$font_mainMenu_middle;
      
      @if $font_choice == 3
        font-size:$font_mainMenu_large;
      
    
    i 
      position: absolute;
      display: block;
      width: 130px;
      height: 130px;

      margin: auto;
      text-align: center;
      vertical-align: middle;
      font-size: 130px;
      color: #fff;
      &:before
        margin-left: -100%;
        margin-right: -100%;
        top:-50%;
      
    

    em 
      position: absolute;
      display: block;
      top: -10px;
      right: -10px;
      font-style: normal;
      text-align: center;
      color: $color-c;
      background: #fff;
      padding: 8px 10px;
      border-radius: 50%;
      min-width: 36px;
      box-shadow: 0 0 7px darken($color-c, 17%);
    
    &.color-a 
      background: $color-a;
      box-shadow: 0 4px 0 darken($color-a, 17%);
    
    &.color-b 
      background: $color-b;
      box-shadow: 0 4px 0 darken($color-b, 17%);
    
    &.color-c 
      background: $color-c;
      box-shadow: 0 4px 0 darken($color-c, 17%);
    
    &.color-d 
      background: $color-d;
      box-shadow: 0 4px 0 darken($color-d, 17%);
    
    &.color-e 
      background: $color-e;
      box-shadow: 0 4px 0 darken($color-e, 17%);
    
    &.color-f 
      background: $color-f;
      box-shadow: 0 4px 0 darken($color-f, 17%);
      i 
        color: #505258;
      
    
    &:active, &:focus 
      transform: scale(0.9) !important;
      -webkit-transform: scale(0.9) !important;
    
    &.hover 
      transform: scale(0.9) !important;
    
  

P.P.S:我在 index.html 上的元标记是这样的:

<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">

【问题讨论】:

您是否在 index.html 中使用了任何元标记? @SwapnilPatwa A...是的。它是这样的: 它与设备的像素密度有关。看看github.com/ionic-team/ionic/issues/1352 和***.com/questions/16390762/… 如果您尝试将 px 更改为 rem 或其他任何内容,请告诉我。 您也可以尝试减小设备字体大小。 setting&gt;display&gt;font size. 【参考方案1】:

您可以尝试减小设备字体大小settings &gt; display &gt; font size

【讨论】:

以上是关于IONIC 字体大小在不同设备中看起来不同的主要内容,如果未能解决你的问题,请参考以下文章

Photoshop 模拟字体与 HTML 中的不同

如何使用 Xcode Storyboard 为不同的设备设置不同的字体大小?

将UIView中UILabel的字体大小调整为不同的设备大小

如何通过一次声明使字体大小响应不同尺寸的设备[重复]

Chrome 在设备上以不同的方式呈现基于 em 的字体大小

自动调整不同设备字体大小的最佳方法?