响应式设计,动态设置 rem 的 fontsize


前言

在前端开发门户网站这种用户范围广、展示终端种类多的情况时,我们会尝试运用到响应式设计。响应式设计通常有css3中的媒体查询、百分比布局和自适应bootstrap等前端响应式框架。没种方式都有它的优劣势,css3中的媒体查询在书写代码方面较为繁琐,bootstrap等前端框架需要引入大量代码而且需要熟悉更多的框架书写规范。
有没有一种偷懒的方式呢?
这也是我在以前开发APP网站时采用的偷懒的方式,现在分享给大家一起讨论。


一、设计思路

设计思路很简单,步骤如下:

  1. 之前的代码还是正常写。最后将所有写死px像素级的样式修改为rem;
  2. 新增以下代码,具体除以多少依照你的项目情况而定。这段代码是根据终端展示窗口宽度来计算一个动态变化的数值,然后赋值给html一个font-size的值。所以就已经实现了响应式的结果,大家可以根据实际情况来觉得这个值的最大值最小值的范围,来让他在电脑和手机上展示时,元素不至于过大或者过小。

二、代码

(function () {
  var baseFontSize = function () {
    var dWidth = document.documentElement.clientWidth/80;
    console.log("fontSize", dWidth + "px");
    if(dWidth<22){ // 最小值
      document.documentElement.style.fontSize = "22px";
    }else if(dWidth>50){ // 最大值
      document.documentElement.style.fontSize = "50px";
    }else{
      document.documentElement.style.fontSize = dWidth + "px";
    }
  };
  window.addEventListener("resize", baseFontSize); // 监听终端视口宽度
  baseFontSize(); // 初始化方法
})();
html {
  font-size: 22px;
}

三、效果图

在这里插入图片描述

四、总结

此方法是一个捷径,所以有时候有些布局在响应时不一定会达到绝对完美的效果。但是为了更好的提高用户体验,我们可以结合百分比布局和部分功能的媒体查询来达到更好的效果。条条大路通罗马,方法总比困难多。

五、感谢

谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值