转载:https://www.cnblogs.com/wenqiangit/p/9717715.html#undefined

 

stylus特点

富于表现力、具有健壮性、功能丰富、动态编码

不需要写CSS的冒号、分号、大括号

和LESS、SASS功能类似,会这些的入手很快

安装

  1. 安装node+npm环境

  2. 命令行全局安装stylus

    cnpm i stylus@latest -g
  3. 可以在命令行输入 stylus -h 查看有哪些可以用的命令

使用

想将assets/css目录下的所有.styl文件编译成css怎么办?

stylus -c assets/css/

只想将assets/css/index.styl 编译成assets/css/index.css?

stylus -c assets/css/index.styl assets/css/index.css

转载补充:
我在使用上的命令时会报错,可能是更新的缘故,解决方案如下:
stylus -c assets/css/index.styl
直接跟 你要编译的 .styl 文件即可。

想将assets/css/index.css 编译成assets/css/index.styl?

stylus -C assets/css/index.css 

不想这么麻烦的用命令怎么办?

使用webstorm设置如图可以自动将.styl文件转成.css文件

注意第二张图是默认配置,无需修改,直接确定。

如果配置都是空的,可以安装我的配置填写。

如果Program项出现红色报错!是因为node环境有问题或者没有全局安装stylus

接下来只需要编写.styl文件就会自动编译出.css文件。如图

vue中使用stylus, 命令行中输入

cnpm i stylus --save-dev 

补充: 如果执行完上一个命令后,提示这样的错误:

Module not found: Error: Can't resolve 'stylus-loader'
报错 找不到 stylus-loader 模块,这时候只需
npm i stylus-loader --save-dev
//如果你用的cnpm就
cnpm i stylus-loader --save-dev

然后,报错就应该消失了。

在 .vue文件中使用, 添加使用 scoped 属性表示样式只对当前组件有效

<style scoped lang="stylus">
html,body
margin 0
padding 0
div
color #333
</style>

stylus语法

#### (一)选择器

  • 1.冒号,分号,大括号可写可不写

  • 2.后代关系用相同缩进表示

  • 3.父子关系用 >表示

  • 4.伪类元素用 & 表示其宿主元素

  • 5.属性写在前, 嵌套子元素样式写在后

  • 6.分组选择器用相同缩进即可, 如 +a +span +span

#### (二)变量

1.定义变量并赋值(建议用$作为变量前缀), 如$width=3px

2.定义函数(arguments为内置所有参数, 也可自定义参数), border() $width dashed #foo

3.函数参数可以写默认值,类似于es6的解构赋值, 如 padding(top=1px,right=2px)

3.方法名加() 为调用函数,如 border()

4.建议变量定义在最上面, 然后是函数, 然后才是代码. 最好的方式是变量和函数定义成单独的文件, 然后通过@import "variable.styl"导入

5.使用@height 会冒泡查找值, 如自身有此属性则获取该属性值; 否则层层向上查找该属性, 如果都没有则报错

6.可以使用运算符进行计算

7.z-index 1 unless @z-index 表示默认 z-index=1 除非 @z-index 存在

(三)插值

1.实现类似 autoprefixer.css 的效果给兼容属性加前缀

2.使用循环 for in 减少代码量

3.使用 if-else 判断逻辑

(四)运算符

[]
! ~ + -
is defined
** * / %
+ -
... ..
<= >= < >
in
== is != is not isnt
is a
&& and || or
?:
= := ?= += -= *= /= %=
not
if unless

(五)内置函数

函数实例 说明
unit(14%,px) 14px 直接用第二个参数替换第一个参数的
abs(-5px) 5px  
ceil(2.3px) 3px 向上取整
floor(2.6px) 2px 向下取整
round(2.6px) 3px 四舍五入取整
min(1,2) 1  
max(1,2) 2  
even(3) false 是否为偶数
odd(3) true 是否为奇数
sum(1 2 3) 6  
avg(1 2 3) 2  
join(‘,’,1 2 3) 1 2 3 使用第一个参数为连接符将后面数组连接
length(1 2 3 4) 4  
image-size(‘aa.png’) 20px 30px 获取图片宽高

(六)尾参数…

1.可以使用 args... 或者 arr... 等接受所有参数; 前面也可以单个接受参数; 但是 尾参数写法只能作为最后一个参数

2.也可以使用 args[0] 或者 arguments[0] 这种下标的方式访问

3.args... 会忽略 , ;如果希望不忽略请使用 arguments

补充: 这部分自己练习代码示例:

(七)@extend继承

1.使用 @extend 将公共样式抽取, 用子类继承; 在html中可以少写一个类名 ,如 class="btn btn-primary" 只需要写成 class="btn-primary" 

stylus入门教程,在webstorm中配置stylus的更多相关文章

  1. 在webstorm中配置sass的自动编译,并且可以指定编译后的css的目录.

    参考: WebStorm-2018.2-Help-Sass, Less, and SCSS 作者:tobyDing链接:https://www.jianshu.com/p/0fe52f149cab來源 ...

  2. WebStorm中配置node.js(Windows)

    WebStorm中配置node.js(Windows) 一.node 1.下载安装包 32 位 : https://nodejs.org/dist/v4.4.3/node-v4.4.3-x86.msi ...

  3. 在webstorm中配置sass环境

    最近开始用SASS,LESS等来写CSS,而在Webstorm中,它自带一个File Watchers功能,设置一下,即可实时编译SASS,LESS等. LESS的实时编译很简单,在node平台安装一 ...

  4. ASP.NET MVC5 + EF6 入门教程 (6) View中的Razor使用

    文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-ef-6-get-started-model.html 上一节:ASP.NET MVC ...

  5. 在webstrorm中配置好es6 babel【更新:在webstorm中配置.vue和.vue文件中支持es6】

    第一步:全局安装babel-cli npm install -g babel-cli 第二步,新建一个空项目,在 WebStorm 中的当前项目中打开 Terminal,进入项目的根目录下, 安装 E ...

  6. [Android Studio 权威教程]AS 中配置强大的版本号管理系统(Git、SVN、等)

    在Eclipse中加入Git等版本号管理工具须要自己加入插件.并且个人认为不咋好用,在AS中已经给我们集成好了,我们仅仅须要配置一下就OK了.今天就和大家聊聊怎么配置以及使用的要点. 1. 安装Git ...

  7. matlab使用libsvm入门教程——使用matlab安装配置libsvm以及一个svm分类实例

    前言 此教程专注于刚入门的小白, 且博客拥有时效性, 发布于2019年3月份, 可能后面的读者会发现一些问题, 欢迎底下评论出现的问题,我将尽可能更新解决方案. 我开始也在如何安装libsvm上出现了 ...

  8. 【教程】ubuntu中配置tftp

    1. 安装 tftpd ( tftp 服务器). tftp ( tftp 客户端)以及 xinetd (超级服务器) 1. 安装 tftpd ( tftp 服务器). tftp ( tftp 客户端) ...

  9. Framework7 - 入门教程(安装、配置、创建一个H5应用)

    1,Framework7介绍 (1)Framework7 是一个开源免费的框架.可以用来开发混合移动应用(原生和 HTML 混合)或者开发 iOS & Android 风格的 WEB APP. ...

随机推荐

  1. 操作dom影响性能的原因

    为什么dom操作会影响性能? 在浏览器当中,dom的实现和ECMAScript的实现是分离的. 例如,在IE中,ECMAScrit的实现在jscript.dll中,而DOM的实现在mshtml.dll ...

  2. 经典视觉SLAM框架

    经典视觉SLAM框架 整个视觉SLAM流程包括以下步骤: 1. 传感器信息读取.在视觉SLAM中主要为相机图像信息的读取和预处理. 2. 视觉里程计(Visual Odometry,VO).视觉里程计 ...

  3. 不指定虚拟路径的前提下通过http访问pdf、图片等文件

    通常我们通过http访问图片或者pdf的时候都是将文件上传到指定文件夹下面,然后通过配置虚拟路径来访问指定的资源. 在不配置虚拟路径的情况下,我们通过获取到response的outpurstream, ...

  4. Linux今日疑问

    问题一:who -r没有反应 ========== 首先我查询了运行等级的含义. 0: 关机 1: 单用户 2: 无网络的多用户 3: 命令行模式 4: 未用 5: GUI(图形桌面 模式) 6 : ...

  5. 从无文件技术到使用隐写术:检查Powload的演变

    来源:https://blog.trendmicro.com/trendlabs-security-intelligence/from-fileless-techniques-to-using-ste ...

  6. python 指定日期图片文件删除

    手机使用python操作图片文件 起因 前几天去国图拍了一本书,一本心理学方面的书,也许你问我为什么不去买一本,或者去网上找pdf. 其实吧,关于心理学方面的书可以说在市面上一抓就是一堆,至于拍这本书 ...

  7. $Django 中间件 csrf

     中间件  -中间件是什么?请求和响应之间的一道屏障  -中间件作用:控制请求和响应  -django中内置几个中间件   process_request(self,request)   proces ...

  8. GIT入门文档

    集中式(SVN): 集中式版本控制系统,版本库是集中存放在中央服务器的,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器. 集中式版本控制系 ...

  9. mysql生成数据字典

    git clone https://github.com/twindb/undrop-for-innodb.git make [root@redis01 undrop-for-innodb]# mak ...

  10. Ex 4_10 给定一个有向图G=(V,E),其中边...(bellman-ford算法的应用).._第十二次作业

    在bellman-ford算法中,循环n-1(n为顶点个数)次可以找出从源点到其他顶点的最多n-1条边的最短路径,若循环k次则可以找出从源点到其他顶点的最多k条边的最短路径. package org. ...