rem适配方案
页面布局单位计算 一般有两大类:绝对长度单位和相对长度单位
绝对长度单位:
- px 像素:是显示屏上显示的每一个小点,为显示的最小单位
- in 英寸,1in = 96px
- cm 厘米,1cm = 37.8px
- mm 毫米,1mm = 3.78px
- pt 磅,1pt = 1/72 英寸
推荐使用 px(像素)
相对长度单位:
- em 相对于当前元素的字体大小(font-size) ,当前元素未设置字体大小依赖其父元素字体大小一级级向上查找 1em= 1 × 当前元素字体大小;
- rem 相对于根元素的字体大小(font-size),计算公式 1rem =1 × 根元素字体大小;
- % 目标元素宽度/父级元素宽度=百分比宽度 ;
- ex & ch 相对于元素字符字体宽高
- ex
取自字符x的高度 - ch 基于'0'这个字符字体的宽度计算
- ex
- vw & vh 根据 视口(浏览器可视化的区域) 的宽高计算
- vw 当前视窗宽度的
1% - vh 当前视窗高度的
1%
- vw 当前视窗宽度的
vmin & vmax当前vw和vh中较小或者较大的值
目前 IE8一下不支持 rem,IE9,10部分不支持
如果这个属性根据它的font-size进行测量,则使用em
其他的视情况使用对应单位.
rem 几种方法:
js计算
<script>
/*让文字和标签的大小随着屏幕的尺寸变化 等比缩放*/
var html = document.getElementsByTagName('html')[0]; /*取到屏幕的宽度*/
var width = window.innerWidth;
var fontSize = 100/640*width;
html.style.fontSize = fontSize +'px';
window.onresize = function(){
var html = document.getElementsByTagName('html')[0]; var width = window.innerWidth; var fontSize = 100/640 * width;
/*设置fontSize*/
html.style.fontSize = fontSize +'px';
}
</script>
使用媒体查询:
@media (max-width:768px){
html {
font-size:16px;
}
}
rem适配方案的更多相关文章
- 谈谈我的移动端rem适配方案
最近有点怀疑人生,毕竟一个人写前端,有时候会怀疑自己理解的一些东西包括用法有没有符合标准.趁着这阵子闲下来,翻了翻别人的rem适配博客,发现有点绕口,怪自己是个强迫症,啥都要自己去试试结果并从中理解, ...
- em与rem之间的区别以及移动设备中的rem适配方案
em与rem之间的区别: 共同点: 它们都是像素单位 它们都是相对单位 不同点: em大小是基于父元素的字体大小 rem大小是基于根元素(html)的字体的大小 实例: <!DOCTYPE ht ...
- H5 端 rem 适配方案与 viewport 适配
H5 端 rem 适配方案与 viewport 适配 rem rem 是 CSS3 新增的一个相对单位(root em,根 em) 只根据当前页面 HTML 页面的 font-size 设置,如果根目 ...
- 最佳移动端h5自适应rem适配方案
一.利用lib-flexible.postcss-plugin-px2rem插件 进行移动端rem适配. 1.第一 引入lib-flexible . 安装lib-flexible: npm i lib ...
- vue中使用第三方UI库的移动端rem适配方案
需求:使用vue-cli脚手架搭建项目,并且使用第三方的UI库(比如vant,mint ui)的时候,因为第三方库用的都是用px单位,无法使用rem适配不同设备的屏幕. 解决办法:使用px2rem-l ...
- 淘宝rem适配方案
/*px 转化换 rem ,转化是 10 .比如:你的设计图为750,那么就 750 / 75 = 10 rem.设计图中你量尺寸都要除 75 就是 rem值.再比如量的设计图按钮宽度 66px,那么 ...
- 移动web开发适配方案之Rem
移动端为什么要做适配 移动端相对PC端来说大部分浏览器内核都是基于Webkit的,所以大部分都支持CSS3的最新语法.但是由于手机的屏幕尺寸和分辨率都不太一样(尤其是安卓),所以不得不对不同分辨率的手 ...
- 移动端高清适配方案(解决图片模糊问题、1px细线问题)
本文介绍了移动端适配的3种方法,以及移动端图片模糊问题和1px细线问题的解决方法.当然了,在这之前先整理了与这些方法相关的知识:物理像素.设备独立像素.设备像素比和viewport. >> ...
- vue项目中使用了vw适配方案,引入第三方ui框架mint-ui时,适配问题解决
问题分析: 一般第三方ui框架用的都是不同的适配方式,如果我们使用了vw适配,那么在使用mint-ui框架时,就会发现px单位会被转换成vw,从而导致样式变小的问题,如图 解决方案 网上看到了很多种解 ...
随机推荐
- 深刻理解Linux进程间通信(IPC)
https://www.ibm.com/developerworks/cn/linux/l-ipc/ linux下进程间通信的几种主要手段简介: 管道(Pipe)及有名管道(named pipe):管 ...
- Sqoop环境安装
环境下载 首先将下载的 sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz放到 /usr/hadoop/目录下(该目录可以自定义,一般为Hadoop集群安装目录),然 ...
- Hive 基本语法操练(二):视图和索引操作
1. 视图操作 ------- 1) 创建一个测试表. ``` hive> create table test(id int,name string); OK Time taken: 0.385 ...
- druid监控sql
我这里是以运维的角度查看sql, 前面的配置需要开发配合,参考:https://blog.csdn.net/u010391342/article/details/80606482 1.首先在注册中心( ...
- CSS里的 no-repeat
简单来说,CSS里的 no-repeat是针对背景图片来说的.当你设置了no-repeat这个属性后,你的背景图片将不会被重复,再换一种说法,你在网站上所看到的背景图片就是你所添加的图片, 不会出现平 ...
- linux系统的安全小知识
最近安装linux虚拟机,出了几个小问题:1. 只有root用户 2.ftp连接不上 3.ssh连接虚拟机如何免密 1.创建用户 useradd –d /usr/sam -m sam 创建用 ...
- GreenDao 使用知识小y
//关于 group by 的实现//--------------------XXXDao.queryBuilder().where(new WhereCondition.StringConditio ...
- vue使用element-ui实现按需引入
基于Vue的Ui框架 饿了么公司基于vue开的的vue的Ui组件库 Element Ui 基于vue pc端的UI框架 MintUi 基于vue 移动端的ui框架 http://element.ele ...
- 前端三剑客之javascript
前端三剑客之javascript 给个小目录 一.JavaScript介绍 二.ECMAScript(核心) 三.BOM对象(浏览器对象) 四.DOM对象(文档对象模型) 总结: JS的组成: a ...
- Garmin APP开发之入门
Garmin开发-入门 先附上几个已经开发完成的app日历 up down 翻月 start 回到当前月(就差农历了) 秒表和定时器一体app界面比较简单,但是实用,长按菜单键可以切换秒表和定时器,有 ...