CSS进阶之Sass

简介: CSS进阶之Sass

一、基本使用


可使用scss或sass文件来进行编写,一般使用scss因为其使用的{}来进行分层。


借助vscode插件来进行实时编译!通过{}分层形式可以达到快速编写css样式的效果




二、变量设置


定义变量




颜色深浅定义


通过使用lighter、darker关键字来进行定义。




三、嵌套、拆分文件与引入


我们可以将单独定义的变量放置在一个文件中,对于一个主体部分的css样式进行拆分,拆分好多个文件的最终可以通过@import 'xx'的形式来引入之后进行编译!


由于vscode对于.scss结尾的都会进行watch监控并编译,所以我们要在这些拆分的组件文件名称前加上_,此时就不会进行编译啦!



_content.scss:内容scss

_header.scss:头部样式

_variable.scss:定义的一些变量,可供其他文件进行使用!

_variable.scss


//定义字体颜色
$small-font: 15px;
$red-color: red;


_content.scss:
.content{
    background-color: blue;
}


_header.scss:


.header{
    background-color: $red-color;
}


main.scss:最终进行编译的文件,我们来对其他文件进行引入


//默认从当前目录中找对应_xxx.scss的文件进行引入,可省略_来进行查找的
@import 'variable';
@import 'header';
@import 'content'


编译之后的css样式




四、@mixin与@include配合使用


使用介绍


@mixmin xxx:可以将多个元素重复的css放置在一个变量中,你可以看做是函数,当你想要某个class使用该样式时,直接使用@include xxx即可。


额外:对于@mixmin还可以传递参数,并且在内部可以进行接收使用。



示例


_mixmin.scss


//定义名称为singleline-eclipse,可传入变量来改变内部background-color颜色
@mixin singleline-eclipse($bgcolor) {
    width: 1000px;
    height: 500px;
    text-overflow: ellipsis;
    background-color: $bgcolor;
}



五、媒体查询与Mixin的使用


需求:我们在做移动端的适配时,往往对于一个class需要来进行相应的适配,此时可能就会出现代码冗余的问题,此时我们可以配合@mxmin来解决这类问题。


.header{
    width: 1000px;
}
@media screen and (min-width: 768px){
    .header{
        width: 800px;
    }
}
.footer{
    width: 1200px;
}
@media screen and (min-width: 768px) {
    .footer{
        width: 800px;
    }
}



使用scss来进行简化,这里就需要使用到@content来进行配合使用


// 其中@content就会引用@include xxx{}中{}里的内容到里面
@mixin ipad($height) {
    @media screen and (min-width: 768px) {
        height: $height;
        @content
    }
}
.header{
    width: 1000px;
    @include ipad(600px){
        width: 800px;
    }
}
.footer{
    width: 1200px;
    @include ipad(700px){
        width: 800px;
    }
}


相关文章
|
2月前
|
前端开发
create-react-app 如何使用 less/sass 和 react-css-modules?
本文详细介绍了在 create-react-app 项目中如何使用 less/sass 和 react-css-modules 来管理和应用样式。首先,通过安装相应依赖并配置 webpack 支持 less/sass;接着,介绍如何使用这些预处理器编写样式;最后,讲解了如何配置和使用 react-css-modules 实现样式的模块化管理,以及如何结合使用 less/sass 和 react-css-modules 提高开发效率和代码质量。
43 3
|
7月前
|
前端开发 JavaScript 开发者
CSS进阶-过渡与动画的事件监听
【6月更文挑战第16天】**CSS过渡和动画事件增强交互性,但监听与控制需谨慎。了解`transitionend`用于CSS过渡结束时的响应,避免过度使用JavaScript检测变化。示例代码展示如何绑定`transitionend`事件并在结束后执行操作。对于CSS动画,理解`animationstart`, `animationiteration`, `animationend`事件的生命周期至关重要,确保在动画结束后进行适当的清理。通过这些技巧,优化用户体验并提高代码效率。**
78 5
|
7月前
|
前端开发 JavaScript UED
CSS进阶 - CSS性能优化
【6月更文挑战第17天】**CSS性能优化关乎美观与速度。减少无用和重复样式,简化选择器,避免频繁重绘与回流,预加载关键CSS,以及模块化代码,能提升加载速度和用户体验。通过代码审查、工具辅助、选择器优化、使用transform和opacity、CSS预加载、以及文件拆分和模块化,开发者可应对复杂网页的性能挑战。**
109 2
|
7月前
|
前端开发 JavaScript 开发者
CSS进阶 - CSS Modules与预处理器简介
【6月更文挑战第17天】前端开发中,CSS Modules和预处理器(如Sass、Less)解决了大规模项目中CSS的管理难题,提升代码复用和维护性。CSS Modules提供局部作用域的类名,避免全局冲突,而预处理器扩展CSS功能,使代码更像编程语言。常见问题包括命名冲突和过度嵌套,可通过自动哈希、少嵌套、合理变量规划来解决。结合两者使用,遵循模块化和适度预处理原则,集成到构建工具中,能优化开发流程。这些技术是现代前端不可或缺的工具。
84 2
|
7月前
|
编解码 前端开发 UED
CSS进阶 - 响应式设计与媒体查询
【6月更文挑战第17天】响应式设计通过媒体查询适应不同设备,确保网页在桌面、平板、手机上提供优化体验。媒体查询是CSS核心技术,允许根据设备特性应用样式。常见问题包括忽视视口设置、硬编码断点和过度依赖查询。解决办法涉及设置正确的视口元标签、基于内容的断点和模块化设计。通过移动优先策略和灵活的断点管理,可创建高效、易维护的响应式网站。
51 1
|
3月前
|
存储 前端开发 开发者
深入了解 Sass 和 SCSS:CSS 预处理器的强大功能
Sass(Syntactically Awesome Stylesheets)是一个强大的 CSS 预处理器,为开发者提供了诸多高级特性,如变量、嵌套、混合、继承等,简化了 CSS 的编写和管理。SCSS 是 Sass 3 引入的新语法,完全兼容 CSS3,并增强了 Sass 的动态功能。本文详细介绍了 Sass 和 SCSS 的核心特性及其在实际开发中的应用,如变量定义、嵌套规则、混合、继承、以及常用的操作符与扩展功能。
76 0
|
3月前
|
前端开发 开发者 容器
Vue3中Sass的安装与使用指南:轻松上手CSS预处理器
Vue3中Sass的安装与使用指南:轻松上手CSS预处理器
361 0
|
6月前
|
前端开发 C++
CSS预处理器之Sass(一)
CSS预处理器之Sass(一)
64 2
|
7月前
|
前端开发 开发者 容器
CSS进阶-Grid布局高级应用
【6月更文挑战第16天】**CSS Grid布局是CSS3的强大力量,用于复杂二维布局。然而,隐式网格、未命名Grid线和缺少响应式设计是常见问题。解决方法包括显式定义网格结构、命名Grid线和结合媒体查询实现响应式。高级技巧涉及自适应列宽、复杂区域布局和元素层叠对齐。代码示例展示了响应式Grid的用法。掌握这些能提升布局效率和设计灵活性。**
93 11
|
7月前
|
前端开发 开发者 容器
CSS进阶-Flexbox高级布局技巧
【6月更文挑战第16天】Flexbox是CSS3的布局模块,简化响应式设计和复杂多列布局。文章探讨了Flex容器与项目属性的区分、垂直居中、防止元素溢出等常见问题及解决方案。此外,还分享了等宽不同高列、圣杯布局和自适应间距等高级技巧。通过示例展示了如何创建垂直居中布局,强调实践和理解核心概念是掌握Flexbox的关键。
119 10

热门文章

最新文章