使用css进行前端样式的编写无疑是痛苦的:所有的样式都放在同一个文件下,不支持变量,不支持嵌套语法,很容易写着写着就成百上千行,这使得样式的后期维护变得无比头疼。Sass, LESS, stylus等css预处理语言的出现无疑解决了css的很多痛点,例如使用Sass进行样式的编写能够让我们结构化的管理所有的样式文件,然后通过@import
语法来引入到主样式文件上。这使得样式文件的可读性、维护性增强。以下记录scss经典的7-1布局,具体的Sass目录结构请参考:Sass-template
基本目录结构(7–1 Pattern)
scss的目录结构与js相似的目录结构:相同的组件统一放在一个文件夹下,然后绑定到DOM节点的父组件放在最外层目录下。
styles/
|
|-- base/ # 包含整个项目最基本的基础样式
| |-- _reset.scss # 或者_normalize.scss
| |-- _typography.scss # 排版样式
| |-- _base.scss # 一些通用的html标签的样式,比如<body/>, <a/>
| …
|
|-- components/ # 基础组件
| |-- _buttons.scss # 按钮
| |-- _search.scss # 搜索按钮
| …
|
|-- helpers/
| |-- _variables.scss # Sass Variables
| |-- _functions.scss # Sass Functions
| |-- _mixins.scss # Sass Mixins
| …
|
|-- layouts/
| |-- _header.scss # Header
| |-- _footer.scss # Footer
| |-- _sidebar.scss # Sidebar
| …
|
|-- pages/
| |– _admin.scss # admin页面的特殊样式
| |– _login.scss # login页面的特殊样式
| |– _main.scss # main页面的特殊样式
| …
|
|– themes/
| |– _theme.scss # 默认主题
| …
|
|-- vendor/ # 来自第三方的CSS或Sass文件,比如Bootstrap, jQuery
| |-- _hon-dls.min.scss
| |-- _loadMask.scss
| |-- _react-bootstrap-table.min.css # 当然可以包含css文件
| …
|
`-- main.scss # 主Sass文件放在最外层目录下
`-- admin.scss
`-- login.scss
`-- changePwd.scss
`-- resetPwd.scss
主样式表
主样式表应该尽可能的干净整洁,所有样式都通过@import
进行引用。为了保证可读性,主样式表应该遵循如下的规范:
- 一个
@import
对应一个文件 - 一个
@import
占一行 - 相同文件夹下的两个
@import
之间不空行 - 不同文件夹下的两个
@import
之间要空行 - 省略文件后缀,省略前导的
_
下划线
@import "helpers/variables";
@import "helpers/mixins";
@import 'vendors/loadMask';
@import 'vendors/bootstrap.min.css';
@import "base/base";
@import "base/typography";
@import "components/button";
@import "layout/header";
@import "layout/footer";
@import "pages/_main";
网友评论