百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

前端自动化less、scss、sass、stylus预处理器

yuyutoo 2024-10-12 00:01 2 浏览 0 评论

相信搞web开发的童鞋们;

多多少少都能写点css;

毕竟这玩意压根也称不上编程;

都是些固定写法死记硬背用就成了;

写css基本上都是体力活;

当然;今个不是要来讲css的;

而是要带领还在刀耕火种的使用css的童鞋们;

进入css预处理器时代;

先来段css代码;

为了直观这里直接以元素名命名class了;

.body {

background: #000;

color: #fff;

}

.body .p {

width: 100px;

height: 100px;

}

.body .p .a {

color: #eee;

}

因为css优先级的问题;

童鞋们相比对于这种一层一层的写法也是非常纠结;

每次写一个子级的样式;都要复制父级的一串选择器;

好了;第一上场的主角叫less;

这是一个只需要1分钟即可学会;

然后就能为我们的工作节省大量时间的东西;

还记得上篇文章我们安装了一个叫npm的包管理工具么;

后面我们都用cnpm代替了;

先来安装less;

cnpm install -g less

lessc -v

注意;这里是lessc;不是less;

好了;装完less;接着就是怎么用了;

找个空旷的地方;新建一个test.less文件;

把下面这段代码粘贴进去;

.body{

background: #000;

color: #fff;

.p{

width: 100px;

height: 100px;

.a{

color: #eee;

}

}

}

然后 cd 或者 git bash 到这;

运行下面编译less的命令;会生成一个test.css文件;

内容就和文章刚开始写那段css一样;

lessc test.less test.css

好了到这;我觉得就没必要讲了;

因为童鞋们扫了一眼后;就已经学会了less了;

就是简单的写成层级嵌套的的形式;

好处也很明显;一个选择器写一次就行了;

再也不用一层一层的复制父级class名了;

而且层级关系非常清晰;

还有两个重要的用法;这里给段示例;就肯定又懂了;

@base: #eee;

.a{

color: @base;

&:hover{

color: @base;

}

}

上面这段代码将生成如下css;

.a {

color: #eee;

}

.a:hover {

color: #eee;

}

那个@就是定义变量的意思;接着就是使用变量;

&: 后面跟的是伪元素类推还有:before和:after等;

别把这段复制进test.less啊;下面还要用;

更详细的就直接传送到官网吧:less官网

为什么不给个中文站?因为中文站翻译的跟没翻译差不多;

第二、第三个上场的主角叫scss和sass;

之所以两个一起上场;是因为他俩是父子关系;

先来安装个sass的包;

cnpm install -g npm-sass

把之前的那个test.less复制一份改名为 test2.scss

然后运行:

npm-sass test2.scss > test2.css

好了;scss你也学会了;完全跟less一样就行;

但是如果跟less一样;那就没必要讲了;

区别还是有的;而且更有一堆高级的用法;

首先可以 import 一个scss文件;

不同于css的import的是;scss用import最后会合并成一个文件;

然后;可以使用 $ 定义变量;把less中的@换成$就哦了;

比less强大的是;变量可以定义成数组;

更强大的是;连if、for、each、等判断和循环都可以;

以及 继承、函数、运算等等;

更详细的请点传送门:w3cplus中文教程

那sass和scss什么区别呢?

其实使用上没区别;scss 是 sass 3 引入新的语法;

但是sass继承了Ruby的语法;

就是不要花括号{ }和分号; ;靠缩进表示层级关系;后缀为.sass;

把之前的那个test.less复制一份改名为 test3.sass;

去掉花括号{ }和分号;;

.body

background: #000

color: #fff

.p

width: 100px

height: 100px

.a

color: #eee

然后运行

npm-sass test3.sass > test3.css

最后一个上场的叫Stylus;

和前面几位主角打过交道后;

到了stylus;我想说的就是;

把前面的那些代码去掉花括号、冒号、分号;

然后ok;stylus你也学会了;

光说不行;咱得走一遍溜溜;

cnpm install -g stylus

把之前的那个test.less复制一份改名为 test4.styl;

删掉花括号{ }、分号;、冒号:;

.body

background #000

color #fff

.p

width 100px

height 100px

.a

color #eee

然后运行

stylus test4.styl test4.css

更详细的文档传送门:stylus中文文档

ok;到这里;css的三种预处理器就讲解完了;

那选择恐惧症的童鞋们就该纠结了;

到底用那种好呢?其实看个人习惯;没有绝对标准;

不过;这里还是给出我的个人意见仅供参考;

stylus真是相当有创意;简洁干净;

相当满足懒人的需求;可以少打好多符号;

所以...

别急;这还有个但是;

但是;有花括号、分号、冒号;层级感更明显;更利于维护;

所以首先pass掉stylus;

sass明显比less更强大;功能更多;而学习成本并不高;

所以;接着pass掉less;

最后;前端框架界的楷模bootstrap4已经转向scss了;

就不需要我再废话了吧;

收工;买个回城卷轴;回我的被窝了;

-------------------------------------------------------------------------------------------------------

程序员交流QQ群:374604838

云服务器提供商:http://www.zunse.net

小编微信:woshiyixun

相关推荐

jQuery VS AngularJS 你更钟爱哪个?

在这一次的Web开发教程中,我会尽力解答有关于jQuery和AngularJS的两个非常常见的问题,即jQuery和AngularJS之间的区别是什么?也就是说jQueryVSAngularJS?...

Jquery实时校验,指定长度的「负小数」,小数位未满末尾补0

在可以输入【负小数】的输入框获取到焦点时,移除千位分隔符,在输入数据时,实时校验输入内容是否正确,失去焦点后,添加千位分隔符格式化数字。同时小数位未满时末尾补0。HTML代码...

如何在pbootCMS前台调用自定义表单?pbootCMS自定义调用代码示例

要在pbootCMS前台调用自定义表单,您需要在后台创建表单并为其添加字段,然后在前台模板文件中添加相关代码,如提交按钮和表单验证代码。您还可以自定义表单数据的存储位置、添加文件上传字段、日期选择器、...

编程技巧:Jquery实时验证,指定长度的「负小数」

为了保障【负小数】的正确性,做成了通过Jquery,在用户端,实时验证指定长度的【负小数】的方法。HTML代码<inputtype="text"class="forc...

一篇文章带你用jquery mobile设计颜色拾取器

【一、项目背景】现实生活中,我们经常会遇到配色的问题,这个时候去百度一下RGB表。而RGB表只提供相对于的颜色的RGB值而没有可以验证的模块。我们可以通过jquerymobile去设计颜色的拾取器...

编程技巧:Jquery实时验证,指定长度的「正小数」

为了保障【正小数】的正确性,做成了通过Jquery,在用户端,实时验证指定长度的【正小数】的方法。HTML做成方法<inputtype="text"class="fo...

jquery.validate检查数组全部验证

问题:html中有多个name[],每个参数都要进行验证是否为空,这个时候直接用required:true话,不能全部验证,只要这个数组中有一个有值就可以通过的。解决方法使用addmethod...

Vue进阶(幺叁肆):npm查看包版本信息

第一种方式npmviewjqueryversions这种方式可以查看npm服务器上所有的...

layui中使用lay-verify进行条件校验

一、layui的校验很简单,主要有以下步骤:1.在form表单内加上class="layui-form"2.在提交按钮上加上lay-submit3.在想要校验的标签,加上lay-...

jQuery是什么?如何使用? jquery是什么功能组件

jQuery于2006年1月由JohnResig在BarCampNYC首次发布。它目前由TimmyWilson领导,并由一组开发人员维护。jQuery是一个JavaScript库,它简化了客户...

django框架的表单form的理解和用法-9

表单呈现...

jquery对上传文件的检测判断 jquery实现文件上传

总体思路:在前端使用jquery对上传文件做部分初步的判断,验证通过的文件利用ajaxFileUpload上传到服务器端,并将文件的存储路径保存到数据库。<asp:FileUploadI...

Nodejs之MEAN栈开发(四)-- form验证及图片上传

这一节增加推荐图书的提交和删除功能,来学习node的form提交以及node的图片上传功能。开始之前需要源码同学可以先在git上fork:https://github.com/stoneniqiu/R...

大数据开发基础之JAVA jquery 大数据java实战

上一篇我们讲解了JAVAscript的基础知识、特点及基本语法以及组成及基本用途,本期就给大家带来了JAVAweb的第二个知识点jquery,大数据开发基础之JAVAjquery,这是本篇文章的主要...

推荐四个开源的jQuery可视化表单设计器

jquery开源在线表单拖拉设计器formBuilder(推荐)jQueryformBuilder是一个开源的WEB在线html表单设计器,开发人员可以通过拖拉实现一个可视化的表单。支持表单常用控件...

取消回复欢迎 发表评论: