stylus介绍

Stylus 是一个CSS的预处理框架,2010年产生,来自Node.js社区,主要用来给Node项目进行CSS预处理支持,所以 Stylus 是一种新型语言,可以创建健壮的、动态的、富有表现力的CSS。比较年轻,其本质上做的事情与 SASS/LESS 等类似,应该是有很多借鉴,所以近似脚本的方式去写CSS代码,它的文件扩展名是.styl”。

文档参考

官方stylus文档
张鑫旭中文翻译

Stylus基本应用

body
color white
==>
body {
color: #fff;
} textarea, input
border 1px solid #eee
==>
textarea,
input {
border: 1px solid #eee;
}

乍一看是不是觉得很奇怪,冒号、花括号、分号统统不见了。这就是stylus的神奇之处,你如果不习惯的话,Stylus也接受标准的CSS语法,同时也可以像Sass老的语法规则,使用缩进控制

body{
color white
}

或者

body{
color:white;
}

以上两者编译结果都为

body{
color:white;
}

stylus同样可以像sass、less等使用Mixins、Functions等

比如mixin

support-for-ie ?= true
opacity(n)
opacity n
if support-for-ie
filter unquote('progid:DXImageTransform.Microsoft.Alpha(Opacity=' + round(n * 100) + ')') #logo:hover
opacity 0.5

渲染结果为:

#logo:hover {
opacity: 0.5;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
}

这里就不对其功能做一一介绍了,详情可以参照上面提供的官方文档

编译生成CSS

这里主要讲如何用sublime的插件生成,当然还有命令行、grunt等方式生成本文不做陈述了,想要了解的可以查看stylus入门使用或者参照其他例子
如果你使用sublime,你可以ctrl+shift+p调出控制台然后输入install package然后输入stylus然后回车安装,安装成功后在package settings你会看到如蓝色背景条所示

展开蓝色背景条,在setting-user里面进行配置即可

{
"envPATH": "", //环境的路径
"binDir": "", //项目路径
"compileOnSave": true, //是否编辑保存
"compileDir": true, //编译到指定目录
"compress": true, //是否压缩
"compilePaths": {"": ""} //输出路径
}

设置完成之后建立.styl文件,然后编辑保存,你就会在输出路径里面看到编译好的css文件了

结束语

1、现在CSS预处理器技术已经非常的成熟,已经有很多预处理框架Sass、Less CSS、Stylus还有Postcss,选择哪一种完全看个人喜好。
2、网上已经有很多关于stylus的教程,但是在处理编译这一块没有谈及直接用编辑器的插件处理的,至少我之前是没找到相关,也许是我搜索的不够全面。
3、文章有写的不对的地方可以留言指出本人将及时改正,毕竟自己的见解总是有限的,有兴趣的可以加入前端交流QQ群:519875573 进行讨论。

直接使用sublime编译stylus的更多相关文章

  1. 用sublime编译C++的方法

    sublime代码高亮这么好看,怎么能不用sublime敲代码呢: ) 本人用的版本是sublime Text3中文版 在网上查了查,自己的sublime现在也能编译C++了,设置步骤如下: 1.找到 ...

  2. 自从用了Less 编写css,你比以前更快了~(sublime编译)

    之所以用这个标题呢,主要是最近调侃杰伦太有意思了. 好吧,开个玩笑而已. 如果你了解过Less,并对之很熟悉,就不用往下看了. 如果你没用过,恭喜,这是一个入门级的教程,学会了它,可以为你节省10%的 ...

  3. sublime编译javaScript脚本

    处理步骤: 1. 首先到 nodejs.org 下载 Node.js 安装包并安装.2. 打开 Sublime Text 3 编辑器.选择菜单 Tools --> Build System -- ...

  4. sublime 编译C++

    http://www.yalewoo.com/sublime_text_3_gcc.html 这篇博客很强 完美解决在sublime里写C++无法输入的问题 sublime text 3配置c/c++ ...

  5. Mac sublime 编译Python UnicodeEncodeError: 'ascii' codec can't encode characters in position 6-8: ordinal not in range(128)

    刚学Python,想打印个“hello 张林峰”,代码如下: #!/usr/bin/env python3 # -*- coding: utf-8 -*- print('hello 张林峰') 用su ...

  6. sublime 编译运行C程序

    { "cmd": ["gcc", "${file}", "-o","${file_path}/${file_b ...

  7. Sublime 编译出来的是 dos格式,不是unix格式

    在windows下编辑一般都这样的 :set ff=unix就好

  8. Sublime 编译运行JavaScript

    Tools > Build System > New Build System... { "cmd": ["node", "$file&q ...

  9. windows 10 下sublime text 3配置c/c++编译环境

    来源于在网上各种帖子,自己成功配置之后写作笔记: 检查环境变量 首先配置重定义环境变量,过程如下: 创建一个test.c文件 内容: #include <stdio.h> int main ...

随机推荐

  1. 利用POST请求模拟登录豆瓣

    需要用requests库 豆瓣上次更新后,就不能通过直接的requests.post()方式直接传递参数登录了.必须新建session,先GET请求,然后POST才能成功.原因未知 data参数中的四 ...

  2. 串口通讯之rs232 c++版本

    rs232.cpp #ifndef kranfix_rs232_rs232_cc #define kranfix_rs232_rs232_cc #include "rs232.h" ...

  3. 详细了解 synchronized 锁升级过程

    前言 首先,synchronized 是什么?我们需要明确的给个定义--同步锁,没错,它就是把锁. 可以用来干嘛?锁,当然当然是用于线程间的同步,以及保护临界区内的资源.我们知道,锁是个非常笼统的概念 ...

  4. Typora笔记上传到博客

    Typora笔记上传到博客 Markdown是一种轻量级标记语言,排版语法简洁,让人们更多地关注内容本身而非排版.它使用易读易写的纯文本格式编写文档,可与HTML混编,可导出 HTML.PDF 以及本 ...

  5. tp5 商品模型的添加展示

    路由 //商品模型展示的路由 Route::get('type','/pyg/good/listType'); //将type_id传送至/pyg/good/addType的路由 Route::get ...

  6. linux php 环境word转pdf、excel转pdf、office转pdf

    最近项目中遇到一个需求,将word.excel文件转换成pdf,并且打上水印,我利用的是libreoffice,这个需要Java 的jdk环境.废话不多说,开撸 1.在linux上搭建jdk环境 文章 ...

  7. 完全激活win server 2012的方法(亲测可行!)

    1.从微软官网下载评估版. 2.运行->CMD(最好以管理员身份运行)->输入"DISM /online /Get-CurrentEdition"(最好直接复制粘贴,然 ...

  8. python安装jupyter notebooks(windows下)

    [1]前提 前提:下载好Python并把python添加到了Path路径 以3.8为例子,在安装的时候有个这个勾选项,Add Python 3.8 to PATH,勾上就好,没有的话.就把python ...

  9. CentOS 5.11源修改

    CentOS 5.11源 将源中所有网址替换为 http://archive.kernel.org/centos-vault/你的版本/ 一条sed命令即可解决 sed -i 's@http://xx ...

  10. Linux移植总结--Linux中asm和arch的软链接

    @ 目录 问题 include <asm/aaa.h>实际用的是asm-arm/aaa.h include <asm/arch/memory.h>实际用的是include/as ...