详解px单位html5响应式方案


Posted in HTML / CSS onMarch 08, 2018

移动端h5响应式方案最近这几年用得最多的最多的就是rem方案了。这个需要计算根元素的font-size来实现响应式。

但这种方案也有一个缺点,那就是font-size不为整数的时候一些字体使用rem单位会导致字体显示的大小有问题,对视觉还原要求比较高的项目来说这还是令前端开发挺头疼的一件事的。

解决前端响应式无非就是在不同的设备下可以正常展示,这里介绍一种不需要rem方式的响应式方案。直接使用px,这里说的是基于750px的设计稿。设计稿中你量出来是多少px,样式中

直接写多少px。这样是不是很快捷,也不需要rem换算。

  1. transform
  2. transform-origin

这里其实就是用到了transform的scale缩放页面大小来实现响应式。

核心代码:
 

let screenMatch = () => {
            document.body.style.setProperty('visibility', 'hidden')
            let page = document.getElementById("page");
            let _scale = window.outerWidth/750;
            
            page.style.setProperty("transformOrigin", "0 0");
            page.style.setProperty("transform", "scale("+ _scale + ")");
            //兼容ios8
            page.style.setProperty("-webkit-transform-origin", "0 0");
            page.style.setProperty("-webkit-transfrom", "scale("+ _scale + ")");
            setTimeout(() => {
  
                page.style.setProperty("transformOrigin", "0 0");
                page.style.setProperty("transform", "scale("+ _scale + ")");
                //兼容ios8
                page.style.setProperty("-webkit-transform-origin", "0 0");
                page.style.setProperty("-webkit-transfrom", "scale("+ _scale + ")");
                document.body.style.setProperty('visibility', 'visible')
            }, 100);

        }
        screenMatch();
        window.onresize = screenMatch;

上述代码中id为page的是整个页面元素开始的跟节点,body下的第一个元素。这里body/html要设置min-height:100%;height:100%;

其实我们在小程序中也可以使用px单位,但是小程序中使用transform的时候会有一些字体锯齿的bug,最后换了zoom属性就好了,同时使用-webkit-zoom做兼容。核心代码跟h5的差别不大同样放的是缩放大小。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
css3强大的动画效果animate使用说明及浏览器兼容介绍
Jan 09 HTML / CSS
一款纯css3实现的鼠标悬停动画按钮
Dec 29 HTML / CSS
初探CSS3中的calc()功能
Jul 14 HTML / CSS
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
Oct 15 HTML / CSS
HTML5实现视频直播功能思路详解
Nov 16 HTML / CSS
HTML5到底会有什么发展?HTML5的前景展望
Jul 07 HTML / CSS
canvas实现漂亮的下雨效果的示例
Apr 18 HTML / CSS
Canvas实现保存图片到本地的示例代码
Jun 28 HTML / CSS
canvas像素点操作之视频绿幕抠图
Sep 11 HTML / CSS
详解使用 CSS prefers-* 规范提升网站的可访问性与健壮性
May 25 HTML / CSS
详解CSS故障艺术
May 25 HTML / CSS
html+css实现滚动到元素位置显示加载动画效果
Aug 02 HTML / CSS
html5开发三八女王节表白神器
Mar 07 #HTML / CSS
使用HTML5和CSS3制作一个模态框的示例
Mar 07 #HTML / CSS
Canvas制作的下雨动画的示例
Mar 06 #HTML / CSS
html2canvas把div保存图片高清图的方法示例
Mar 05 #HTML / CSS
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
Mar 02 #HTML / CSS
基于MUI框架使用HTML5实现的二维码扫描功能
Mar 01 #HTML / CSS
canvas裁剪clip()函数的具体使用
Mar 01 #HTML / CSS
You might like
用PHP和ACCESS写聊天室(一)
2006/10/09 PHP
基于php冒泡排序算法的深入理解
2013/06/09 PHP
深入浅析Yii admin的权限控制
2016/08/31 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
2017/02/16 PHP
php中类和对象:静态属性、静态方法
2017/04/09 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
JavaScript 的方法重载效果
2009/08/07 Javascript
基于jquery实现的可以编辑选择的下拉框的代码
2010/11/19 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
js中this的用法实例分析
2015/01/10 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
Js遍历键值对形式对象或Map形式的方法
2016/08/08 Javascript
Bootstrap框架实现广告轮播效果
2016/11/28 Javascript
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
详解vue.js下引入百度地图jsApi的两种方法
2018/07/27 Javascript
详解JavaScript中的坐标和距离
2019/05/27 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
[01:06:25]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
[32:07]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第一场 12.16
2020/12/17 DOTA
利用Python自动监控网站并发送邮件告警的方法
2016/08/24 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
Python使用psutil获取进程信息的例子
2019/12/17 Python
Python timeit模块的使用实践
2020/01/13 Python
Python3基本输入与输出操作实例分析
2020/02/14 Python
canvas进阶之如何画出平滑的曲线
2018/10/15 HTML / CSS
介绍一下Python下range()函数的用法
2013/11/07 面试题
技校生自我鉴定
2013/12/08 职场文书
个人简历自我评价
2014/02/02 职场文书
户外婚礼策划方案
2014/02/08 职场文书
成龙洗发水广告词
2014/03/14 职场文书
商铺租赁意向书
2014/04/01 职场文书
《天安门广场》教学反思
2014/04/23 职场文书
公司向个人借款协议书范本
2014/10/09 职场文书
初中运动会前导词
2015/07/20 职场文书