样式规范
样式规范定义了项目中CSS/SCSS代码的编写标准,确保代码的一致性和可维护性。
📝 命名规范
BEM 命名法
scss
// Block Element Modifier
.card { }
.card__header { }
.card__body { }
.card--primary { }
.card--large { }
CSS 变量命名
scss
// 语义化命名
--app-bg: #fafbfc;
--menu-hover-bg: #f5f5f5;
--button-primary-text: #fff;
// ❌ 避免
--color-1: #fafbfc;
--bg-2: #f5f5f5;
SCSS 变量命名
scss
// 使用连字符分隔
$primary-color: #409eff;
$sidebar-width: 240px;
$border-radius-base: 8px;
// ❌ 避免驼峰命名
$primaryColor: #409eff;
$sidebarWidth: 240px;
🎨 代码组织
文件结构
scss
// 1. 外部导入
@use 'abstracts/variables' as *;
@use 'abstracts/mixins' as *;
// 2. 局部变量
$local-spacing: 16px;
// 3. Mixin 定义
@mixin component-style { }
// 4. 样式规则
.component { }
选择器顺序
scss
.component {
// 1. 定位
position: relative;
top: 0;
left: 0;
// 2. 盒模型
display: flex;
width: 100%;
height: auto;
padding: 16px;
margin: 0;
// 3. 排版
font-size: 14px;
line-height: 1.5;
text-align: center;
// 4. 视觉
background: var(--bg-level-1);
border: 1px solid var(--app-border);
border-radius: var(--radius-md);
color: var(--app-text);
// 5. 其他
cursor: pointer;
transition: all var(--duration-normal);
}
🔧 使用规范
1. 优先使用变量
scss
// ✅ 推荐
.component {
background: var(--bg-level-1);
border-radius: var(--radius-md);
transition: all var(--duration-normal);
}
// ❌ 避免硬编码
.component {
background: #ffffff;
border-radius: 8px;
transition: all 0.3s;
}
2. 嵌套层级控制
scss
// ✅ 推荐:嵌套不超过3层
.nav {
.nav-item {
.nav-link {
// ...
}
}
}
// ❌ 避免过深嵌套
.nav {
.nav-list {
.nav-item {
.nav-link {
.nav-icon {
// 过深
}
}
}
}
}
3. 使用 Mixin 复用
scss
// ✅ 推荐
.card {
@include card-style;
}
// ❌ 重复代码
.card {
background-color: var(--bg-level-1);
border: 1px solid var(--bg-level-2);
border-radius: var(--radius-md);
// ...
}
📏 代码格式
缩进和空格
scss
// 使用2个空格缩进
.component {
padding: 16px;
&:hover {
background: var(--bg-level-2);
}
}
// 选择器后加空格
.component { } // ✅
.component{ } // ❌
// 属性值前加空格
padding: 16px; // ✅
padding:16px; // ❌
注释规范
scss
/**
* 卡片组件样式
* @description 提供统一的卡片视觉效果
*/
.card {
// 基础样式
padding: 16px;
/* 悬停效果 */
&:hover {
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
}
}
✅ 最佳实践
- 保持一致性 - 遵循项目既定规范
- 语义化命名 - 使用清晰表达意图的命名
- 避免重复 - 使用变量和Mixin复用代码
- 控制嵌套 - 嵌套层级不超过3层
- 添加注释 - 为复杂逻辑添加说明
遵循样式规范能提高代码质量和团队协作效率。