<script type="text/javascript">
var oHtml = document.documentElement;
getSize();
window.onresize = function(){
getSize();
};
function getSize(){
var screenWidth = oHtml.clientWidth;
if (screenWidth < 320) {
oHtml.style.fontSize = '42.6667px';
} else if(screenWidth > 750){
oHtml.style.fontSize = '100px';
}else{
oHtml.style.fontSize = screenWidth/(750/100) + 'px';
}
}
</script> 100px = 1.0rem;
上面这种情况会出现文字太小显示浏览器默认文本大小的情况,以下这种处理方式个人感觉更好一点
# 关于px转rem

## 实现功能
根据UED给出的不同分辨率设计稿,将px转成rem ## 原理 1. 自定义html基数: font-size: 10px, 获取clientWidth 和 分辨率
2. clientWidth < 320 || clientWidth > 750 自定义大小
其他: 根据公式:clientWidth / (分辨率 / (分辨率/html基数)) ## 说明
font-size: 不推荐使用rem,会存在一定问题,可以使用@media方式解决;其他情况均可使用rem,如:width,height,line-height,margin,padding等 ## 代码 ### style.css html {
/*
10 / 16 * 100% = 62.5%
*/
font-size: 62.5%; // font-size: 10px;
} ### index.html (function() {
var oHtml = document.documentElement;
getSize();
// 当页面没有刷新单屏幕尺寸发生变化时,实时自适应。例:竖屏 转 横屏
window.onresize = function () {
getSize();
}
function getSize() {
var screenWidth = oHtml.clientWidth; // screenWidth < 320 || screenWidth > 750 时
/* 方法一: 通过媒体查询 (不是一直都需要的,处理特殊情况时需要)
html{font-size: 10px}
@media screen and (max-width:320px) {html{font-size:10px}} // 设置文本font-size时,要具体到class
@media screen and (min-width:321px) and (max-width:375px){html{font-size:11px}}
@media screen and (min-width:376px) and (max-width:414px){html{font-size:12px}}
@media screen and (min-width:415px) and (max-width:639px){html{font-size:15px}}
@media screen and (min-width:640px) and (max-width:719px){html{font-size:20px}}
@media screen and (min-width:720px) and (max-width:749px){html{font-size:22.5px}}
@media screen and (min-width:750px) and (max-width:799px){html{font-size:23.5px}}
@media screen and (min-width:800px){html{font-size:25px}}
*/
// 方法二:给出不同的值
if (screenWidth < 320) {
oHtml.style.fontSize = '10px';
} else if (screenWidth > 750) {
oHtml.style.fontSize = '20px';
} else {
// 由于设计稿分辨率的不同,这里screenWidth 所除的值也会随之修改,
// 例:当设计稿给出750像素时,oHtml.style.fontSize = screenWidth / 75 + 'px';
// 当设计稿给出375像素时
oHtml.style.fontSize = screenWidth / 37.5 + 'px';
};
}
}())

单位px 转换成 rem的更多相关文章

  1. hbuilder设置自动px 转换成rem

    hbuilder里面有自动换算的 需要设置一下:工具–>选项–>Hbuilder–>代码助手设置.里面有个px自动转rem设置,按自己的实际情况设置就可以在每次输入px的时候有提示了 ...

  2. postcss 将px转换成rem vuecli3+vant+vue+postcss

    1.安装 npm install postcss-pxtorem --save 2.找到postcss.config.js 默认是这样 module.exports = { "plugins ...

  3. 自动把网页px单位转换成rem

    自动把网页px单位转换成rem 首先在你的项目开发环境中安装2个插件 然后在vue.config.js文件引入并重新启动服务器 这样就配置成功了,一起看看效果

  4. Vue开发中的移动端适配(px转换成vw)

    1.项目根目录下,创建 .postcssrc.js 文件. 2.安装插件. -D (开发依赖) postcss-import postcss-url cssnano-preset-advanced - ...

  5. px转换成bp单位的工具函数

    import {Dimensions} from 'react-native' //当前屏幕的高度 const deviceH = Dimensions.get('window').height // ...

  6. 彻底弄懂css中单位px和em,rem的区别

    国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? PX特点 -1. IE无法调整那些使用px作为单位的字体大小: -2. 国外的大部分网站能够调 ...

  7. 彻底弄懂css中单位px和em,rem的区别 转的自己看

    国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? PX特点 1. IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够调整的 ...

  8. 弄懂css中单位px和em,rem的区别

              国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢?         PX特点 1. IE无法调整那些使用px作为单位的字体大小 ...

  9. 【转载】彻底弄懂css中单位px和em,rem的区别

    原文链接:http://www.cnblogs.com/leejersey/p/3662612.html 国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什 ...

随机推荐

  1. Vi问题

    ,ubuntu11.10下vi编辑器按i,左下方没有出现“输入模式”或者“insert”.在桌面环境下,用ctrl+alt+t调出命令行打开是这样,在第一控制台ctrl+alt+F1下打开,也是这样, ...

  2. PHP函数库(other)

    PHP函数库(other) Session函数: session_abort — Discard session array changes and finish session session_ab ...

  3. [转]漫谈数据中心CLOS网络架构

    http://djt.qq.com/article/view/238 1.数据中心网络架构挑战 随着技术的发展,数据中心的规模越来越大,一个数据中心的服务器容量从几年前的几千台服务器发展到今天的几万甚 ...

  4. Linux环境PHP7.0安装

    原文地址:http://blog.csdn.net/21aspnet/article/details/47708763 PHP7和HHVM比较 PHP7的在真实场景的性能确实已经和HHVM相当, 在一 ...

  5. locations in main memory to be referenced by descriptive names rather than by numeric addresses

    Computer Science An Overview _J. Glenn Brookshear _11th Edition Chapter 6 Programming Languages As s ...

  6. Java中只有按值传递,没有按引用传递!

      今天,我在一本面试书上看到了关于java的一个参数传递的问题: 写道 java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? 我毫无疑问的回答:“引用传递!”,并且还觉得自己对java ...

  7. mysql 密码篇

    通过MySQL命令行,可以修改MySQL数据库的密码,下面就为您详细介绍该MySQL命令行,如果您感兴趣的话,不妨一看. 格式:mysqladmin -u用户名 -p旧密码 password 新密码 ...

  8. bpel 之伙伴

    一.伙伴链接类型(Partner Link Types) 1.交互过程 伙伴之间的交互过程共分为两种典型情况: 流程调用伙伴后同步等待返回结果.这种情况通常是伙伴能很快返回结果,流程不需要等待很长时间 ...

  9. JavaScript中的prototype

    关于prototype: 理解prototype不应把它和继承混淆.A的prototype为B的一个实例,可以理解A将B中的方法和属性全部克隆了一遍.A能使用B的方法和属性.这里强调的是克隆而不是继承 ...

  10. Nginx的配置中与流量分发相关的配置规范:

    1.除首页外,其他页面都在某个目录中首页可以直接在根目录下,其他页面都要在根目录下的目录中.不同的location尽量使用第一个dir的模式进行区分,便于区分该流量是落在nginx本地,还是转发到后端 ...