添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
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; 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;
                    "工具样式"的概念和 SASS(SCSS)在webpack中使用sass安装sass和sass-loader$ npm i sass sass-loader由于使用了脚手架,安装完毕后重启前端即可样式重置其实就是样式的初始化// reset* {  box-sizing: border-box; // 以边框为准. css3盒模型  outline: none; // 不需...
				
在项目中使用 SCSS/SASS 进行样式编写无疑会节省很多开发样式的时间。关于如何在 vue-cli v3.0 中使用 SCSS/SASS,这里提供三种方案。前提是在使用 vue-cli 生成项目时勾选了 CSS Pre-processors (CSS预处理器),否则无法在项目中直接使用。 方案一:在组件中直接使用 在组件中直接使用 SCSS/SASS 是最简单的方式: <style lang=scss scoped> </style> 通过 lang 选项可以选择使用的语法: scss/sass。如果希望样式能够在全局范围内生效,就将 scoped 删除。 方案二:在组件中导入 .s
box-sizing: border-box; // 以边框为准. css3盒模型 outline: none; // 不需要高亮: 有时候在页面中使用tab切换,a标签可能会出现高亮 html { font-size: 13px; // 定义网址的基础字体大小 1rem = 13px body {
其实循环生成css都是定义一个数组,然后遍历生成,主要在于各个语言的调用方式不一样. 这里使用的rem作为基准单位,也可以用px或者其他 _variable.scss文件 // 文件名以下划线开头表示被引用文件,引用时不用加下划线和后缀名 //定义颜色 $colors:(primary: #db9e3f, info: #4b67af, danger: #791a16, blue-1: #1f3695, 'blue': #4394e4, "white": #fff, //当键名与变量名
要在Vue中使用postcss-px-to-viewport,您需要完成以下步骤: 1. 安装依赖:首先,您需要安装postcss-px-to-viewport依赖。您可以使用npm或yarn来安装。 npm install postcss-px-to-viewport --save-dev yarn add postcss-px-to-viewport --dev 2. 配置PostCSS:接下来,您需要在项目根目录下创建postcss.config.js文件,并将postcss-px-to-viewport添加到插件列表中。例如: ```javascript module.exports = { plugins: { autoprefixer: {}, "postcss-px-to-viewport": { viewportWidth: 750, // 视口宽度 viewportHeight: 1334, // 视口高度 unitPrecision: 3, // 保留小数位数 viewportUnit: 'vw', // 单位 selectorBlackList: ['.ignore', '.hairlines'], // 排除的选择器 minPixelValue: 1, // 小于或等于1px时不转换 mediaQuery: false // 是否转换媒体查询中的单位 这里,viewportWidth和viewportHeight是视口的宽度和高度。单位为px。unitPrecision是要保留的小数位数。viewportUnit是转换后的单位。selectorBlackList是要排除的选择器列表。minPixelValue是小于或等于多少像素不进行转换。mediaQuery是指是否要转换媒体查询中的单位。 3. 在Vue中使用:现在,您已经完成了配置,可以在Vue中使用了。您可以将CSS样式放入vue组件中,然后在样式使用px单位。例如: ```html <style lang="scss" scoped> .container { width: 750px; height: 500px; background-color: #fff; margin: 0 auto; </style> 当您运行项目时,postcss-px-to-viewport将自动将px转换为vw。