详解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实现波纹特效、H5实现动态波浪效果
Jan 31 HTML / CSS
CSS3 绘制BMW logo实的现代码
Apr 25 HTML / CSS
css3弹性盒模型实例介绍
May 27 HTML / CSS
CSS+jQuery+PHP+MySQL实现的在线答题功能
Apr 25 HTML / CSS
使用CSS3来绘制一个月食图案
Jul 18 HTML / CSS
CSS3中使用RGBa来调节透明度的教程
May 09 HTML / CSS
html5+css3之制作header实例与更新
Dec 21 HTML / CSS
Html5 postMessage实现跨域消息传递
Mar 11 HTML / CSS
HTML5 新标签全部总汇(推荐)
Jun 13 HTML / CSS
使用PDF.JS插件在HTML中预览PDF文件的方法
Aug 29 HTML / CSS
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
Mar 17 HTML / CSS
使用CSS3实现按钮悬停闪烁动态特效代码
Aug 30 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 动态随机生成验证码类代码
2010/04/09 PHP
PHP导航下拉菜单的实现如此简单
2013/09/22 PHP
php基于表单密码验证与HTTP验证用法实例
2015/01/06 PHP
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
不安全的常用的js写法
2009/09/15 Javascript
匹配任意字符的正则表达式写法
2010/04/29 Javascript
JavaScript 事件系统
2010/07/22 Javascript
setTimeout和setInterval的深入理解
2013/11/08 Javascript
基于javascript滚动图片具体实现
2013/11/18 Javascript
通过伪协议解决父页面与iframe页面通信的问题
2015/04/05 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
JavaScript从0开始构思表情插件
2016/07/26 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
2017/02/18 Javascript
详解VUE 数组更新
2017/12/16 Javascript
Javascript异步执行不按顺序解决方案
2020/04/30 Javascript
[19:26]TNC vs EG (BO3)
2018/06/07 DOTA
使用python获取CPU和内存信息的思路与实现(linux系统)
2014/01/03 Python
Python中常用操作字符串的函数与方法总结
2016/02/04 Python
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
Python统计单词出现的次数
2018/04/04 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
2018/04/17 Python
Python3实现定时任务的四种方式
2019/06/03 Python
pandas取出重复数据的方法
2019/07/04 Python
Python devel安装失败问题解决方案
2020/06/09 Python
Python调用C/C++的方法解析
2020/08/05 Python
css3圆角边框和边框阴影示例
2014/05/05 HTML / CSS
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
在宿舍喝酒的检讨书
2014/09/28 职场文书
论群众路线学习笔记
2014/11/06 职场文书
优秀教师单行材料
2014/12/16 职场文书
公司员工宿舍管理制度
2015/08/03 职场文书
HR必备:销售经理聘用合同范本
2019/08/21 职场文书
超级详细实用的pycharm常用快捷键
2021/05/12 Python