scss预处理器在项目中的常见用法

简介: scss预处理器在项目中的常见用法

循环生成字体水平方向上的对齐样式



@each $var in (left,center,right) {
  .text-#{var} {
    text-align: $var;
  }
}


定义网站色彩的基本样式库



1,定义网站的主色调


$colors: (
        'primary': #db9e3f,
        'info': #4b67af,
        'danger': #791a15,
        'blue-1': #1f3695,
        'blue': #4394e4,
        'white': #fff,
        'white-1': #fcfcfc,
        'white-2': #eceef0,
        'light': #f9f9f9,
        'light-1': #d4d9de,
        'grey': #999,
        'grey-1': #666,
        'dark-1': #343440,
        'dark': #222,
        'black': #000,
);


2.根据主色调生成字体样式和背景


@each $colorKey,$color in $colors {
  .text-#{$colorKey}{
    color:$color;
  }
  .bg-#{$colorKey}{
    background-color:$color
  }
}


生成网站的标准字体大小



1.首先,定义基本字体大小


$base-font-size: 1rem;


2.然后按照一定比列,得到其他的字体大小


$font-sizes: (
  xs:0.7692, //10px
  sm:0.9231,// 12px
  md:1, //13px
  lg: 1.0769, //14px
  xl:1.2308,
);


3.循环生成字体大小


@each $sizeKey, $size in $font-sizes {
  .fs-#{$sizeKey}{
    font-size: $size * $base-font-size;
  }
}


通用flex布局方式



1.flex基本布局


.d-flex {
  display: flex;
}


2.主轴的对齐方式


$flex-jc:(
  start: flex-start,
  end: flex-end,
  center: center,
  between: space-between,
  around: space-around,
);


3.循环生成主轴上的对齐样式


@each $key,$value in $flex-jc {
  .jc-#{$key} {
    justify-content: $value;
  }
}


同理,生成align-items的样式


$flex-ai:(
  start:flex-start,
  end:flex-end,
  center:center,
  stretch:stretch,
);
@each $key,$value in $flex-ai {
  .ai-#{$key} {
    align-items: $value;
  }
}


左边固定,右边自动占满


.flex-1 {
  flex:1;
}
// 精确写法
.flex-grow-1 {
  flex-grow:1;
}


规范网站边距



定义基本边距尺寸,方便以后修改


$spacing-base-size: 1rem;


定义边距的类型


$spacing-types:(
  m:margin,
  p:padding,
);


定义边距的方向


$spacing-directions:(
  t:top,
  r:right,
  b:bottom,
  l:left,
);


定义边距大小,设置0-5六个等级


$spacing-sizes:(
  0:0,
  1:0.25,
  2:0.5,
  3:1,
  4:1.5,
  5:3,
);


准备工作完成,循环生成三类样式,分别是


1.margin-top margin-bottom margin-left margin-right

2.margin,padding样式,及上下左右四个方向都有样式

3.左右,上边的margin和padding值


@each $typeKey, $type in $spacing-types {
  // .m-1 上下左右四个方向都有边距
  @each $sizeKey, $size in $spacing-sizes {
    .#{$typeKey}-#{$sizeKey} {
      #{$type}: $size * $spacing-base-size;
    }
  }
  // .mx-1 , .my-1 x表示水平方向上的边距,y表示竖直方向上的边距
  @each $sizeKey, $size in $spacing-sizes {
    .#{$typeKey}x-#{$sizeKey} {
      #{$type}-left: $size * $spacing-base-size;
      #{$type}-right: $size * $spacing-base-size;
    }
    .#{$typeKey}y-#{$sizeKey} {
      #{$type}-top: $size * $spacing-base-size;
      #{$type}-bottom: $size * $spacing-base-size;
    }
  }
  // .mt-1 具体的某个方向上的边距
  @each $directionKey, $direction in $spacing-directions {
    @each $sizeKey, $size in $spacing-sizes {
      .#{$typeKey}#{$directionKey}-#{$sizeKey} {
        #{$type}-#{$direction}: $size * $spacing-base-size;
      }
    }
  }
}


网站基本样式规范完毕!!!


目录
相关文章
|
11天前
|
前端开发
【专栏:CSS进阶篇】CSS变量与预处理器(Sass/Less)
【4月更文挑战第30天】本文探讨了CSS变量和预处理器Sass的使用,以提升开发效率和代码可维护性。CSS变量通过--*语法定义,可在文档范围内重用,减少冗余,提高可维护性。Sass预处理器引入了变量、嵌套规则、混合和函数等特性,使CSS编写更简洁、可维护。Sass变量使用$符号定义,支持嵌套规则和混合,如定义border-radius混合以减少重复代码。Sass的高级功能使其成为强大工具。
|
4月前
|
前端开发 编译器 Python
拥抱简洁:探索Stylus的简洁语法与CSS预处理器之美
拥抱简洁:探索Stylus的简洁语法与CSS预处理器之美
|
8月前
|
JavaScript 前端开发 Java
JS中和java语法相近的用法和语句
JS中和java语法相近的用法和语句
58 1
|
9月前
|
前端开发 JavaScript
使用Vue编写css预处理器的方法
使用Vue编写css预处理器的方法
|
9月前
|
前端开发
详细介绍less(css预处理语言)
详细介绍less(css预处理语言)
78 0
|
9月前
|
前端开发
CSS预处理器Sass和Less的使用指南(下)
CSS预处理器Sass和Less的使用指南(下)
|
9月前
|
资源调度 前端开发 JavaScript
CSS预处理器Sass和Less的使用指南(上)
CSS预处理器Sass和Less的使用指南(上)
105 0
|
前端开发 编译器
Less-CSS预处理语言快速入门
Less-CSS预处理语言快速入门
66 0
|
前端开发
sass的使用方法
sass的使用方法
|
前端开发
CSS 即将支持嵌套,SASS/LESS 等预处理器已无用武之地?
CSS 即将支持嵌套,SASS/LESS 等预处理器已无用武之地?
638 0
CSS 即将支持嵌套,SASS/LESS 等预处理器已无用武之地?