"工具样式"的概念和 SASS(SCSS)

在webpack中使用sass

安装sass和sass-loader

$ npm i sass sass-loader

由于使用了脚手架,安装完毕后重启前端即可

样式重置

其实就是样式的初始化

// reset* {box-sizing: border-box; // 以边框为准. css3盒模型outline: none; // 不需要高亮: 有时候在页面中使用tab切换,a标签可能会出现高亮
}html {font-size: 13px; // 定义网址的基础字体大小 1rem = 13px
}body {margin: 0;font-family: Arial, Helvetica, sans-serif;line-height: 1.2em;background: #f1f1f1;
}a {color: #999
}

网站色彩和字体定义(colors, text)

生成网站的色调

首先定义基色掉

// colors
$colors: ("primary": #db9e3f,"white": #fff,"light":#f9f9f9,"grey": #999,"dark-1": #343440,"dark": #222,"black": #000,
);

使用网站的色调 + scss 生成网站的文字颜色和背景颜色

// $colors是上面定义的6种颜色
@each $colorKey, $color in $colors{.text-#{$colorKey}{color: $color}.bg-#{$colorKey} {background: $color}
}

以上生成的等价于下面的css(部分)

.text-white{color: #fff
}
.text-light{color: #f9f9f9
}
.text-grey: {color: #999
}

生成字体大小

假设网站主要有 10px、 12px、 13px、 14px和16px。我们想生成网站的主要字体尺寸(vscode中,下载插件 px to rem, 然后点击设置, 输入px to rem, 将Px-to-rem: Px-per-rem设为13).

之后写如下函数

// font size: 10px 12px 13px 14px 16px
$font-sizes: (xs: 10px, sm: 12px, md: 13px, lg: 14px, xl: 16px);

选中以上,按alt + z, 以上代码就变为如下

$font-sizes: (xs: 0.7692rem, sm: 0.9231rem, md: 1rem, lg: 1.0769rem, xl: 1.2308rem);

然后根据基字体大小生成需要的字体大小样式

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

编译完后,会生成以下的css

.fs-xs {font-size: 0.7692rem
}
.fs-sm {font-size: 0.9231rem
}
.fs-md {font-size: 1rem
}
.fs-lg {font-size: 1.0769rem
}
.fs-xl {font-size: 1.2308rem
}

生成文本的左中右对齐

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

以上生成等价于下面

.text-left{text-align: left
}
.text-center{text-align: center
}
.text-right {text-align: right
}

通用flex布局样式定义

flex布局

// 主轴是水平方向
.d-flex{display: flex;
}
// 主轴是竖直方向
.flex-column{flex-direction: column;
}
.flex-1 {flex: 1
}
.flex-grow-1 {flex-grow: 1
}

主轴上面的排序方式

$flex-jc:(start: flex-start,end: flex-end,center: flex-center,between: space-between,around: space-around
);
// 主轴上面的元素排序方式
@each $key, $value in $flex-jc{.jc-#{$key} {justify-content: $value}
}
// 侧轴上面元素的排序方式
$flex-ai:(start: flex-start,end: flex-end,center: center,stretch: stretch
);@each $key, $value in $flex-ai{.ai-#{$key} {align-items: $value}
}

常用边距(margin,padding)

常用的边距属性,参考bootstrap里面类名的定义,大致有下面几种:

.m-0 {margin: 0rem;
}
.mx-0 {margin-left: 0rem;margin-right: 0rem
}
.mt-0 {margin-top: 0rem;
}

下面使用工具样式生成常用边距

  • 首先定义边距的类型: 主要有marginpadding
$spacing-types: (m: margin, p: padding)
  • 定义边距的方向: top、right、bottom、left
$spacing-directions: (t: top, r: right, b: bottom, l: left)
  • 定义边距类的基础大小
$spacing-base-size: 1rem;
  • 定义边距类的尺寸
$spacing-sizes: (0:0, 1: 0.25, 2: 0.5, 3: 1, 4: 1.5, 5: 3)

之后是使用定义的变量,动态生成常用的边距类(css)

@each $typeKey, $type in $spacing-types{// .m-1@each $sizeKey, $size in $spacing-sizes{.#{$typeKey}-#{$sizeKey} {#{$type}: $size * $spacing-base-size    }}@each $sizeKey, $size in $spacing-sizes{// .mx-0,  .mx-1,  .mx-2 ....#{typeKey}x-#{$sizeKey} {.#{$type}-left: $size * $spacing-base-size;.#{$type}-right: $size * $spacing-base-size;}// .my-0,  .my-1,   .my-2  ....#{typeKey}y-#{$sizeKey} {.#{$type}-top: $size * $spacing-base-size; .#{$type}-bottom: $size * $spacing-base-size;}}// .mt-1, .mr-1@each $directionKey, $direction in $spacing-directions{@each $sizeKey, $size in $spacing-sizes{// .mt-1{margin-top: 0.25rem}.#{$typeKey}#{$directionKey}-#{$sizeKey}{#{$type}-#{$direction}: $size * $spacing-base-size;}}}
}

css --- 使用scss生成常用的基本css样式相关推荐

  1. Html5 css文本属性,html5常用文本标签、CSS文本外观属性,你了解多少?

    一.HTML5中常用的文本标签 1.标题标签 (1)定义及用法: HTML中,定义了6级标题,分别为h1. h2.h3.h4. h5. h6,每级标题的字体大小依次递减,1级标题字号最大,6级标题字号 ...

  2. vue组件中通过css或scss修改三方组建的style样式

    层叠样式 要修改三方ui组件的样式必须先了解css样式的层叠优先级,比较简单来说, !important > 行style > id选择 > 多class选择 > 元素类型选择 ...

  3. css div 段落,一些常用的DIV+CSS的网页布局所用的代码段

    单行一列 以下是引用片段: body { margin: 0px; padding: 0px; text-align: center; } #content { margin-left:auto; m ...

  4. 2021-11-15 入门前端VScode必装的常用插件, HTML+CSS常用属性速记.

    Html + Css 学习 一.VSCode常用 //1. VScode常用快捷键 * 新建文件:ctrl + N * 切换自动换行:alt + Z * 复制当前行:ctrl + C:ctrl + V ...

  5. 常用的一些 CSS 技巧二 — 选择器(伪类与伪元素)

    你可以看看其他常用的 CSS 技巧: 常用的一些 CSS 技巧一 常用的一些 CSS 技巧三 CSS 重置盒模型 *, *::before, *::after {box-sizing: border- ...

  6. CSS入门六、常用技巧

    零.文章目录 CSS入门六.常用技巧 1.精灵图 (1)为什么需要精灵图 一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多时,服务器就会频繁地接收和发送请求图片,造成服务器请求压力过大 ...

  7. css文件如何设置scss,在SCSS文件中导入常规CSS文件?

    回答(14) 3 years ago 截至撰写本文时,看起来这是未实现的: https://github.com/sass/sass/issues/193 对于libsass(C / C实现),导入对 ...

  8. Conversion error:Jekyll::Converters::Scss encountered an error while converting css/main.scss

    错误描述:Conversion error: Jekyll::Converters::Scss encountered an error while converting 'css/main.scss ...

  9. 在SCSS文件中导入常规CSS文件?

    本文翻译自:Import regular CSS file in SCSS file? Is there anyway to import a regular CSS file with Sass's ...

最新文章

  1. 没有Hyper-V服务,WP Emulator无法启动
  2. cgi,fastcgi,php-cgi,php-fpm之间的关系
  3. 数论练习(1)——取余运算(快速幂)
  4. python中random什么意思_python中的random
  5. 硬盘序列号示例_序列化代理模式示例
  6. jq中查找上级_【节能学院】电能管理系统在福州三岐小学项目中的设计及应用...
  7. Andoid自动判断输入是电话,网址或者Email的方法----Linkify的应用!
  8. 黄聪:Python中的__metaclass__=type什么意思?
  9. qmessagebox 设置显示屏幕中间_windows7屏幕分辨率设置
  10. 省级、县级行政区shapefile下载
  11. 推荐 5 个优秀的 Javascript 图标库
  12. 135、137、138、139、445等端口解释和关闭方法
  13. cmd中回退到上一级文件目录 与 定位下一级目录
  14. 计算机组成:中断向量的相关计算
  15. PDApp.log占用C盘几十G空间,原因及解决方案
  16. C语言为什么不会过时?
  17. win7 光盘计算机修复,大师为您win7系统vd光盘在电脑上打不开的恢复教程
  18. 关于Oracle建表带双引号问题
  19. 输出平行四边形的底和高,求平行四边形的面积
  20. 错误源计算机检,Voevodsky | 单一基础的源起——为避免数学错误而发展计算机验证证明的个人使命...

热门文章

  1. ajax post提交数据_详解Ajax异步加载
  2. 双机通信c语言程序,双机通信(C语言、主机和从机共用程序)
  3. gorm preload 搜索_文件太多忘记了文件放在什么地方?那你可以试试这款文件搜索工具...
  4. bootstrap jquery alert_bootstrap第七课
  5. oracle loop index,oracle index 聚集因子
  6. C# 多态相关的文章
  7. windows系统作为客户端时,linux中本地yum源挂载时,如何同时挂载DVD1和DVD2?
  8. CocosPods 引入项目,哪些文件需要上传到服务器呢?
  9. 1.java的基础和数据类型
  10. 本地存储cookie和localStorage区别特点