Chrome 降低父级字体大小时不会缩小 em 值

Chrome doesn't scale down em value when lowering the font-size of the parent

问题

这是原始的 DOM 元素。它在 Firefox 和 Chrome.

上显示相同

当元素的父元素的字体大小设置为 0.6em 时,元素在 Firefox 36.0.1 上的显示方式如下。这已正确缩小到 60%。

这是当元素的父元素的字体大小设置为 0.6em 时元素在 Chrome 41.0.2272.104 上的显示方式。有些事情似乎缩小到 60%,而其他事情保持不变。这是不正确的。如何使 Chrome 的行为与 Firefox 相同?

背景

我的网站设置为使 1em 等于 10px。

body {
 font-size: 62.5%;
}

我使用 em 单位来调整任何我想轻松缩放的大小。我知道使用 em 是一门垂死的艺术,但我仍然认为它是缩放复杂 DOM 对象的最简单方法 - 您需要做的就是更改其父项的字体大小,所有后代都会缩放。

在我的特殊情况下,当屏幕变小时,我需要元素看起来是其原始大小的 60%。所以我改变了它父级的字体大小:

@media (max-width:960px) {
    #pageLanding {
        font-size: 0.6em;
    }
}

这是元素的 CSS:

.downloadApp {
    display: block;
    border: 2px solid #000;
    border-radius: 0.8em;
    background: #fff;
    color: #000;
    width: 36em;
    height: 10.8em;
    text-align: left;
}   
    
.downloadApp:hover {
    color: #fff;
    background: #000;
}   
     
    .downloadApp i {
        float: left;
        font-size: 8em; 
        margin: 0.1em 0 0 0.4em;
    }
    
    .downloadApp div {
        margin: 1.6em 0 0 12em;
    }   
        
        .downloadApp div p {
            font-size: 2em;
        }
        
        .downloadApp div strong {
            font-size: 4em;
        }

这是HTML。我使用 Font Awesome 来显示 Android 机器人的矢量版本。

<div id="pageLanding">
    <p>Other stuff that needs to be scaled too</p>
    <p>More stuff</p>
    <a href="example.org" class="downloadApp">
        <i class="fa fa-android"></i>
        <div>
            <p>Get it on</p>
            <strong>Google Play</strong>
        </div>
    </a>
</div>

Chrome 的最小字体大小为 6px。这相当于我的设置中的 0.6em,这正是我尝试使用的。过去,人们建议通过以下方式删除此约束:

* {
    -webkit-text-size-adjust: none;
}

但是 Chrome 在最近的一些版本中停止支持它。只有 iOS Safari 仍然支持。

解决方案是将元素的默认大小调小。然后你会增加它的字体大小以使其更大。这与我所做的相反。就我而言,我的默认大小很大,我需要缩小。

  1 .downloadApp {
  2     display: block;
  3     border: 2px solid #000;
  4     border-radius: 0.4em;
  5     background: #fff;
  6     color: #000;
  7     width: 9em;
  8     height: 2.7em;
  9     text-align: left;
 10 }
 11 
 12 .downloadApp:hover {
 13     color: #fff;
 14     background: #000;
 15 }
 16 
 17     .downloadApp i {
 18         float: left;
 19         font-size: 2em;
 20         margin: 0.15em 0 0 0.4em;
 21     }
 22 
 23     .downloadApp div {
 24         margin: 0.4em 0 0 3em;
 25     }
 26 
 27         .downloadApp div p {
 28             font-size: 0.5em;
 29         }
 30 
 31         .downloadApp div strong {
 32             font-size: 1em;
 33         }

通过将字体大小设置为大于 1.0em 使其变大:

 22 .downloadApp {
 23     font-size: 4.0em;
 24 }