最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

rem绝对自适应方案解析

来源:懂视网 责编:小采 时间:2020-11-27 20:12:09
文档

rem绝对自适应方案解析

rem绝对自适应方案解析:rem css3新增的rem是现在非常受欢迎的单位。看一下MDN上的说明: 这个单位代表根元素的 font-size 大小(例如 <html> 元素的font-size)。 使用这个单位可以创建完美的可扩展布局,只需根据页面大小去修改html的font-size,就能达到适配整
推荐度:
导读rem绝对自适应方案解析:rem css3新增的rem是现在非常受欢迎的单位。看一下MDN上的说明: 这个单位代表根元素的 font-size 大小(例如 <html> 元素的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

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

rem绝对自适应方案解析

rem绝对自适应方案解析:rem css3新增的rem是现在非常受欢迎的单位。看一下MDN上的说明: 这个单位代表根元素的 font-size 大小(例如 <html> 元素的font-size)。 使用这个单位可以创建完美的可扩展布局,只需根据页面大小去修改html的font-size,就能达到适配整
推荐度:
标签: 详解 绝对 方案
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top