详解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 相关文章推荐
让IE6、IE7、IE8支持CSS3的脚本
Jul 20 HTML / CSS
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
Jun 03 HTML / CSS
在HTML5中如何使用CSS建立不可选的文字
Oct 17 HTML / CSS
详解css3 Transition属性(平滑过渡菜单栏案例)
Sep 05 HTML / CSS
css3新单位vw、vh的使用教程
Mar 23 HTML / CSS
CSS3动画特效在活动页中的应用
Jan 21 HTML / CSS
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
Mar 14 HTML / CSS
使用Canvas操作像素的方法
Jun 14 HTML / CSS
HTML5 在canvas中绘制文本附效果图
Jun 23 HTML / CSS
详解如何在登录过期后跳出Ifram框架
Sep 10 HTML / CSS
css3带你实现3D转换效果
Feb 24 HTML / CSS
CSS 鼠标点击拖拽效果的实现代码
Dec 24 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新手上路(十)
2006/10/09 PHP
php学习笔记之 函数声明(二)
2011/06/09 PHP
浅谈PHP强制类型转换,慎用!
2013/06/06 PHP
php操作(删除,提取,增加)zip文件方法详解
2015/03/12 PHP
PHP加密解密实例分析
2015/12/25 PHP
PHP中读取文件的几个方法总结(推荐)
2016/06/03 PHP
总结PHP中数值计算的注意事项
2016/08/14 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
PHP date()格式MySQL中插入datetime方法
2019/01/29 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
25个优雅的jQuery Tooltip插件推荐
2011/05/25 Javascript
Javascript:为input设置readOnly属性(示例讲解)
2013/12/25 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
JS实现自适应高度表单文本框的方法
2015/02/25 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
js获取鼠标位置实例详解
2015/12/09 Javascript
基于JS实现数字+字母+中文的混合排序方法
2016/06/06 Javascript
Javascript OOP之面向对象
2016/07/31 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
详解react-native WebView 返回处理(非回调方法可解决)
2018/02/27 Javascript
vue中使用element-ui进行表单验证的实例代码
2018/06/22 Javascript
vue src动态加载请求获取图片的方法
2018/10/17 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
Vue仿微信app页面跳转动画效果
2019/08/21 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
python网络编程学习笔记(五):socket的一些补充
2014/06/09 Python
在Python中使用全局日志时需要注意的问题
2015/05/06 Python
Python3搜索及替换文件中文本的方法
2015/05/22 Python
python3+dlib实现人脸识别和情绪分析
2018/04/21 Python
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
英国计算机商店:Technextday
2019/12/28 全球购物
费用会计岗位职责
2014/01/01 职场文书
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
2015年仓库管理工作总结
2015/05/25 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python