详解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实现走马灯效果
Dec 26 HTML / CSS
CSS3之transition实现下划线的示例代码
May 30 HTML / CSS
CSS3颜色值RGBA与渐变色使用介绍
Mar 06 HTML / CSS
HTML5中canvas中的beginPath()和closePath()的重要性
Aug 24 HTML / CSS
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
Apr 22 HTML / CSS
利用html5的websocket实现websocket聊天室
Dec 12 HTML / CSS
HTML5 画布canvas使用方法
Mar 18 HTML / CSS
phonegap常用事件总结(必看篇)
Mar 31 HTML / CSS
如何避免常见的6种HTML5错误用法
Nov 06 HTML / CSS
使用HTML5和CSS3制作一个模态框的示例
Mar 07 HTML / CSS
iframe在移动端的缩放的示例代码
Oct 12 HTML / CSS
HTML中meta标签及Keywords
Apr 15 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函数解决SQL injection
2006/10/09 PHP
php 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
php设计模式之委托模式
2016/02/13 PHP
phalcon框架使用指南
2016/02/23 PHP
php 数组元素快速去重
2017/05/05 PHP
PHP递归实现汉诺塔问题的方法示例
2017/11/25 PHP
PHP写API输出的时用echo的原因详解
2019/04/28 PHP
PHP7 新增常量
2021/03/09 PHP
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
jquery用get实现ajax在ie里面刷新不进入后台解决方法
2013/08/12 Javascript
开发中可能会用到的jQuery小技巧
2014/03/07 Javascript
js获取url中的参数且参数为中文时通过js解码
2014/03/19 Javascript
jQuery新的事件绑定机制on()示例应用
2014/07/18 Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
2017/04/13 Javascript
[js高手之路]单例模式实现模态框的示例
2017/09/01 Javascript
原生JS实现Ajax跨域请求flask响应内容
2017/10/24 Javascript
vue-cli启动本地服务局域网不能访问的原因分析
2018/01/22 Javascript
JS实现深度优先搜索求解两点间最短路径
2019/01/17 Javascript
微信小程序利用swiper+css实现购物车商品删除功能
2019/03/06 Javascript
vue项目打包后请求地址错误/打包后跨域操作
2020/11/04 Javascript
python自动发邮件库yagmail的示例代码
2018/02/23 Python
python入门教程 python入门神图一张
2018/03/05 Python
Atom的python插件和常用插件说明
2018/07/08 Python
Python随机数函数代码实例解析
2020/02/09 Python
Python基于当前时间批量创建文件
2020/05/07 Python
Python 列表中的修改、添加和删除元素的实现
2020/06/11 Python
如何利用python之wxpy模块玩转微信
2020/08/17 Python
CSS3中Transform动画属性用法详解
2016/07/04 HTML / CSS
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
荷兰家电销售网站:Welhof
2020/12/08 全球购物
JAVA中的关键字有什么特点
2014/03/07 面试题
分层教学实施方案
2014/03/19 职场文书
文明班集体申报材料
2014/05/23 职场文书
大足石刻导游词
2015/02/02 职场文书
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL