单位px 转换成 rem
<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的更多相关文章
- hbuilder设置自动px 转换成rem
hbuilder里面有自动换算的 需要设置一下:工具–>选项–>Hbuilder–>代码助手设置.里面有个px自动转rem设置,按自己的实际情况设置就可以在每次输入px的时候有提示了 ...
- postcss 将px转换成rem vuecli3+vant+vue+postcss
1.安装 npm install postcss-pxtorem --save 2.找到postcss.config.js 默认是这样 module.exports = { "plugins ...
- 自动把网页px单位转换成rem
自动把网页px单位转换成rem 首先在你的项目开发环境中安装2个插件 然后在vue.config.js文件引入并重新启动服务器 这样就配置成功了,一起看看效果
- Vue开发中的移动端适配(px转换成vw)
1.项目根目录下,创建 .postcssrc.js 文件. 2.安装插件. -D (开发依赖) postcss-import postcss-url cssnano-preset-advanced - ...
- px转换成bp单位的工具函数
import {Dimensions} from 'react-native' //当前屏幕的高度 const deviceH = Dimensions.get('window').height // ...
- 彻底弄懂css中单位px和em,rem的区别
国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? PX特点 -1. IE无法调整那些使用px作为单位的字体大小: -2. 国外的大部分网站能够调 ...
- 彻底弄懂css中单位px和em,rem的区别 转的自己看
国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? PX特点 1. IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够调整的 ...
- 弄懂css中单位px和em,rem的区别
国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? PX特点 1. IE无法调整那些使用px作为单位的字体大小 ...
- 【转载】彻底弄懂css中单位px和em,rem的区别
原文链接:http://www.cnblogs.com/leejersey/p/3662612.html 国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什 ...
随机推荐
- caca393刷PTP教程
http://www.chickenclix.com/ 让大家等急了,最近真是很忙,对不住了:)好了闲话少说开始讲正题,再说可能有人要拍砖了............我们就以http://www ...
- 迷宫dfs
#include<stdio.h>int mov1[4]={0,0,1,-1};int mov2[4]={1,-1,0,0};int map[5][5]={0,1,0,0,1, ...
- Delphi XE5 如何与其他版本共存
如果你想使用Delphi诸如XE4.XE3.XE2.XE之类的版本跟Delphi XE5共存的话,在cglm.ini中简单修改两行就行啦. 找到Delphi XE5的安装根目录C:\Program F ...
- Jsoncpp 数组的使用
JsonCpp 是一个C++用来处理JSON 数据的开发包.下面讲一下怎么使用JsonCpp来序列化和反序列化Json对象,以实际代码为例子. 反序列化Json对象 比如一个Json对象的字符串序列如 ...
- 【转】设计模式(十一)代理模式Proxy(结构型)
设计模式(十一)代理模式Proxy(结构型) 1.概述 因为某个对象消耗太多资源,而且你的代码并不是每个逻辑路径都需要此对象, 你曾有过延迟创建对象的想法吗 ( if和else就是不同的两条逻辑路径) ...
- jvm 参数
参数名称 含义 默认值 -Xms 初始堆大小 物理内存的1/64(<1GB) 默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限 ...
- Qt Focus事件,FocusInEvent()与FocusOutEvent()
描述:一开始我要实现的目的就是,在一个窗体上有多个可编辑控件(比如QLineEdit.QTextEdit等),当哪个控件获得焦点,哪个控件的背景就高亮用来起提示作用,查了下文档应该用focusInEv ...
- 安装mssql2008和启动时出现的问题及解决办法
(一) 安装sql server 2008 时, 提示错误:此计算机上安装了 Microsoft Visual Studio 2008 的早期版本. 请在安装 SQL Server 2008 前将 V ...
- 流媒体学习二-------SIP协议学习(基本场景分析 )
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.SIP业务基本知识 1.1 业务介绍 会话初始协议(Session Initiation Protocol) ...
- 在zendstudio中添加注释
/** * * * @access public * @param string $cat_id 分类查询字符串 * @return string */ 然后在function之前的一行打上/**然后 ...