【前端开发】优化代码之减少引入,css预编译语言的优点,stylus的使用
前言:我必须得承认在最最最开始的时候,我对于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的使用的更多相关文章
- 前端开发【第2篇:CSS】
鸡血 样式的属性多达几千个,但别担心,按照80-20原则,常用的也就几十个,你完全可以掌握它. Css初识 HTML的诞生 早期只有HTML的时候为了让HTML更美观一点,当时页面的开发者会把颜色写到 ...
- laravel 中CSS 预编译语言 Sass 快速入门教程
CSS 预编译语言概述 CSS 作为一门样式语言,语法简单,易于上手,但是由于不具备常规编程语言提供的变量.函数.继承等机制,因此很容易写出大量没有逻辑.难以复用和扩展的代码,在日常开发使用中,如果没 ...
- Front End Developer Questions 前端开发人员问题(二)CSS 后续
问题来源:http://markyun.github.io/2015/Front-end-Developer-Questions/ 31.视差滚动效果,如何给每页做不同的动画?(回到顶部,向下滑动要再 ...
- CSS预编译语言-LESS
LESS的作用 CSS层叠样式表,它是标记语言,不是编程语言:所有的预编译CSS语言(less/sass…)都是赋予了CSS的面向对象思想 LESS的编译 LESS叫做预编译CSS:写好的LESS代码 ...
- css预处理器 sass和stylus对比以及常用功能
在众多的css预处理器语言中,sass和stylus算是十分优秀的两个.本文主要针对两者的常用功能做个简单的对比分析.在对比中了解二者的差异,同时帮助大家更好的掌握这两种预处理语言. 本文涉及到的sa ...
- Web前端开发基础 第四课(CSS小技巧1)
垂直居中-父元素高度确定的单行文本 父元素高度确定的单行文本的竖直居中的方法是通过设置父元素的 height 和 line-height 高度一致来实现的.如下代码: <div class=&q ...
- Web前端开发基础 第四课(CSS小技巧)
水平居中设置-行内元素 我们在实际工作中常会遇到需要设置水平居中场景,今天我们就来看看怎么设置水平居中的. 如果被设置元素为文本.图片等行内元素时,水平居中是通过给父元素设置 text-align:c ...
- Web前端开发基础 第四课(CSS元素模型)
css布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之上,又 ...
- Web前端开发基础 第四课(CSS元素分类)
元素分类 在讲解CSS布局之前,我们需要提前知道一些知识,在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素.内联元素(又叫行内元素)和内联块状元素. 常用的块状元素有: <di ...
随机推荐
- MySQL索引背后的数据结构及算法原理
摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...
- Publishing failed with multiple errors 异常
Publishing failed with multiple errors 在使用eclipse发布项目时不能自动生成class文件,且无法启动调试的Tomcat服务.启动过程提示 以上 异常 解决 ...
- 去掉你代码里的 document.write("<script...
在传统的浏览器中,同步的 script 标签是会阻塞 HTML 解析器的,无论是内联的还是外链的,比如: <script src="a.js"></script& ...
- Js中文排序(拼音首字母)
演示地址:http://lar5.sinaapp.com/ 1.index.html <html xmlns="http://www.w3.org/1999/xhtml"&g ...
- XHTML的规则
以正确的DOCTYPE和命名空间开始文档 使用meta内容元素声明你的字符编码 用小写字母写所有元素和属性名称 给所有属性值加引号 给所有属性赋一个值 关闭所有标签 用空格和斜杠关闭“空”标签 不要在 ...
- 微信公众平台推出"微信保护"提升微信账号安全 附微信保护开启教程
前两天小美女的微信公众平台要群发消息时提示需要绑定手机才能操作,当时还以为是动态ip的问题,今天微信公众平台安全中心就说升级了,原来那时已经在公测了.微信公众平台推出"微信保护", ...
- CSS控制表格(table)样式
CSS控制表格样式 /* 合并边框重叠部分 */ table{border-collapse:collapse;} /* 单元格边框 */ td{border:1px solid #A7AEB1;}
- 基于浏览器的HTML5地理定位
基于浏览器的HTML5地理定位 地理位置(Geolocation)是 HTML5 的重要特性之一,提供了确定用户位置的功能,借助这个特性能够开发基于位置信息的应用.今天这篇文章向大家介绍一下 HTML ...
- javascript基础03
javascript基础03 1. 算术运算符 后增量/后减量运算符 ++ ,-- 比较运算符 ( >, <, >=, <=, ==, !=,===,!== ) 逻辑运算符( ...
- T-SQL 语句的优化
SQL调优. 1.索引是数据库调优的最根本的优化方法.聚簇索引.非聚簇索引. 聚簇索引:物理序与索引顺序相同.(只能有一个) 非聚簇索引:物理顺序与索引顺序不相同. 2.调整WHERE 子句中的连接顺 ...