汕尾商城网站建设,门户网站建设 知乎,wordpress会员过期时间,商品网站做推广方案一句话总结#xff1a; Sass CSS 变量 函数 逻辑 模块化#xff0c;是现代前端开发不可或缺的样式编程工具。
https://sass-lang.com.cn/guide/
一、什么是 Sass#xff1f;
Sass 是一种 CSS 预处理器#xff08;CSS Preprocessor#xff09;#xff0c;它扩展了…一句话总结Sass CSS 变量 函数 逻辑 模块化是现代前端开发不可或缺的样式编程工具。https://sass-lang.com.cn/guide/一、什么是 SassSass是一种CSS 预处理器CSS Preprocessor它扩展了 CSS 的功能允许你使用变量、嵌套、混合mixin、函数、条件、循环等“编程式”语法来编写样式最终编译为标准的 CSS 文件供浏览器使用。✅ 主要优势减少重复代码提高可维护性支持模块化开发更强的逻辑控制能力条件、循环更好的团队协作与主题定制二、Sass 两种语法格式Sass 支持两种语法功能相同只是写法不同格式文件扩展名特点SCSSSassy CSS.scss类似 CSS 语法使用{}和;推荐使用Sass缩进语法.sass缩进代替括号无分号类似 Python✅推荐使用.scss因为它与 CSS 完全兼容学习成本低。三、Sass 核心特性与用法1.变量Variables使用$定义变量用于存储颜色、字体、尺寸等便于统一管理。// 定义变量 $primary-color: #007bff; $font-stack: Helvetica Neue, sans-serif; $border-radius: 4px; // 使用变量 .button { background-color: $primary-color; font-family: $font-stack; border-radius: $border-radius; }编译后.button { background-color: #007bff; font-family: Helvetica Neue, sans-serif; border-radius: 4px; }2.嵌套Nesting允许在父选择器中嵌套子元素结构更清晰。.navbar { background: #333; padding: 1rem; .nav-link { color: white; text-decoration: none; :hover { color: $primary-color; } } .logo { font-weight: bold; } }编译后.navbar { background: #333; padding: 1rem; } .navbar .nav-link { color: white; text-decoration: none; } .navbar .nav-link:hover { color: #007bff; } .navbar .logo { font-weight: bold; }表示父选择器常用于:hover,:focus, 伪类等。3.混合Mixins类似“函数”可定义可复用的样式块支持参数和默认值。// 定义一个带阴影的 mixin mixin box-shadow($x: 0, $y: 2px, $blur: 4px, $color: rgba(0,0,0,0.1)) { box-shadow: $x $y $blur $color; } // 使用 mixin .card { include box-shadow(0, 4px, 8px, rgba(0,0,0,0.15)); } .button { include box-shadow(); }编译后.card { box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15); } .button { box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); }4.继承Extend让一个选择器继承另一个的样式减少重复。%message-shared { border: 1px solid #ccc; padding: 10px; color: #333; } .success { extend %message-shared; border-color: green; } .error { extend %message-shared; border-color: red; }编译后.success, .error { border: 1px solid #ccc; padding: 10px; color: #333; } .success { border-color: green; } .error { border-color: red; }%placeholder是占位符选择器不会输出到 CSS仅用于继承。5.函数FunctionsSass 内置大量函数如lighten(),darken(),rgba()也可自定义函数。$base-color: #007bff; .button-primary { background-color: $base-color; border-color: darken($base-color, 10%); color: lighten($base-color, 40%); }编译后.button-primary { background-color: #007bff; border-color: #005ecc; color: #b3d9ff; }6.条件与循环if / for / each / whileSass 支持编程逻辑适合生成复杂样式。示例使用each生成按钮主题$themes: ( primary: #007bff, success: #28a745, danger: #dc3545, warning: #ffc107 ); each $name, $color in $themes { .btn-#{$name} { background-color: $color; border-color: darken($color, 10%); :hover { background-color: darken($color, 10%); } } }编译后部分.btn-primary { background-color: #007bff; border-color: #005ecc; } .btn-primary:hover { background-color: #005ecc; } /* ... 其他主题 */示例使用for生成栅格类for $i from 1 through 12 { .col-#{$i} { width: (100% / 12) * $i; } }编译后.col-1 { width: 8.333%; } .col-2 { width: 16.667%; } /* ... */ .col-12 { width: 100%; }四、模块化与文件组织use / import推荐使用useSass 1.23 推荐// _variables.scss $primary: #007bff; $spacing: 1rem; // _mixins.scss mixin center { display: flex; justify-content: center; align-items: center; } // main.scss use variables as vars; use mixins; .card { margin: vars.$spacing; include mixins.center; }_开头的文件是“部分文件”partial不会单独编译。⚙️ 五、如何使用 Sass1. 安装 Sassnpm install -g sass2. 编译 SCSS 到 CSSsass input.scss output.css3. 开启监听模式开发时sass --watch input.scss output.css4. 在项目中使用如 Webpack/Vite使用sass-loaderWebpack或直接在 Vue/React 项目中引入.scss文件六、经典实用示例✅ 示例 1响应式断点混合Responsive Mixins// _mixins.scss mixin mobile { media (max-width: 768px) { content; } } mixin tablet { media (min-width: 769px) and (max-width: 1024px) { content; } } mixin desktop { media (min-width: 1025px) { content; } } // 使用 .container { padding: 2rem; include mobile { padding: 1rem; } include desktop { max-width: 1200px; margin: 0 auto; } }✅ 示例 2创建主题切换CSS 变量 Sass:root { --primary-color: #{$primary}; --text-color: #333; } [data-themedark] { --primary-color: #{darken($primary, 20%)}; --text-color: #eee; } .theme-toggle { background: var(--primary-color); color: white; }✅ 示例 3生成图标类each$icons: ( home: \e900, user: \e901, settings: \e902 ); each $name, $code in $icons { .icon-#{$name}:before { content: $code; font-family: IconFont; } }✅ 总结Sass 的核心价值特性用途$变量统一管理颜色、字体、间距mixin封装可复用样式阴影、动画include调用 mixinextend继承样式减少冗余嵌套提高结构可读性each/for批量生成类栅格、主题use模块化组织样式文件推荐学习资源官网https://sass-lang.comSass 中文网https://www.sass.hk工具Sass Playground在线编译测试