2017春 前端自动化(二) 页面自动刷新、sass与css转换的使用、pxToRem直观转换

时间:2021-02-12 08:55:40

2017春 前端自动化(二)   页面自动刷新、sass与css转换的使用、pxToRem直观转换

引言:
  此文要演示:浏览器页面自动刷新;移动端px与rem的转换,简单直观化;使用sass自动生成css进行编译,而不是借助于考拉工具;
  顺便从头来一遍流程……
 
2017春 前端自动化(二)   页面自动刷新、sass与css转换的使用、pxToRem直观转换
 
建立如上图01所示的目录结构,层次明晰,便于日后管理。

快捷键进入当前文件夹,在此打开dos窗口
输入:node -v,显示node版本,说明node之前已经安装好(之前已经介绍安装方法)
 
2017春 前端自动化(二)   页面自动刷新、sass与css转换的使用、pxToRem直观转换

之后安装 cnpm,为了日后安装所需的包,速度更快一些(基于阿里云的服务)
  输入:  npm install -g cnpm --registry=https://registry.npm.taobao.org

 输入:npm init ,以来生成packge.json文件 ,便于查找对比,哪个工具存在

2017春 前端自动化(二)   页面自动刷新、sass与css转换的使用、pxToRem直观转换

在当前目录,安装gulp
 输入:cnpm install gulp  --save-dev 

(ps: cnpm node gulp 全局安装一次,默认之前都有了;局部安装 gulp 输入:cnpm install gulp --save-dev )

接着,安装,浏览器自动实时刷新  browser-sync 
dos输入:cnpm install browser-sync --save-dev

2017春 前端自动化(二)   页面自动刷新、sass与css转换的使用、pxToRem直观转换

接下来,安装 sass,安装 sass之前,需要预先安装ruby,这样我们可以摆脱考拉工具了,纯dos下, 是不是显得略屌点……

ruby 安装 地址
http://rubyinstaller.org/downloads/
下载,安装

2017春 前端自动化(二)   页面自动刷新、sass与css转换的使用、pxToRem直观转换

之后,dos下输入:cnpm install gulp-sass --save-dev   来安装 sass
(ps:如果 cnpm执行不下去,就执行 npm)
 
新建立html页面
------------------------------------------------------【html页面-------------------------------------------------------------
<!doctype html>
<html>

<head>
<title>我是首页</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=100%, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0,user-scalable=no" />
<meta content="telephone=no" name="format-detection" />
<meta name="apple-mobile-web-app-title" content="">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-touch-fullscreen" content="yes">
<meta content="black" name="apple-mobile-web-app-status-bar-style">
<meta http-equiv="x-ua-compatible" content="ie=edge,chrome=1">
<link href="static/css/out/base.css" type="text/css" rel="stylesheet" />
<link href="static/css/out/main.css" type="text/css" rel="stylesheet" />
</head>

<body>

   <ul class="list">
     <li>菜单1</li>
     <li>菜单2</li>
   </ul>

   <button class="button">确定</button>
</body>

</html>
------------------------------------------------------html页面】-------------------------------------------------------------
 
------------------------------------------------------【关键css片段----------------------------------------------------------
html {
    font-size: 20px;
}

@media only screen and (min-width: 400px) {
    html {
        font-size: 21.33px !important;
    }
}

@media only screen and (min-width: 414px) {
    html {
        font-size: 22.08px !important;
    }
}
@media only screen and (min-width: 480px) {
    html {
        font-size: 25.6px !important;
    }
}
$browser-default-font-size: 40px !default;
@function pxToRem($px) {
    //$px为需要转换的字号
    @return $px / $browser-default-font-size * 1rem;
}
------------------------------------------------------关键css片段】----------------------------------------------------------
在项目里面,右键新建,gulpfile.js文件
开始写任务
------------------------------------------------------【gulpfile.js片段----------------------------------------------------------
var gulp=require("gulp");
var browserSync=require("browser-sync");
var sass=require("gulp-sass");

gulp.task("server",["listenProduct","buildSass"],function(){
console.log("server is starting.....");
browserSync.init({
 server:"./dev",
 port:8383,
 reloadDelay:500,
 notify:true,
 files:[
   "./dev/*.html",
   "./dev/static/css/def/scss/*.scss",
   "./dev/static/css/out/*.css",
   "./src/static/js/def/*.js",
   "./src/static/js/out/*.js",
  ]
});
});
gulp.task("listenProduct",function(){
gulp.watch("./dev/static/css/def/scss/*.scss",["autoBuildConcat"]);
});

gulp.task("autoBuildConcat",function(){
   runSequence("buildSass");
});

gulp.task("buildSass",function(){
 console.log("buildSass")
 return gulp.src('./dev/static/css/def/scss/*.scss')
.pipe(sass({
outputStyle:"expanded"
}))
.pipe(gulp.dest("./dev/static/css/out/"));
});

gulp.task("default",function(){
gulp.start("server");
});
涉及到之前已略有介绍此相关
这里只显示主要内容片段
------------------------------------------------------gulpfile.js片段】----------------------------------------------------------
在main.scss里面写
.button{
    width: pxToRem(100px);
    height:pxToRem(100px);
    display: block;
    margin: 0 auto;
    text-align: center;
}

这样之后
dos下输入 gulp 一个命令  即可自动打开如下 页面,实现了:自动刷新,px  rem换算 ,sass  css转换 
 
2017春 前端自动化(二)   页面自动刷新、sass与css转换的使用、pxToRem直观转换
且,通过如此配置, 你可以,随心所欲的使用sass,而不是再去借助于考拉工具
这里,可以不必在去口算,心算psd的具体宽度,高度
psd上面,是多少,就写多少
这里,已经帮你配置好,换算好
 
(ps:描述过程中的截图,是为了更好的匹配选择,减少弯路过程;加粗或背景是重点。)
 
多谢,田兄,一路指点,方可完善。
 
下载地址 ;http://files.cnblogs.com/files/leshao/auto01.rar 
                               

2017春 前端自动化(二) 页面自动刷新、sass与css转换的使用、pxToRem直观转换的更多相关文章

  1. 详解Grunt插件之LiveReload实现页面自动刷新(两种方案)

    http://www.jb51.net/article/70415.htm    含Grunt系列教程 这篇文章主要通过两种方案详解Grunt插件之LiveReload实现页面自动刷新,需要的朋友可以 ...

  2. 方法总结:如何实现html页面自动刷新

    使用场景: 1. 页面需要定时刷新,实时加载数据,需要实时查看监控数据(H5中的WebSocket和SSE可以实现局部刷新) 2. 一定时间之后跳转到指定页面(登录注册之类) 3. 前端开发使用伪数据 ...

  3. 如何实现html页面自动刷新

    使用场景: 1. 页面需要定时刷新,实时加载数据,需要实时查看监控数据(H5中的WebSocket和SSE可以实现局部刷新) 2. 一定时间之后跳转到指定页面(登录注册之类) 3. 前端开发使用伪数据 ...

  4. PHP 页面自动刷新可借助JS来实现,简单示例如下:

    <?php  echo "系统当前时间戳为:"; echo ""; echo time(); //<!--JS 页面自动刷新 --> echo ...

  5. HTML 页面自动刷新

    学习就是一个不断积累的过程,每一天能够学到一点新东西说明自己就在进步!! HTML head 里面设置页面自动刷新功能 <meta http-equiv="Refresh" ...

  6. 实现html页面自动刷新的几种方式

    自动页面刷新通常会用在对数据的实时性比较敏感的网站中,比如股票走势等,另外在普通的页面自动跳转中也会使用到页面自动刷新技术. 页面刷新我见过的有三种方式,下面来一一说明 1.通过在<head&g ...

  7. 如何设置页面自动刷新第一篇&quest;&quest; servlet setHeader&lpar;&quot&semi;refresh&quot&semi;&comma;&quot&semi;2&quot&semi;&rpar;

    import java.io.IOException; import java.util.Random; import javax.servlet.ServletException; import j ...

  8. JAVA-JSP内置对象之response对象实现页面自动刷新

    相关资料:<21天学通Java Web开发> response对象 实现页面自动刷新1.可以通过response对象的addIntHeader()方法添加一个标题为Refrsh的标头,并指 ...

  9. html(对php也有效)页面自动刷新和跳转(简单版本)

    <html>    <head><title>html页面自动刷新和跳转</title><meta http-equiv="Refres ...

随机推荐

  1. od 查看特殊格式的文件内容

    用户通常使用od命令查看特殊格式的文件内容.通过指定该命令的不同选项可以以十进制.八进制.十六进制和ASCII码来显示文件. 语法: od [选项] 文件- 命令中各选项的含义: - A 指定地址基数 ...

  2. FindWindowEx用法

    函数原型:HWND FindWindowEx(HWND hwndParent,HWND hwndChildAfter,LPCTSTR lpszClass,LPCTSTR lpszWindow): 参数 ...

  3. jquery版本清单

    PM> Install-Package jQuery -Version 1.11.2 jQuery 2.1.3 (latest stable) 315444 Wednesday, Decembe ...

  4. 4、Type fundamentals

    1.All Types Are Derived from System.Object The CLR requires all objects to be created using the new ...

  5. C&num; 10 总复习

    数据类型--变量与常量--运算符与表达式--语句(if,for)--数组--函数--结构体 一.数据类型: (一)内建类型 整型(int short long byte uint ushort ulo ...

  6. 微信小程序教程(第三篇)

    小程序的架构及实现机制,信道服务及会话管理 小程序架构及实现机制 小程序并不是 H5 应用,而是更偏向于传统的 CS 架构,它是基于数据驱动的模式,一切皆组件(视图组件).所以建议在开发小程序时不要以 ...

  7. Luogu P1596 &lbrack;USACO10OCT&rsqb;湖计数Lake Counting

    题目描述 Due to recent rains, water has pooled in various places in Farmer John's field, which is repres ...

  8. jqGrid基础写法

    $("#jqGrid").jqGrid({ url: baseURL + 'sys/scheduleLog/list', datatype: "json", c ...

  9. 12306微信小程序上线 提供余票查询暂不支持购票

    12306微信小程序正式上线,如图所示,目前小程序提供余票查询.时刻表查询和正晚点查询三大功能,用户可在这里随时查看剩余车票以及列车时刻表.而且小程序支持用户添加行程,方便出行. 目前这款小程序还不支 ...

  10. POJ 2653 - Pick-up sticks - &lbrack;枚举&plus;判断线段相交&rsqb;

    题目链接:http://poj.org/problem?id=2653 Time Limit: 3000MS Memory Limit: 65536K Description Stan has n s ...