详解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教程(10):CSS3 HSL声明设置颜色
Apr 02 HTML / CSS
CSS3绘制超炫的上下起伏波动进度加载动画
Apr 21 HTML / CSS
使用CSS3美化HTML表单的技巧演示
May 17 HTML / CSS
纯CSS3绘制打火机动画火焰效果
Jul 18 HTML / CSS
HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图
Aug 31 HTML / CSS
HTML5新特性 多线程(Worker SharedWorker)
Apr 24 HTML / CSS
SVG实现多彩圆环倒计时效果的示例代码
Nov 21 HTML / CSS
html5使用canvas压缩图片的示例代码
Sep 11 HTML / CSS
html5实现九宫格抽奖可固定抽中某项奖品
Jun 15 HTML / CSS
AmazeUI 评论列表的实现示例
Aug 13 HTML / CSS
HTML+CSS 实现顶部导航栏菜单制作
Jun 03 HTML / CSS
css清除浮动clearfix:after的用法详解(附完整代码)
May 21 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编写RESTful接口的方法
2016/02/21 PHP
IE6不能修改NAME问题的解决方法
2010/09/03 Javascript
使用js画图之饼图
2015/01/12 Javascript
JavaScript事件委托实例分析
2015/05/26 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
WebPack基础知识详解
2017/01/16 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
2017/06/26 Javascript
Angular4 反向代理Details实践
2018/05/30 Javascript
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
2019/01/18 Javascript
在 Vue.js中优雅地使用全局事件的方法
2019/02/01 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
python 切片和range()用法说明
2013/03/24 Python
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
Centos7 Python3下安装scrapy的详细步骤
2018/03/15 Python
python自动发送邮件脚本
2018/06/20 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
Python常用模块sys,os,time,random功能与用法实例分析
2020/01/07 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
python PIL模块的基本使用
2020/09/29 Python
简单介绍CSS3中Media Query的使用
2015/07/07 HTML / CSS
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
意大利灯具购物网站:Lampade.it
2018/10/18 全球购物
接口中的方法可以是abstract的吗
2015/07/23 面试题
园林设计专业毕业生求职信
2014/03/23 职场文书
优质服务口号
2014/06/11 职场文书
党在我心中的演讲稿
2014/09/13 职场文书
入党现实表现材料
2014/12/23 职场文书
春节慰问信范文
2015/02/15 职场文书
面试通知单大全
2015/04/20 职场文书
电影建党伟业观后感
2015/06/01 职场文书
建国大业观后感
2015/06/01 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书
Python Socket编程详解
2021/04/25 Python
Java设计模式之享元模式示例详解
2022/03/03 Java/Android
MySQL聚簇索引和非聚簇索引的区别详情
2022/06/14 MySQL