详解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中的常用选择器使用示例整理
Jun 13 HTML / CSS
利用CSS3的3D效果制作正方体
Mar 10 HTML / CSS
CSS 说明横向进度条最后显示文字的实现代码
Nov 10 HTML / CSS
CSS3中的弹性布局em运用入门详解 1em等于多少像素
Feb 08 HTML / CSS
css3实现书本翻页效果的示例代码
Mar 08 HTML / CSS
HTML5 新事件 小结
Jul 16 HTML / CSS
html5 postMessage解决跨域、跨窗口消息传递方案
Dec 20 HTML / CSS
HTML5 source标签:媒介元素定义媒介资源
Jan 29 HTML / CSS
浅谈html5与APP混合开发遇到的问题总结
Mar 20 HTML / CSS
css3 filter属性的使用简介
Mar 31 HTML / CSS
CSS3 天气图标动画效果
Apr 06 HTML / CSS
浅析CSS在DevTools 中架构演变
Oct 05 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
Symfony2创建页面实例详解
2016/03/18 PHP
浅谈php://filter的妙用
2019/03/05 PHP
JS应用之禁止抓屏、复制、打印
2008/02/21 Javascript
jquery+json实现的搜索加分页效果
2010/03/31 Javascript
IE之动态添加DOM节点触发window.resize事件
2010/07/27 Javascript
js中获取事件对象的方法小结
2011/03/13 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
网页加载时页面显示进度条加载完成之后显示网页内容
2012/12/23 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
Javascript中各种trim的实现详细解析
2013/12/10 Javascript
利用JS生成博文目录及CSS定制博客
2016/02/10 Javascript
50 个 jQuery 插件可将你的网站带到另外一个高度
2016/04/26 Javascript
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
node+vue实现用户注册和头像上传的实例代码
2017/07/20 Javascript
JS实现可视化文件上传
2018/09/08 Javascript
vue使用swiper实现中间大两边小的轮播图效果
2019/11/24 Javascript
Python简单删除列表中相同元素的方法示例
2017/06/12 Python
用python实现百度翻译的示例代码
2018/03/09 Python
Python paramiko模块的使用示例
2018/04/11 Python
Python OpenCV 使用滑动条来调整函数参数的方法
2019/07/08 Python
Python OpenCV视频截取并保存实现代码
2019/11/30 Python
如何将 awk 脚本移植到 Python
2019/12/09 Python
pandas.DataFrame.drop_duplicates 用法介绍
2020/07/06 Python
pycharm + django跨域无提示的解决方法
2020/12/06 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
基于ccs3的timeline时间线实现方法
2020/04/30 HTML / CSS
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
自我评价中英文语句
2013/11/30 职场文书
《中华少年》教学反思
2014/02/15 职场文书
村长贪污检举信
2014/04/04 职场文书
博士生专家推荐信
2015/03/25 职场文书
小学教师党员承诺书
2015/04/27 职场文书
React 高阶组件HOC用法归纳
2021/06/13 Javascript
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫
使用Redis实现分布式锁的方法
2022/06/16 Redis