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

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

内容简介:在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();
    });
});

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

查看所有标签

猜你喜欢:

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

Agile Web Development with Rails 4

Agile Web Development with Rails 4

Sam Ruby、Dave Thomas、David Heinemeier Hansson / Pragmatic Bookshelf / 2013-10-11 / USD 43.95

Ruby on Rails helps you produce high-quality, beautiful-looking web applications quickly. You concentrate on creating the application, and Rails takes care of the details. Tens of thousands of deve......一起来看看 《Agile Web Development with Rails 4》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

在线进制转换器
在线进制转换器

各进制数互转换器

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具