关于使用vw单位适配H5项目(二)
一些比较小的H5页面,我觉得全没有必要一定要使用框架的,比如vue和react之类的,我觉得原生的js,html5也可以写好移动端。
最近刚好要赶10多个h5页面,适配移动端的,各种手机型号都要适配,笔者想起了自己的以前写过的一个转换小工具,
大家可以看之前我的文章和我一起使用postcss+gulp进行vw单位的移动端的适配
老实说,笔者根据之前的记录,根本就没有还原出小工具,实在是汗颜。不过,在笔者实在无法精确还原工具之后,笔者找到了之前练习的demo.
笔者一下子就搞定了。
先给大家看下项目的目录:

笔者吃亏就是吃亏在项目目录最后还原的时候没有对应上。
一般的话,对于工程化的项目其实知道了package.json文件,整个项目的核心其实已经出来了。
{
"devDependencies": {
"gulp": "^3.9.1",
"gulp-cssnano": "^2.1.3",
"gulp-postcss": "^7.0.1",
"gulp-rename": "^1.2.2",
"gulp-sass": "^4.0.1",
"gulp-sourcemaps": "^2.6.4",
"postcss-assets": "^5.0.0",
"postcss-cssnext": "^3.1.0",
"postcss-px-to-viewport": "^0.0.3",
"postcss-short": "^4.1.0",
"postcss-short-color": "^3.0.0",
"postcss-viewport-units": "^0.1.6",
"postcss-write-svg": "github:jonathantneal/postcss-write-svg"
},
"dependencies": {
"autoprefixer": "^9.4.10",
"postcss-aspect-ratio-mini": "^0.0.2"
}
}
var gulp=require('gulp');
var postcss=require('gulp-postcss');
var sass=require('gulp-sass');
var shortColor = require('postcss-short-color');
var autoprefixer = require('autoprefixer');
var cssnext = require('postcss-cssnext');
var shortcss = require('postcss-short');
var pxtoviewport = require('postcss-px-to-viewport');
var sourcemaps=require('gulp-sourcemaps');
var rename=require('gulp-rename');
var cssnano=require('gulp-cssnano');
gulp.task('css',function(){
var processors=[
require('postcss-short-color'),
shortcss,
cssnext,
autoprefixer({browsers: ['> 1%'], cascade: false}),
pxtoviewport({
viewportWidth: 750, // 视窗的宽度,对应的是我们设计稿的宽度,一般是750
//viewportHeight: 1334, // 视窗的高度,根据750设备的宽度来指定,一般指定1334,也可以不配置
unitPrecision: 3, // 指定`px`转换为视窗单位值的小数位数(很多时候无法整除)
viewportUnit: 'vw', // 指定需要转换成的视窗单位,建议使用vw
selectorBlackList: ['.ignore', '.hairlines'], // 指定不转换为视窗单位的类,可以自定义,可以无限添加,建议定义一至两个通用的类名
minPixelValue: 1, // 小于或等于`1px`不转换为视窗单位,你也可以设置为你想要的值
mediaQuery: false // 允许在媒体查询中转换`px`著作权归作者所有。
}),
require('postcss-write-svg'),
require('postcss-aspect-ratio-mini'),
require('postcss-viewport-units'),
];
return gulp.src('./src/css/*.scss').pipe(sass().on('error',sass.logError))
.pipe(postcss(processors))
.pipe(gulp.dest('./dest'));
});
gulp.task('rename',['css'],function(){
return gulp.src('dest/style.css')
.pipe(postcss([cssnano]))
.pipe(rename('style.min.css'))
.pipe(sourcemaps.init())
.pipe(sourcemaps.write('maps/'))
.pipe(gulp.dest('./dest'))
});
gulp.task('default',['css','rename']);
// 监听功能
var watcher=gulp.watch('src/*.css',['default']);
watcher.on('change',function(event){
console.log('File'+event.path+'was'+event.type+',running tasking ...');
});
我稍微把项目运行了一下

完整项目的地址
https://github.com/JserJser/dailyPush/blob/master/daily5/toolsForH5.rar
其实大家分析我的项目就会发现,就是一个很简单很普通但是确实很方便的h5适配方法
大家运行过程中什么插件没有安装上去大家就安装,有问题就删nodejs包,这个是个出浅的存在很多问题但是可以解决问题的小工具
大家可以放心使用的,之前有使用这个,项目成功上线过的
这个工具我打算好好做起来了,这个是第一版本,希望时时努力,别抛弃别放弃,后续会添加 webpack之类的,一起加油加油撒花
关于使用vw单位适配H5项目(二)的更多相关文章
- 使用vue-cli3快速适配H5项目
跟我老大学到了一招使用vue-cli3快速适配H5项目的方法. 我之前也有进行一个版本的适配,直接使用cnpm install -g vue-cli,然后安装各种插件进行适配,见我之前的博客. 后来老 ...
- vue项目使用vw单位适配移动端方法
传送门: https://blog.csdn.net/zjw0742/article/details/79337336
- 和我一起使用postcss+gulp进行vw单位的移动端的适配
随着iphoneX的出现,新的一轮适配大法应该又出现了吧?不论是使用flex布局或者媒体查询,好似都不能完全解决新加的刘海带来的适配问题. 但是有一个单位vw就神奇的解决了这个问题.vw和vh是相对于 ...
- 在UniApp的H5项目中,生成二维码和扫描二维码的操作处理
在我们基于UniApp的H5项目中,需要生成一些二维码进行展示,另外也需要让用户可以扫码进行一定的快捷操作,本篇随笔介绍一下二维码的生成处理和基于H5的扫码进行操作.二维码的生成,使用了JS文件wea ...
- H5项目常见问题汇总及解决方案(果断复制粘贴,不解释)
H5项目常见问题及注意事项 Meta基础知识: H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 //一.HTML页面结构 <meta name="viewport" co ...
- H5项目常见问题
转自 https://github.com/FrontEndZQ/HTML5-FAQH5项目常见问题及注意事项 Meta基础知识: H5页面窗口自动调整到设备宽度,并禁止用户缩放页面//一.HTML页 ...
- H5项目常见问题汇总及解决方案
H5项目常见问题汇总及解决方案 H5 2015-12-06 10:15:33 发布 您的评价: 4.5 收藏 4收藏 H5项目常见问题及注意事项 Meta基础知识: H5页 ...
- 总结- H5项目常见问题汇总及解决方案(转)
H5项目常见问题及注意事项 Meta基础知识: H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 //一.HTML页面结构 <meta name="viewport" co ...
- 如何开发H5项目 -- 入门篇
前言 H5即HTML5,H5开发具有低成本.高效率.跨平台.研发周期短,用户接触成本低等特性. 一.开发环境 在开发一个H5项目之前,需要先搞好环境.主要有node.npm.gulp.bower.下面 ...
随机推荐
- mysql执行 sql文件遇到USING BTREE ) ENGINE=MyISAM DEFAULT CHARSET=utf8错误
使用navcat在导入别人发的mysql数据的时候,报了下面这个错误: [Err] 1064 - You have an error in your SQL syntax; check the man ...
- sqlalchemy 使用pymysql连接mysql 1366错误
一.错误情况 mysql 5.7.2 \python35\lib\site-packages\pymysql\cursors.py:166: Warning: (1366, "Incorre ...
- Linux大页内存管理等---菜鸟初学
1. 查看linux的内存情况: free -m 2. 查看是否开启大页的方法: cat /proc/meminfo |grep -i HugePage AnonHugePages: 276480 k ...
- Oracle 数据表误删恢复 Flashback
1. 前提条件. recyclebin 参数打开. 验证参数是否打开: SHOW PARAMETER RECYCLEBIN 2. 如果参数没有打开的话 需要打开,并且重启一下数据库方法为 alter ...
- PLSQL 使用技巧汇总贴(一个坑)
PLSQL是一款非常强大的工具, 只不过自己不会使用.. 1.记住密码: 首先 工具->首选项 打开 在 oracle 选项下的 登录 历史 定义 带密码存储--勾选 2. 关键字高亮 -- ...
- awk、sed、grep三大shell文本处理工具之sed的应用
sed 流编辑器 对文本中的行,逐行处理 非交互式的编辑器 是一个编辑器 1.工作流程 1)将文件的第一行读入到自己的缓存空间(模式空间--pattern space),删除掉换行符 2)匹配,看一下 ...
- php技术–php中感叹号!和双感叹号!!的用法(三元运算)
---恢复内容开始--- if(文章==有用){狂点我;} 在php持术或其他语言中我们经常会看到感叹号的用法,有一定程序语言基础的朋友都知道单个感叹号的作用是取反的意思,也就是取当前结果的反面,如: ...
- JDK8字符串拼接的正确姿势
1. 对列表中的元素进行拼接 以前,对一个列表中的字符串进行拼接时,常见的代码如示例1所示: 代码示例1 List<String> ids = ImmutableList.of(" ...
- Quartz.Net—MisFire
什么是misfire misfire就是哑火,就是trigger没有得到正常的触发. 1.所有的threadpool都在工作,而且工作时间很长,导致trigger没有threadpool去执行. 2. ...
- BZOJ2006[NOI2010]超级钢琴——堆+主席树
题目描述 小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的 音乐. 这架超级钢琴可以弹奏出n个音符,编号为1至n.第i个音符的美妙度为Ai,其中 ...