less_scss.rar

  • zqzqqwe
    了解作者
  • HTML
    开发工具
  • 112KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 0
    下载次数
  • 2020-12-06 20:47
    上传日期
less&sass代码示例,里面包含了less的基本语法教程,sass的基本教程
less_scss.rar
内容介绍
# CSS预处理器学习Less&Sass ## 1、安装环境搭建 ### less ``` 首先设置npm源:npm config set registry https://registry.npm.taobao.org 查看源:npm get registry 使用nodejs局部安装: npm install less -D ``` 看下面一段less简单嵌套的源码: ``` less body{ margin: 0; padding: o; } .contain { background: #fff; .nav{ font-size: 18px; .content { background-color: bisque; &:hover{ color: yellow; } } } } ``` 保存为一个hello.less 然后调用 ** .\node_modules\.bin\lessc.cmd .\hellow.less > hellow.css ** 查看hellow.css的内容: ```css body { margin: 0; padding: o; } .contain { background: #fff; } .contain .nav { font-size: 18px; } .contain .nav .content { background-color: bisque; } .contain .nav .content:hover { color: yellow; } ``` 下面来看一段sass的源码,和less基本相同: ```scss body{ margin: 0; padding: o; } .contain { background: #fff; .nav{ font-size: 18px; .content { background-color: bisque; &:hover{ color: yellow; } } } } ``` 然后使用命令: ** .\node_modules\.bin\node-sass.cmd --output-style expanded .\hellow.scss hellow-sass.css ** 来进行编译(--output-style expanded 的作用是输出文件为展开的CSS样式文件) ## less中变量的使用 在less中我们使用 @变量名 来命名一个变量,如下示例: ```less @baccolor:red; @my_font:14px; body{ margin: 0; padding: o; } .contain { background:lighten(@baccolor, 40%); .nav{ font-size: @my_font; .content { background-color: @baccolor; font-size: 14px + 2px; &:hover{ color: yellow; } } } } ``` 然后运行编译命令后输出以为css文件内容: ```css body { margin: 0; padding: o; } .contain { background: #ffcccc; } .contain .nav { font-size: 14px; } .contain .nav .content { background-color: red; font-size: 16px; } .contain .nav .content:hover { color: yellow; } ``` 可以看到背景色和字体大小都通过变量的计算发生了变化 ## sass的变量用法使用 $加变量名 ```scss $baccolor:red; $my_font:14px; body{ margin: 0; padding: o; } .contain { background:lighten($baccolor, 40%); .nav{ font-size: $my_font; .content { background-color: $baccolor; font-size: 14px + 2px; &:hover{ color: yellow; } } } } ``` 编译后的输出为 ``` css body { margin: 0; padding: o; } .contain { background: #ffcccc; } .contain .nav { font-size: 14px; } .contain .nav .content { background-color: red; font-size: 16px; } .contain .nav .content:hover { color: yellow; } ``` 和less的输出基本上相似 ## mixin的使用 mixin可以使CSS代码进行复用,如下在less中的使用: ```less @fontSize: 12px; @bgColor: red; // 使用一个类选择器来定义个一个mixin函数,有以下两种方式: // 不加括号类型的 .my_mixin_block1{ width: 300px; height: 200px; } // 不加括号的mixin编译后会存在,加括号的会消失 .my_mixin_block2(@input_px){ width: 300px + @input_px; height: 200px + @input_px; } body{ padding:0; margin:0; } .wrapper{ background:lighten(@bgColor, 40%); .my_mixin_block1(); .nav{ .my_mixin_block1(); color:red; } .content{ .my_mixin_block2(50px); &:hover{ background:red; } } } ``` 以下是编译后的css文件内容: ```css .my_mixin_block1 { width: 300px; height: 200px; } body { padding: 0; margin: 0; } .wrapper { background: #ffcccc; width: 300px; height: 200px; } .wrapper .nav { width: 300px; height: 200px; color: red; } .wrapper .content { width: 350px; height: 250px; } .wrapper .content:hover { background: red; } ``` ## sass mixin的用法 sass中使用如下语法来定义一个mixin,创建方式与使用方式相对less都有所区别 ```scss $fontSize: 12px; $bgColor: red; @mixin block1($input_size){ font-size: $input_size; border: 1px solid #ccc; border-radius: 4px; } @mixin block2{ border: 1px solid #ccc; border-radius: 4px; width: 300px; height: 400px; } body{ padding:0; margin:0; } .wrapper{ background:lighten($bgColor, 40%); .nav{ @include block1($fontSize + 4px); } .content{ @include block2(); &:hover{ background:red; } } } ``` ## extend的使用 使用extend方法可以使CSS选择自动分组,可以减少代码重复 如下是less中使用extend的示例: ```less @fontSize: 12px; @bgColor: red; .block1{ font-size: @fontSize; border: 1px solid #ccc; border-radius: 4px; } .block2{ width: 300px ; height: 400px ; } body{ padding:0; margin:0; } .wrapper{ background:lighten(@bgColor, 40%); .nav:extend(.block1){ color: #333; }; .main:extend(.block2){ color:red }; .content{ &:extend(.block1); &:hover{ background:red; } } } ``` 输出CSS文件的内容为: ```css .block1, .wrapper .nav, .wrapper .content { font-size: 12px; border: 1px solid #ccc; border-radius: 4px; } .block2, .wrapper .main { width: 300px ; height: 400px ; } body { padding: 0; margin: 0; } .wrapper { background: #ffcccc; } .wrapper .nav { color: #333; } .wrapper .main { color: red; } .wrapper .content:hover { background: red; } ``` ## sass中extend的使用: ```scss $fontSize: 12px; $bgColor: red; .block{ font-size: $fontSize; border: 1px solid #ccc; border-radius: 4px; } body{ padding:0; margin:0; } .wrapper{ background:lighten($bgColor, 40%); .nav{ @extend .block; color: #333; } .content{ @extend .block; &:hover{ background:red; } } } ``` ## 循环语句在less中的实现 由于less中没有循环语句,因此我们需要借用递归来实现循环,如下实例: ```less .gen-col(@n) when (@n > 0){ .gen-col(@n - 1); .col-@{n}{ width: 1000px/12*@n; } } .gen-col(12); ``` 输出结果为: ```css .col-1 { width: 83.33333333px; } .col-2 { width: 166.66666667px; } .col-3 { width: 250px; } .col-4 { width: 333.33333333px; } .col-5 { width: 416.66666667px; } .col-6 { width: 500px; } .col-7 { width: 583.33333333px; } .col-8 { width: 666.66666667px; } .col-9 { width: 750px; } .col-10 { width: 833.33333333px; } .col-11 { width: 916.66666667px; } .col-12 { width: 1000px; } ``` ## sass中loop的实现 sass中有可用的循环语句,因此可以有如下实现 ```scss // @mixin gen-col($n){ // @if $n > 0 { // @include gen-col($n - 1); // .col-#{$n}{ // width: 1000px/12*$n; // } // } // } // @include gen-col(12); @for $i from 1 through 12 { .col-#{$i} { width: 1000px/12*$i; } } ``` ## import的使�
评论
    相关推荐