javascript - Web开发如何保证各种屏幕尺寸和分辨率下Text的感官效果一致?
天蓬老师
天蓬老师 2017-04-10 17:51:40
[JavaScript讨论组]

我们公司在开发一款基于浏览器的阅读器。之前经验不足,把所有的文字大小都写成了px。

现在发现这样做问题很大,因为笔记本的尺寸很多,分辨率也是差异很大。导致同样的PX值,在有些本子上字很大(比如15寸屏幕,像素1366768),有些本子上字很小(比如13寸屏幕,像素19201080)。

我们希望做到“感光一致”,就是说用户看到的文字大小,在感官上是一样的。

请问如何系统地解决这个问题?
多谢大神指点!

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(9)
PHP中文网

字体使用印刷刻度即可;可以做到再任意屏幕上都是1英寸大小,这样你就可以跳过烦人的分辨率和DPI的概念了;
HTML

<p id="xx"></p>

css

#xx {
  font-size: 1in;
}

PS:唯一不爽的是在超小屏幕上很X蛋,比如:AppleWatch上,真的就是1英寸,一屏幕四个字,X;可以考虑一下再超小屏幕上做响应式布局;

高洛峰

用rem,:D

高洛峰

类似安卓的dp...

伊谢尔伦

主要是单位,可以用百分比、rem、vw之类的

怪我咯

了解一下 rem 布局就可以实现你的需求了

简单的大致实现如下:

// 在 <head></head> 元素中插入下面的代码
!function(){
    var d = document.documentElement;
    d.style.fontSize = d.clientWidth * 0.05 + 'px';
}()

关于 rem 和设计稿上的 px 尺寸之间的转换,用 sass 写一个转换函数就可以了

// 以下是 SASS 代码

// 单位转换
// @param {int} $px - 设计图上的 px 大小
// @returns {rem} - 转换后的 rem 值
@function r($px) {
  @return $px / 32 + rem;
}

// 然后所有的尺寸单位都用 rem 代替 px
body {
  width: r(960);
}
迷茫

em吧~
px用在自适应上很不好。

天蓬老师

阿里前端有一个移动端自适应的解决库。
不怕踩坑可以试下:https://github.com/amfe/lib-flexible

PHPz

请使用rem

怪我咯

rem绝对首选!

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号