2018移动端页面适配-自适应最新方案直接写px--------通过gulp工作流搭建一体化的移动端开发环境

栏目: 编程工具 · 发布时间: 6年前

内容简介:在flexible的GitHub上面写着由于vw:是Viewport's width的简写,1vw等于window.innerWidth的1%

在flexible的GitHub上面写着

由于 viewport 单位得到众多浏览器的兼容, lib-flexible 这个过渡方案已经可以放弃使用,不管是现在的版本还是以前的版本,都存有一定的问题。建议大家开始使用 viewport 来替代此方案。 vw 的兼容方案可以参阅《 如何在Vue项目中使用vw实现移动端适配 》一文。

  1. vm是什么? ---

vw:是Viewport's width的简写,1vw等于window.innerWidth的1%

  1. UI给的设计稿,一般都是宽为750px的,那么就是
100vw = 750px | 即1vw = 7.5px
2018移动端页面适配-自适应最新方案直接写px--------通过gulp工作流搭建一体化的移动端开发环境

2.代码

var gulp = require('gulp');
var jshint = require('gulp-jshint'); // 引入检测js文件模块
var uglify = require('gulp-uglify'); // 引入js压缩模块
var concat = require('gulp-concat'); // 引入合并文件模块
var minhtml = require('gulp-minify-html'); // 引入html压缩模块
var minify = require('gulp-minify-css'); // 引入压缩css的模块
var imagemin = require('gulp-imagemin'); // 引入压缩图片插件
var postcss = require('gulp-postcss'); //JavaScript 代码来转换CSS 中的样式
var autoprefixer = require('autoprefixer'); //自动加上浏览器前缀
var postcsswritesvg = require('postcss-write-svg') // 解决1px方案

// UI设计稿750px宽,那么100vw = 750px,即1vw = 7.5px
var pxtoviewport = require('postcss-px-to-viewport'); // 代码中写px编译后转化成vm

var browserSync = require('browser-sync')
var opn = require('opn')
//静态服务器

// 1.处理js文件
gulp.task('js', function () {
    return gulp.src('js/*.js')
        .pipe(jshint()) //检测js
        .pipe(uglify()) //压缩js
        .pipe(concat('index.js')) //合并js文件并命名为'index.js'
        .pipe(gulp.dest('build/js')); //将合并后的js文件输出到build文件夹下      
});

// 2.处理css
gulp.task('css', function () {
    var processors = [
        pxtoviewport({
            viewportWidth: 750,
            viewportHeight: 1334,
            unitPrecision: 5,
            viewportUnit: 'vw',
            selectorBlackList: [],
            minPixelValue: 1,
            mediaQuery: false
        })
    ];
    return gulp.src('css/*.css') // 指定css文件夹下的所有后缀为.css的文件
        .pipe(postcss([ autoprefixer() ]))  //自动加上浏览器前缀
        .pipe(postcss(processors))
        //.pipe(minify()) //使用minify模块进行css 压缩
        .pipe(gulp.dest('build/css')) // 最终将压缩的文件输出到minicss文件下            
})

// 3.压缩img
gulp.task('img', function () {
    gulp.src('images/*.{png,jpg,gif,ico}')
        .pipe(imagemin({
            progressive: true, //Boolean类型 默认:false 无损压缩图片
            optimizationLevel: 5, //number类型 默认:3 取值范围:0-7(优化等级)
            interlced: true, //Boolean类型 默认false 隔行扫描gif进行渲染
            multipass: true //Boolean类型 默认false 多次优化svg直到完全优化
        }))
        .pipe(gulp.dest('build/images')) //输入到build文件夹下的images文件夹下 
})

// 4.压缩html
gulp.task('html', function () {
    gulp.src('*.html') //指定当前文件夹下的所有html文件
        .pipe(minhtml()) //进行压缩
        .pipe(gulp.dest('build')) //将压缩后的文件输出到build文件夹下
        .pipe(browserSync.stream()); //自动打开浏览器

})

// 定义path
var path = {
    css: './css/*.css',
    js: './js/*.js',
    html: './*.html',
    src: './build'    
};

// 命令行输入gulp或者 gulp default的时候就会执行
gulp.task('default', function(){
    //把任务串联起来
    gulp.start('js', 'css', 'img', 'html');

    //打开静态服务器
    browserSync.init({
        server:{
            baseDir: path.src
        },
        port:3000,
        open:false
    }, function(){
        var homepage = 'http://localhost:3000/';
        opn(homepage);
    });

    //监听文件的变化实时编译 然后刷新
    gulp.watch([path.html, path.js, path.css]).on("change", function() {
        gulp.start('js', 'css', 'img', 'html');        
        browserSync.reload();
    });
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

九败一胜

九败一胜

李志刚 / 北京联合出版公司 / 2014-9-1 / 42.00元

所有的创业者都面临着很多问题,困惑不是个人的,是有共性的。 除了自身去摸索着石头走路,他们还可以通过学习,从那些在创业路上走得更远的创业者身上学到经验、教训。 这本书的主角——王兴,恰好就是一个很好的学习对象。出生于1979年的王兴,很早就创业了,2004他就开始和同学一块创业,2005年做出了校内网;2007年,他又做出了饭否网——这是中国最早的类似twitter的网站。 ......一起来看看 《九败一胜》 这本书的介绍吧!

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具