循环生成字体水平方向上的对齐样式
@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; } } } }
网站基本样式规范完毕!!!