详解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 实用技巧:实现黑白图像效果示例代码
Jul 11 HTML / CSS
纯CSS3实现带动画效果导航菜单无需js
Sep 27 HTML / CSS
利用 CSS3 实现的无缝轮播功能代码
Sep 25 HTML / CSS
HTML5 canvas基本绘图之绘制矩形
Jun 27 HTML / CSS
基于Html5实现的react拖拽排序组件示例
Aug 13 HTML / CSS
html5的新玩法——语音搜索
Jan 03 HTML / CSS
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
May 07 HTML / CSS
详解HTML5中的Communication API基本使用方法
Jan 29 HTML / CSS
html5简介_动力节点Java学院整理
Jul 07 HTML / CSS
AmazeUI 加载进度条的实现示例
Aug 20 HTML / CSS
CSS3实现的侧滑菜单
Apr 27 HTML / CSS
使用CSS实现按钮边缘跑马灯动画
May 07 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/07/21 PHP
PHP5.5在windows安装使用memcached服务端的方法
2014/04/16 PHP
CentOS7.0下安装PHP5.6.30服务的教程详解
2018/09/29 PHP
Laravel 6.2 中添加了可调用容器对象的方法
2019/10/22 PHP
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
js实现精美的图片跟随鼠标效果实例
2015/05/16 Javascript
javascript中setInterval的用法
2015/07/19 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
JS实现AES加密并与PHP互通的方法分析
2017/04/19 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
如何用webpack4带你实现一个vue的打包的项目
2018/06/20 Javascript
React手稿之 React-Saga的详解
2018/11/12 Javascript
Vue模板语法中数据绑定的实例代码
2019/05/17 Javascript
Python自动化构建工具scons使用入门笔记
2015/03/10 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
Django之模板层的实现代码
2019/09/09 Python
一款纯css3实现的圆形旋转分享按钮旋转角度可自己调整
2014/09/02 HTML / CSS
详解css3 Transition属性(平滑过渡菜单栏案例)
2017/09/05 HTML / CSS
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
水产养殖学应届生求职信
2013/09/29 职场文书
经济管理专业毕业生推荐信
2013/11/11 职场文书
称象教学反思
2014/02/03 职场文书
同事打架检讨书
2014/02/04 职场文书
计算机求职自荐信范文
2014/04/19 职场文书
赢在执行观后感
2015/06/16 职场文书
JavaScript与JQuery框架基础入门教程
2021/07/15 Javascript
Python中22个万用公式的小结
2021/07/21 Python
HttpClient实现文件上传功能
2022/08/14 Java/Android