详解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文本换行word-wrap解决英文文本超过固定宽度不换行
Oct 10 HTML / CSS
css3的@media属性实现页面响应式布局示例代码
Feb 10 HTML / CSS
CSS3动画animation实现云彩向左滚动
May 09 HTML / CSS
CSS3 flex布局之快速实现BorderLayout布局
Dec 03 HTML / CSS
css3 伪类选择器快速复习小结
Sep 10 HTML / CSS
整理HTML5中表单的常用属性及新属性
Feb 19 HTML / CSS
html5开发三八女王节表白神器
Mar 07 HTML / CSS
使用postMessage让 iframe自适应高度的方法示例
Oct 08 HTML / CSS
html5视频自动横过来自适应页面且点击播放功能的实现
Jun 03 HTML / CSS
amazeui 验证按钮扩展的实现
Aug 21 HTML / CSS
css背景和边框标签实例详解
May 21 HTML / CSS
CSS中Single Div 绘图技巧的实现
Jun 18 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
php5.2.0内存管理改进
2007/01/22 PHP
PHP检测字符串是否为UTF8编码的常用方法
2014/11/21 PHP
php使用cookie实现记住登录状态
2015/04/27 PHP
php实现保存周期为1天的购物车类
2017/07/07 PHP
js 中{},[]中括号,大括号使用详解
2011/05/12 Javascript
jquery动态增加text元素以及删除文本内容实例代码
2013/07/01 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
JS小游戏之极速快跑源码详解
2014/09/25 Javascript
javascript中的Function.prototye.bind
2015/06/25 Javascript
JavaScript Date对象详解
2016/03/01 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
JS动态添加的div点击跳转到另一页面实现代码
2017/09/30 Javascript
vue实现动态列表点击各行换色的方法
2018/09/13 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
Nest.js散列与加密实例详解
2021/02/24 Javascript
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
2019/06/04 Python
python+openCV调用摄像头拍摄和处理图片的实现
2019/08/06 Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
2020/02/20 Python
Python3之外部文件调用Django程序操作model等文件实现方式
2020/04/07 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
2020/04/13 Python
jupyter notebook中新建cell的方法与快捷键操作
2020/04/22 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
使用OpenCV去除面积较小的连通域
2020/07/05 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
加拿大购物频道:The Shopping Channel
2016/07/21 全球购物
美国奢侈品购物平台:Orchard Mile
2018/05/02 全球购物
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
初二政治教学反思
2014/01/12 职场文书
投标邀请书范本
2015/02/02 职场文书
毕业典礼致辞
2015/07/29 职场文书
感恩主题班会教案
2015/08/12 职场文书
初中语文教学随笔
2015/08/15 职场文书
《水浒传》读后感3篇(范文)
2019/09/19 职场文书
Python实现Hash算法
2022/03/18 Python