我正在制作响应式HTML电子邮件 . 当我在移动设备(例如iPhone)上打开它时,布局是响应式的,但字体很小 .
唯一的解决方案似乎是重新声明更大尺寸的媒体查询中的字体 . 获得正确的尺寸需要大量的试验和错误 .
显然,有两组字体声明维护效率很低,所以我想使用SCSS来简化它 .
这就是我现在所拥有的:
h1 {
font-size: 28px;
line-height: 36px;
}
h2 {
font-size: 14px;
line-height: 18px;
}
@media only screen and (max-device-width: 615px) {
$increase: 8px;
h1 {
font-size: 28px + $increase;
line-height: 36px + $increase;
}
h2 {
font-size: 14px + $increase;
line-height: 18px + $increase;
}
}
这很好,因为我可以改变$增加值,使我的移动字体更大 . 但是,我有20多个字体声明(针对不同的电子邮件),所以如果我更新桌面大小(例如将h1从28px更改为32px),则必须更新移动声明,这非常耗时 .
有什么方法可以使用SASS来设置一组字体声明,然后自动让移动版本的大小增加(如果$ increase值不适合特定样式,仍然可以灵活地进行一些自定义覆盖) .
我试图克服这个问题的步骤:
1. Using Rem/Ems: 所有桌面浏览器似乎都不支持这些 . 使用PX似乎是获得正确尺寸的唯一方法 .
2. Using Scale meta tag:
e.g. <meta name="viewport" content="width=device-width">
这会导致某些移动浏览器显示白屏(Blackberry)
2 回答
你可以用rems!首先在
html
元素上使用font-size:62.5%;
技巧,然后您可以设置几个媒体查询来调整rems的大小 .对于不支持rems的桌面客户端,您可以将px定义放在内联css(或样式标记)中:
我目前正在研究一种方法来获取SASS mixin来复制px值并将它们转换为rems,但由于小数点它很棘手 . 如果我完成,我会发表评论!或者如果你打败我,请告诉我;)
你唯一能做的就是使用extends,我提醒你谨慎使用它们,因为它们可以真正增加你的CSS:
如果在没有单位的情况下指定字体大小(例如
line-height: 1.5
),则每次更改字体大小时都不需要修改行高 .