前言:我必须得承认在最最最开始的时候,我对于css的预编译是非常不以为然的,这是错误的。一般在页面编写过程中,我会将需要reset的css放在reset.css中,讲会需要重复用到的放置到public.css中,对于常用的几个数据,例如字体font-10,font-12,font-24,font-36,对于margin来说margin-top-10,margin-bottom-10等等,这样修改起来也非常方便,不过在看了(瞬间忘记了书名)以后,减少引入能够优化页面性能。

我们都知道,浏览器的工作原理,它向服务器端发送请求,服务器返回所请求的文件,那么显然文件越少越好。精灵图就是为了减少客户端向服务器发送请求。

在css中将公用的css文件复制到所需要的文件中是极为耗时并且不方便的,使用预编译语言能够解决这个问题,那么在页面引用中只需要引入当前页面对应css文件就可以了。

这里顺便介绍一下stylus预编译语言。

一、环境安装

stylus的安装依赖nodejs环境,因此需要先安装nodejs环境,这个怎么安装在上篇中有写到。

简单带过,就是进入nodejs官网,下载首页显示的最新版本,安装,完成以后打开cmd命令行,进入到当前目录文件夹中。

二、stylus安装

在控制面板中输入命令,npm install stylus -g

npm install stylus --save-dev

三、grunt构建工具和gulp构建工具

grunt比较复杂,这里就只简单介绍一下gulp,在上一篇介绍nodejs的博客中应该有提到gulp自动化构建工具。这里安装完成以后,需要一个gulpfile.js文件,在根目录下直接输入gulp会启动default任务命令。你可以再写一个default去调用,也可以在命令行输入调用任务名。

var gulp = require('gulp');
var stylus = require('gulp-stylus');
gulp.task('stylus', function(){ return gulp.src('./assets/stylus/**/*.styl') .pipe(stylus()) .pipe(gulp.dest('./assets/css')); });

四、重要的语法

导入:@import,(这就是我为什么突然痛改前非的原因!!!!)

@import "reset.css"

可以导入css可以导入stylus,当没有后缀名的时候,会认为导入的是stylus

@import"reset"

更多语法可以参考http://www.zhangxinxu.com/jq/stylus/import.php

【前端开发】优化代码之减少引入,css预编译语言的优点,stylus的使用的更多相关文章

  1. 前端开发【第2篇:CSS】

    鸡血 样式的属性多达几千个,但别担心,按照80-20原则,常用的也就几十个,你完全可以掌握它. Css初识 HTML的诞生 早期只有HTML的时候为了让HTML更美观一点,当时页面的开发者会把颜色写到 ...

  2. laravel 中CSS 预编译语言 Sass 快速入门教程

    CSS 预编译语言概述 CSS 作为一门样式语言,语法简单,易于上手,但是由于不具备常规编程语言提供的变量.函数.继承等机制,因此很容易写出大量没有逻辑.难以复用和扩展的代码,在日常开发使用中,如果没 ...

  3. Front End Developer Questions 前端开发人员问题(二)CSS 后续

    问题来源:http://markyun.github.io/2015/Front-end-Developer-Questions/ 31.视差滚动效果,如何给每页做不同的动画?(回到顶部,向下滑动要再 ...

  4. CSS预编译语言-LESS

    LESS的作用 CSS层叠样式表,它是标记语言,不是编程语言:所有的预编译CSS语言(less/sass…)都是赋予了CSS的面向对象思想 LESS的编译 LESS叫做预编译CSS:写好的LESS代码 ...

  5. css预处理器 sass和stylus对比以及常用功能

    在众多的css预处理器语言中,sass和stylus算是十分优秀的两个.本文主要针对两者的常用功能做个简单的对比分析.在对比中了解二者的差异,同时帮助大家更好的掌握这两种预处理语言. 本文涉及到的sa ...

  6. Web前端开发基础 第四课(CSS小技巧1)

    垂直居中-父元素高度确定的单行文本 父元素高度确定的单行文本的竖直居中的方法是通过设置父元素的 height 和 line-height 高度一致来实现的.如下代码: <div class=&q ...

  7. Web前端开发基础 第四课(CSS小技巧)

    水平居中设置-行内元素 我们在实际工作中常会遇到需要设置水平居中场景,今天我们就来看看怎么设置水平居中的. 如果被设置元素为文本.图片等行内元素时,水平居中是通过给父元素设置 text-align:c ...

  8. Web前端开发基础 第四课(CSS元素模型)

    css布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之上,又 ...

  9. Web前端开发基础 第四课(CSS元素分类)

    元素分类 在讲解CSS布局之前,我们需要提前知道一些知识,在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素.内联元素(又叫行内元素)和内联块状元素. 常用的块状元素有: <di ...

随机推荐

  1. POJ 2942 Knights of the Round Table

    Knights of the Round Table Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 10911   Acce ...

  2. BZOJ2815: [ZJOI2012]灾难

    传送门 学LCA的时候根本没意识到LCA可以有这么多玩法. 这玩意据说是个高级数据结构(支配树)的弱化版,蒟蒻没学过呀.所以出题人提出一个概念叫灾难树. 我理解的灾难树的意思实际上是属于DAG的一个子 ...

  3. Linux ip

    工具/原料 linux系统 putty 方法/步骤   Linux下查看IP一般都是用命令在终端查看了,使用命令行来进行查看.   想要在图形界面查看的朋友也有办法,不过就比较复杂,不如一条命令来得痛 ...

  4. 海思H264解码库 hi_h264dec_w.dll 水印问题

    上一篇   海思h264解码库 , 实现了H264帧的简单解码,但更换相机后,出现了解码视频中央出现水印的问题,水印如下图 查找网络,基本就这一篇相关的,还没给出好的解决办法. http://bbs. ...

  5. lodop打印控件

    http://www.c-lodop.com/demolist/PrintSampIndex.html

  6. List拆分成多个集合

    如果对一组大的集合进行操作,想分组进行,比如批量新增10000条数据,想100条分成一个集合分成100个集合,对集合进行操作100次,用C#如何编写,这里记录下代码如下 //构造被分隔的集合 List ...

  7. Android Studio的配置问题——Intel HAXM is required to run this AVD,VT-x is disabled in BIOS;

    Intel HAXM is required to run this AVD,VT-x is disabled in BIOS;Enable VT-x in your BIOS security se ...

  8. golang笔记——并发

    go语言中的main函数也是运行在一个单独的goroutine中的,一般称为 main goroutine,main函数结束时,会打断其它 goroutine 的执行,但是其它 goroutine 不 ...

  9. 关于Spring中的<context:annotation-config/>配置

    当我们需要使用BeanPostProcessor时,直接在Spring配置文件中定义这些Bean显得比较笨拙,例如: 使用@Autowired注解,必须事先在Spring容器中声明AutowiredA ...

  10. Excel函数——DATE、SUBSTITUTE、REPLACE、ISERROR、IFERROR

    1.DATE DATE 函数返回表示特定日期的连续序列号.例如,公式 =DATE(2008,7,8) 返回 2008-7-8或39637,取决于单元格格式,但空单元格计算和默认为日期格式. DATE也 ...