详解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弹性盒模型开发笔记(三)
Apr 26 HTML / CSS
使用css3实现超炫的loading加载动画效果
May 07 HTML / CSS
CSS3中线性颜色渐变的一些实现方法
Jul 14 HTML / CSS
CSS3实现千变万化的文字阴影text-shadow效果设计
Apr 26 HTML / CSS
Android本地应用打开方法——通过html5写连接
Mar 11 HTML / CSS
利用html5 file api读取本地文件示例(如图片、PDF等)
Mar 07 HTML / CSS
关于老式浏览器兼容HTML5和CSS3的问题
Jun 01 HTML / CSS
使用phonegap查找联系人的实现方法
Mar 31 HTML / CSS
基于MUI框架使用HTML5实现的二维码扫描功能
Mar 01 HTML / CSS
HTML5自定义属性的问题分析
Aug 16 HTML / CSS
video.js支持m3u8格式直播的实现示例
May 20 HTML / CSS
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
Aug 23 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简单系统查询模块代码打包下载
2008/06/07 PHP
深入探讨PHP中的内存管理问题
2011/08/31 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
2017/02/08 PHP
PHP实现小程序批量通知推送
2018/11/27 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
jQuery1.6 正式版发布并提供下载
2011/05/05 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
2016/09/14 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
Javascript实现倒计时时差效果
2017/05/18 Javascript
react native仿微信PopupWindow效果的实例代码
2017/08/07 Javascript
JavaScript递归算法生成树形菜单
2017/08/15 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
用POSTMAN发送JSON格式的POST请求示例
2018/09/04 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
2019/04/07 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
Js实现复选框的全选、全不选反选功能代码实例
2020/02/28 Javascript
用pywin32实现windows模拟鼠标及键盘动作
2014/04/22 Python
Python爬虫之模拟知乎登录的方法教程
2017/05/25 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
利用python在大量数据文件下删除某一行的例子
2019/08/21 Python
Python selenium文件上传下载功能代码实例
2020/04/13 Python
浅谈CSS3 动画卡顿解决方案
2019/01/02 HTML / CSS
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
浅析移动设备HTML5页面布局
2015/12/01 HTML / CSS
阿玛尼意大利官网:Armani意大利
2018/10/30 全球购物
init进程的作用
2012/04/12 面试题
软件测试工程师结构化面试题库
2016/11/23 面试题
特色冷饮店创业计划书
2014/01/28 职场文书
观看《永远的雷锋》心得体会
2014/03/12 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书