rem

  css3新增的rem是现在非常受欢迎的单位。看一下MDN上的说明:

  这个单位代表根元素的 font-size 大小(例如 <html> 元素的font-size)。

  使用这个单位可以创建完美的可扩展布局,只需根据页面大小去修改html的font-size,就能达到适配整个页面的目的。那么问题来了,如何使html的font-size自适应呢?

媒体查询

  media的用法这里就不赘述,简单说明通过媒体查询修改html的font-size以达到页面自适应的目的。

    html如下:

  <article class="container">
<ol>
<li>rem是相对于root元素(html)字体大小的一个单位。 eg:html默认font-size为16px 则1rem = 16px</li>
<li>若元素以rem为单位去设置字体、宽高、边距等。则修改html字体大小就能达到所有元素一起等比例修改的效果</li>
<li>所以要实现html字体在不同页面大小下自适应</li>
</ol>
</article>

    css如下:

//媒体查询控制html字体大小
@media (max-width:767px) {
html{
font-size: 14px;
}
}
@media (min-width:768px) {
html{
font-size: 16px;
}
}
@media (min-width:992px) {
html{
font-size: 20px;
}
} //页面元素的简单样式
.container{
padding: 1rem;
}
li{
font-size: 1rem;
}

  通过媒体查询,在不同大小区间的页面上,设置html的font-size都不一样;

  页面宽度为700px时,html的字体大小为14px,此时 1rem = 14px ,li元素的字体大小就是14px,包裹的内边距也是14px;改变页面宽度为800px,html的字体大小为16px,此时 1rem = 16px ,li元素的字体大小变为16px,包裹的内边距也变为16px;

  这种方式当然媒体查询划分的越细致,自适应越强,但是无法实现完全自适应,只是区间性的。

vw

  vw代表的视口的 1/100 100vw代表的即是视口的宽度。使用它我们就可以实现html的font-size完全自适应了。

  css如下:

  html{
font-size: calc(16/768*100vw); //以768时16px为标准进行缩放
}

  例子的768px为一个假设的标准值,一般设计稿的大小为标准,然后再进行适配。调节页面大小,可以完全自适应。

JS调整

  加载页面和调整窗口大小的时,设置html的字体大小,已达到自适应的目的。

    (function(){
var doc = document.documentElement,
resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'; function changeFontSize(){
var clietWidth = doc.offsetWidth,
scale = clietWidth/768; //以768为标准 doc.style.fontSize = scale * 16 + 'px';
} if (!doc.addEventListener) return; window.addEventListener(resizeEvt,changeFontSize) //窗口大小变化或者手机横屏
document.addEventListener('DOMContentLoaded',changeFontSize) //加载页面触发
})()

  1、获取视口宽度

  2、以视口宽度对标准的变化,设置html的font-size

rem绝对自适应方案的更多相关文章

  1. 有了这套flexible.js 移动端自适应方案,你就能在移动端的来去自如, (*^__^*)

    flexible.js 移动端自适应方案 一,flexible.js 的使用方式: github地址:https://github.com/amfe/lib-flexible 官方文档地址:https ...

  2. 【css】rem及其替换方案

    移动端的web前端开发其实经常会有一些令人头疼的问题,比如屏幕适配.1像素问题等,rem也是之前在屏幕适配上比较完善的一套方案,但是随着业务的深入,任何方案都有其优秀与不足的地方,rem这套方案也一样 ...

  3. CSS9:动态 REM-手机专用的自适应方案

    CSS9:动态 REM-手机专用的自适应方案 动态 REM是手机专用,是如何适配所有手机的方案,不是响应式方案,例如 : taobao.com 是专门的PC端m.taobao.com 是专门的手机端, ...

  4. finereport普通报表的移动端自适应方案

    移动端报表呈现,首先要求的是页面随手机屏幕大小自动放缩(自适应),下面给出一个普通报表中的finereport移动端自适应方案,适用于finereport 7.1之前的版本. 首先,了解一下当前我们可 ...

  5. 如何通过 WebP 自适应方案减少图片资源大小

    前言 我们知道,理想的网页应该在 1 秒内打开,而在页面的整体大小中,图片往往是所占比例最大的一部分(大约占到 60% 以上,更多了解请点击),也可以参照如下图所示.优化图片不仅可以加快页面显示,还能 ...

  6. rem实现自适应

    总结一下,rem实现自适应:用rem代替px,配合媒体查询设置font-size:n%. 首先,px是死的.若一律用px,那就会大的显得小,小的屏幕显得大.其次,rem是活的,通过设置字体大小可以引起 ...

  7. 原生js移动端字体自适应方案

    自从进入新公司之后,就一直采用800的方案,也就是判断屏幕尺寸,大于800px是一种html字体处理方案,另一种方案是小于800px的html字体处理方案, 代码如下: (function(doc, ...

  8. css3 rem手机自适应框架

    css3 rem手机自适应框架 rem是按照html的字体大小来 所以 不同宽度浏览器 htmlfont-size不一样 就可以做到自适应了 此方法比百分比方便<pre><!DOCT ...

  9. [原创][开源]C# Winform DPI自适应方案,SunnyUI三步搞定

    SunnyUI.Net, 基于 C# .Net WinForm 开源控件库.工具类库.扩展类库.多页面开发框架 Blog: https://www.cnblogs.com/yhuse Gitee: h ...

随机推荐

  1. Java异常的性能分析

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt276 在Java中抛异常的性能是非常差的.通常来说,抛一个异常大概会消耗10 ...

  2. ActiveMQ持久化消息的三种方式

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt362 本文只介绍三种方式,分别是持久化为文件,MYSql,Oracle.下面 ...

  3. 微信小程序开发心得--动画机制

    微信小程序也已出来有一段时间了,最近写了几款微信小程序项目,今天来说说感受.首先开发一款微信小程序,最主要的就是针对于公司来运营的,因为,在申请appid(微信小程序ID号)时候,需要填写相关的公司认 ...

  4. Charles 抓包

    声明:本文为依依Love博主原创文章,未经博主允许不得转载   1. 简介: 2. 安装包下载: 3. 安装并替换破解版的jar包 4.设置mac代理 5.  安装证书: 6.  设置手机抓包     ...

  5. 用webgl打造自己的3D迷宫游戏

    用webgl打造自己的3D迷宫游戏 2016/09/19 · JavaScript · WebGL 原文出处: AlloyTeam    背景:前段时间自己居然迷路了,有感而发就想到写一个可以让人迷路 ...

  6. 第二次项目冲刺(Beta阶段)5.23

    1.提供当天站立式会议照片一张 会议内容: ①检查前一天的任务情况,将遇到的瓶颈反馈,看看团队成员是否有好的建议. ②制定新一轮的任务计划. 2.每个人的工作 (1)工作安排 队员 今日进展 明日安排 ...

  7. 团队作业8——第二次项目冲刺(Beta阶段)5.21

    1.当天站立式会议照片 会议内容: 本次会议为第三次会议 本次会议在陆大楼2楼召开,本次会议内容: ①:检查总结第二次任务完成情况 ②:布置第三次任务的详细分工 ③:规定完成时间是在第四次任务之前 ④ ...

  8. 201521123017 《Java程序设计》第7周学习总结

    1. 本周学习总结 2. 书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 1.2 解释E remove(int index)源代码 1.3 结合1. ...

  9. 201521123071《Java程序设计》第五周学习总结

    第5周作业-继承.多态.抽象类与接口 1. 本周学习总结 1.1 思维导图总结: 1.2在本周的学习中,主要学习了以下几点: - 初步接触了接口的定义,用interface关键字定义接口,使用impl ...

  10. 第2周作业-Java基本语法与类库(20170227-20170304)

    本周学习总结 (1)这周学习认识和熟悉了java的一些类型和变量: (2)学习了java的运算符基本使用方法: (3)了解了如何建立远程仓库和本地仓库,和如何让java代码在临时储存,本地仓库和远程仓 ...