详解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 相关文章推荐
HTML5如何适配 iPhone IOS 底部黑条
Mar 09 HTML / CSS
CSS3解决移动页面上点击链接触发色块的问题
Jun 03 HTML / CSS
css3新增颜色表示方式分享
Apr 15 HTML / CSS
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
Aug 25 HTML / CSS
利用 CSS3 实现的无缝轮播功能代码
Sep 25 HTML / CSS
CSS3关于z-index不生效问题的解决
Feb 19 HTML / CSS
HTML5中视频音频的使用详解
Jul 07 HTML / CSS
HTML5 本地存储和内容按需加载的思路和方法
Apr 07 HTML / CSS
突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)
Jan 31 HTML / CSS
移动端html5 meta标签的神奇功效
Jan 06 HTML / CSS
鼠标滚轮事件和Mac触控板双指事件
Dec 23 HTML / CSS
CSS3实现的水平标题菜单
Apr 14 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使用NuSOAP调用Web服务的方法
2015/07/18 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
2016/09/11 PHP
php学习笔记之mb_strstr的基本使用
2018/02/03 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
2019/08/05 PHP
由浅到深了解JavaScript类
2006/09/08 Javascript
script不刷新页面的联动前后代码
2013/09/18 Javascript
js限制文本框只能输入整数或者带小数点的数字
2015/04/27 Javascript
复杂的javascript窗口分帧解析
2016/02/19 Javascript
动态设置form表单的action属性的值的简单方法
2016/05/25 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
在vue中使用Base64转码的案例
2020/08/07 Javascript
一行JavaScript代码如何实现瀑布流布局
2020/12/11 Javascript
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
python下MySQLdb用法实例分析
2015/06/08 Python
Python递归函数实例讲解
2019/02/27 Python
详解Python中pandas的安装操作说明(傻瓜版)
2019/04/08 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
pandas的排序和排名的具体使用
2019/07/31 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
Python通过socketserver处理多个链接
2020/03/18 Python
ALDO加拿大官网:加拿大女鞋品牌
2018/12/22 全球购物
台湾家适得:Homeget
2019/02/11 全球购物
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
销售心得体会
2014/01/02 职场文书
小学生暑假感言
2014/02/06 职场文书
前台文员职责范本
2014/03/07 职场文书
行政管理专业求职信
2014/07/06 职场文书
小班下学期幼儿评语
2014/12/30 职场文书
Python基础之变量的相关知识总结
2021/06/23 Python
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs