css --- 使用scss生成常用的基本css樣式

"工具樣式"的概念和 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;}}}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/250246.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/250246.shtml
英文地址,請注明出處:http://en.pswp.cn/news/250246.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vc/vs開發的應用程序添加dump崩潰日志轉

原貼地址:https://blog.csdn.net/wangkui1331/article/details/78029940 vc/vs開發的應用程序出現崩潰的時候,由于沒有任何記錄,導致開發人員很難追蹤,但是添加dump文件后,就可以免除這些煩惱 1.添加方法 (…

51 nod 1127最短的包含字符串(尺取法)

1127 最短的包含字符串 收藏關注給出一個字符串,求該字符串的一個子串S,S包含A-Z中的全部字母,并且S是所有符合條件的子串中最短的,輸出S的長度。如果給出的字符串中并不包括A-Z中的全部字母,則輸出No Solution。Input…

Java --- 基礎學習Ⅰ

第一章 開發前言 位、字節 位(bit): 一個數字0或一個數字1,代表一位 字節(Byte): 每逢8位是一個字節,這時數據存儲的最小單位 1 Byte 8 bit 1 KB 1024 Byte 1 MB 1024 KB 1 GB 1024 MB 1 TB 1024 GB 1 PB 1024 TB MS-DOS(Microsoft Disk Operating System) 第二章 Ja…

JSON 數據重復 出現$ref

JSONArray 類型 如果我們往里面add數據的時候 如果數據相同,那么就會被替換成 $ref: 也就是被簡化了 因為數據一樣所直接 指向上一條數據 循環引用:當一個對象包含另一個對象時,fastjson就會把該對象解析成引用。引用是通過$ref標示的&am…

Java --- 基礎學習Ⅱ

繼承 繼承概述 下面有一個學生類 public class Student{private String name;private int age;public void study(){System.out.println("努力學習了");}public String getName() {return name;}public void setName(String name) {this.name name;}public int g…

urllib庫

python內置的最基本的HTTP請求庫,有以下四個模塊: urllib.request  請求模塊 urllib.error    異常處理模塊 urllib.parse   url解析模塊 urllib.robotparser robots.txt解析模塊 urllib.request請求模塊: urllib.request.urlopen(u…

layer的刪除詢問框的使用

刪除是個很需要謹慎的操作 我們需要進行確認 對了刪除一般使用ajax操作 因為如果同url請求 處理 再返回 會有空白頁 1.js自帶的樣式 <button type"button" data-toggle"tooltip" title"刪除" class"btn btn-danger pull-right btn-xs&qu…

文獻筆記(八)

一、基本信息 標題&#xff1a;MySQL數據庫在自動測試系統中的應用 時間&#xff1a;2017 出版源&#xff1a;寧夏職業技術學院 領域分類&#xff1a;無線互聯科技 二、研究背景 問題定義&#xff1a;文章介紹了MySQL數據庫的特點&#xff0c;結合自動測試系統運行中的實際&…

Java --- 常用API

常用API 方法重載: 方法名相同,方法接收的參數不同 static: 修飾的類,可以直接使用類名進行調用 方法名說明public static abs(int a)返回參數的絕對值public static double ceil(double a)返回大于或等于public static double floor(double a)返回小于或等于參數的最大doubl…

9. 彈出鍵盤擋住input

1.) react 中 <input className"inp3" placeholder"密碼" type"password" onChange{this.changepassword.bind(this)} onFocus{this.FocusFN.bind(this)} value{this.state.paswword}/> FocusFN(){ setTimeout(()>{ let pannel docume…

Linux初學時的一些常用命令(4)

1. 磁盤 查看當前磁盤使用情況 df -h查看某個文件大小 du -sh 文件名 如果不輸入文件名&#xff0c;默認是當前目錄的所有文件之和&#xff0c;即當前目錄大小 2. 系統內存 free參數詳解&#xff1a;https://blog.csdn.net/loongshawn/article/details/51758116 3. CPU CPU 使用…

小程序 --- 項目小練手Ⅰ

1. 接口文檔 2. 幫助文檔 小程序開發文檔 mdn 阿里巴巴字體 iconfont 3. 項目搭建 3.1 新建小程序項目 填入自己的appid: wxdbf2b5e8c2f521a3 3.2 文件結構 一級目錄 目錄名作用styles存放公共樣式components存放組件lib存放第三方庫utils自己的幫助庫request自己的接口…

vue aixos請求json

this.axios.get(/static/json/jinxiangZhe.json).then(res>{console.log(res);}).catch( error > {console.log(error,error)}) 轉載于:https://www.cnblogs.com/SunShineM/p/9087734.html

小程序 --- Tab組件的封裝

1. Tabs組件的封裝 1.1 組件的引入 使用自定義的組件很簡單,只需在使用組件的頁面的配置文件.json文件中配置. // pages/goods_list/index.json {"usingComponents":{"Tabs": "../../components/Tabs/Tabs"} }然后再.wxml文件中使用即可 <…

爬蟲之拉勾網職位獲取

重點在于演示urllib.request.Request()請求中各項參數的 書寫格式 譬如&#xff1a; url data headers...Demo演示&#xff08;POST請求&#xff09;:import urllib.requestimport urllib.parseimport json, jsonpath, csvurl "https://www.lagou.com/jobs/positionAjax.…

小程序 --- 點擊放大功能、獲取位置信息、文字樣式省略、頁面跳轉(navigateTo)

1. 點擊放大功能的實現 需求: 點擊輪播圖中的圖片會實現放大預覽的功能。首先有輪播圖的樣式如下 <!-- pages/goods_detail/index.wxml --> <!-- 輪播圖 --> <view class"detail_swiper"><swiperautoplaycircularindicator-dots><swip…

Axure實現多用戶注冊驗證

*****多用戶登錄驗證***** 一、&#xff08;常規想法&#xff09;方法&#xff1a;工作量較大&#xff0c;做起來繁瑣 1、當用戶名和密碼相同時怎么區分兩者&#xff0c;使用冒號和括號來區分&#xff1a; eg. (admin:123456)(123456:demo)(zhang:san);由此得出前面是括號后面是…

前端插件網址

http://www.swiper.com.cn/轉載于:https://www.cnblogs.com/luchuangao/p/9088057.html

python --- opencv部分學習

1. OpenCV 1.1 opencv概念 OpenCV是一個基于BSD許可(開源)發行的跨平臺計算機視覺庫可以運行在Linux、Windows、Android和Mac OS操作系統上它輕量級而且高效 – 有一系列C函數和少量 C 類構成同時提供了 Python、Ruby、MATLAB等語言的接口實現了圖像處理和計算機視覺方面的很…

hive與hbase集成

環境: hadoop2.7.7 hive3.1.0 hbase2.0.2 1.jar包拷貝(之所以用這種方式,是因為這種方式最為穩妥,最開始用的軟連接的方式,總是卻少jar包)到hive的lib目錄下刪除所有hbase相關的jar rm -rf hbase-*.jar 接著從hbase的lib目錄下拷貝所有的hbase相關jar cp -a hbasehome/lib/hba…