【前端开发】优化代码之减少引入,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 ...
随机推荐
- unsigned无符号、有符号类型的符号拓展
先看一段代码 #include <stdio.h> main(){ unsigned ; char b = a; printf("%d %d",a,b); ; } a输 ...
- oracle中将自建用户下的所有表删除
select 'drop table '||table_name||' ;' from user_tables;select 'drop sequence '||sequence_name||' ;' ...
- 关于分页接口设计(下拉刷新上拉加载原理,解决page count请求重复数据的问题)
- hibernate-cascade级联关系
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBL ...
- Q: ossfs挂载时如何设置权限?
Q: ossfs挂载时如何设置权限? 如果要允许其他用户访问挂载文件夹,可以在运行ossfs的时候指定allow_other参数: ossfs your_bucket your_mount_point ...
- QT中检索设定目录下所有指定文件的方法
void MainWindow::on_pushButton_clicked() { QDir dir=QFileDialog::getExistingDirectory(this, tr(" ...
- 深入理解javascript原型和闭包(6)——继承
为何用“继承”为标题,而不用“原型链”? 原型链如果解释清楚了很容易理解,不会与常用的java/C#产生混淆.而“继承”确实常用面向对象语言中最基本的概念,但是java中的继承与javascript中 ...
- rqnoj343 mty的考验
题目描述 啊!几经周折.mty终于找到了他的偶像.他就是….fyc! 可是fyc这样的高级人士可不喜欢一个人总是缠着他.于是他出了一道难题想考考mty.fyc有几个手下:陈乐天,舒步鸡,胡巍……现在f ...
- LYDSY模拟赛day2 Divisors
/* 注意分解质因数,如果i是,那么n/i也是,这样就可以解决分解质因数的时间问题了 当 k ≥ 1 时,只有这些数的约数才会对答案产生贡献. 求出 m 个数的所有不超过 n 的约数,去重后统计即可. ...
- 微信小程序开发视频教程新鲜出炉
微信小程序开发公测了,可是对于新手来说,不同的框架不同的开发机制,如何快速适应呢?微信小程序开发视频教程新鲜出炉了,从零开始一步一步搭建微信小程序,每个章节都会涉及到不同的知识点,等教程学习完你不但掌 ...