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.lang.String.isEmpty()

    今天在写代码的时候用到了java.lang.String.isEmpty()的这个方法,之前也用过,今天突发奇想,就看了看源码,了解了解它的实现方法,总结出来,大家可以交流交流. 通常情况下,我们使用 ...

  2. oracle12c之 单机12.1.0.1打补丁

    1. 下载最新的12.1.0.1的DB PSU 与 OPatchp23054354_121010_Linux-x86-64.zipp6880880_121010_Linux-x86-64.zip 2. ...

  3. 从web图片裁剪出发:了解H5中的canvas

    本篇内容不针对canvas文档对每个api进行逐个的详解! 本篇内容不针对canvas文档对每个api进行逐个的详解! 本篇内容不针对canvas文档对每个api进行逐个的详解! 重说三,好了,现在进 ...

  4. 软工+C(2017第5期) 工具和结构化

    // 上一篇:Alpha/Beta换人 // 下一篇:最近发展区/脚手架 工具/轮子 软件工程/计算机相关专业的一个特点是会使用到众多的工具,工具的使用是从程序猿进化到程序员的一个关键要素.软件工程师 ...

  5. 结对编程1 (四则运算基于GUI)

    https://git.coding.net/Luo_yujie/sizeyunsuan.app.git 201421123034 201421123032 1. 需求分析 这次作业新引用了语言选择, ...

  6. class中的东西和继承、多态的概念

    class中的private.public.protected 最近看了一些视频顺便总结一下class中的这几个类型以及继承 public: 在C++和C#中类的用法,语法是差不多的.当变量,函数之类 ...

  7. 软件工程HW1-四则运算软件

    题目描述 程序自动生成小学四则运算题目,用户输入每道题的答案之后,将答错的题目标出并计算此次答题的正确率. 项目链接 我的项目 项目运行截图 个人软件过程 此次开发的四个步骤: 1):需求分析 2): ...

  8. 团队作业八——第二次团队冲刺(Beta版本)第4天

    团队作业八--第二次团队冲刺(Beta版本)第4天 一.每个人的工作 (1) 昨天已完成的工作 做一下用户注册的功能和登录功能. (2) 今天计划完成的工作 完成界面跳转 (3) 工作中遇到的困难 界 ...

  9. 团队作业4——第一次项目冲刺(Alpha版本)第五天

    天气阴转晴 一.Daily Scrum Meeting照片 二.燃尽图 三.项目进展 1.界面 功能界面已经大致完成 实现判断学生答题正误的界面 2.出题方面 实现错题库的构造 四.困难与问题 1.项 ...

  10. 201521123020《Java程序设计》第2周学习总结

    一.学习总结 学习了运算符的基本使用方法: 学习了string这个特殊的类型: 学习了数组的使用方法. 二.书面作业 1.使用Eclipse关联jdk源代码,并查看String对象的源代码(截图)? ...