前端利器SASS之入门篇,前端开发你需要了解的那些事

简介: 前端利器SASS之入门篇,前端开发你需要了解的那些事

支持属性嵌套

.home {
font: {
family: fantasy;
size: 30px;
weight: normal;
}
}
// 上述代码相当于css的如下代码
.home {
font-family: fantasy;
font-size: 30px;
font-weight: normal;
}
SassScript

Sass支持一些类似js的语法,为我们提供了很多强大的功能。

变量

(1)声明变量

$nav-bgc: rgba(0, 0, 0, .2);

(2)引用变量

background: $nav-bgc;

(3)!default

可以在变量的结尾添加 !default 给一个未通过 !default 声明赋值的变量赋值,此时,如果变量已经被赋值,不会再被重新赋值,但是如果变量还没有被赋值,则会被赋予新的值。

$content: “First content”;
$content: “Second content?” !default;
$new_content: “First time reference” !default;
#main {
content: $content; // “First content”
new-content: $new_content; // “First time reference”
}

ps:变量是 null 空值时将视为未被 !default 赋值。如果第一个c o n t e n t 的值是 n u l l ,那么将会取 content的值是null,那么将会取content的值是null,那么将会取content: “Second content?” !default的值。

数据类型

SASS支持的数据类型主要有以下几种:

  • 数字,1, 2, 13, 10px
  • 字符串,有引号字符串与无引号字符串,“foo”, ‘bar’, baz
  • 颜色,blue, #04a3f9, rgba(255,0,0,0.5)
  • 布尔型,true, false
  • 空值,null
  • 数组 (list),用空格或逗号作分隔符,1.5em 1em 0 2em, Helvetica, Arial, sans-serif
  • maps, 相当于 JavaScript 的 object,(key1: value1, key2: value2)

支持运算符

运算规则与js类似,但有一些特别的地方,具体请参考SASS教程

插值语法#{}

通过 #{} 插值语句可以在选择器或属性名或属性值中使用变量。

使用 #{} 可以避免 Sass 运行运算表达式,直接编译 CSS。比如下面用到的font写法。

$name: foo;
$attr: border;
$font-size: 12px;
$line-height: 30px;
p.#{$name} {
#{$attr}-color: blue;
font: #{KaTeX parse error: Expected 'EOF', got '}' at position 10: font-size}̲/#{line-height};
}

@extend

@extend可以实现继承,适用于一个元素使用的样式与另一个元素完全相同,但又添加了额外的样式。在不使用@extend时,我们完全可以定义两个class来实现,如:

// css部分
.error {
border: 1px #f00;
background-color: #fdd;
}
.seriousError {
border-width: 3px;
}
// html部分
但是使用@extend能为我们带来更多的好处,简洁易维护。
.seriousError {
border-width: 3px;
@extend .error;
}

控制指令

(1)@if

当 @if 的表达式返回值不是 false 或者 null 时,条件成立,输出 {} 内的代码

p {
@if true { border: 1px solid; }
}

@if后面可以接@else if和@else语句

(2)@for

这个指令包含两种格式:

@for $var from through

@for $var from to

区别在于 through 与 to 的含义:当使用 through 时,条件范围包含 与 的值,而使用 to 时条件范围只包含 的值不包含 的值。

(3)@each

// @each 遍历值数组中的每一项,然后输出结果
$var in {}
// @each 可遍历多维数组,如下所示
// a n i m a l 接收来自 ( p u m a , b l a c k , d e f a u l t ) 的数据, animal接收来自(puma, black, default)的数据,animal接收来自(puma,black,default)的数据,color接收来自(red, blue, green)的数据,依次类推。
@each animal,animal, color, $cursor in (puma, black, default),
(red, blue, green),
(pointer, default, move) {
.#{$animal}-icon {
background-image: url(‘/images/#{$animal}.png’);
border: 2px solid $color;
cursor: $cursor;
}



相关文章
|
15天前
|
JavaScript 前端开发 小程序
一小时入门Vue.js前端开发
本文是作者关于Vue.js前端开发的快速入门教程,包括结果展示、参考链接、注意事项以及常见问题的解决方法。文章提供了Vue.js的基础使用介绍,如何安装和使用cnpm,以及如何解决命令行中遇到的一些常见问题。
一小时入门Vue.js前端开发
|
24天前
|
缓存 人工智能 前端开发
前端技术博客:探索现代前端开发的奥秘
前端技术博客:探索现代前端开发的奥秘
34 11
|
17天前
|
JSON 前端开发 JavaScript
不会webpack的前端可能是捡来的,万字总结webpack的超入门核心知识
该文章提供了Webpack的基础入门指南,涵盖安装配置、基本使用、加载器(Loaders)、插件(Plugins)的应用,以及如何通过Webpack优化前端项目的打包构建流程。
不会webpack的前端可能是捡来的,万字总结webpack的超入门核心知识
|
1月前
|
前端开发
【前端web入门第五天】03 清除默认样式与外边距问题【附综合案例产品卡片与新闻列表】
本文档详细介绍了CSS中清除默认样式的方法,包括清除内外边距、列表项目符号等;探讨了外边距的合并与塌陷问题及其解决策略;讲解了行内元素垂直边距的处理技巧;并介绍了圆角与盒子阴影效果的实现方法。最后通过产品卡片和新闻列表两个综合案例,展示了所学知识的实际应用。
32 11
|
3天前
|
机器学习/深度学习 自然语言处理 前端开发
前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
除了调用API接口使用Transformer技术,你是否想过在浏览器中运行大模型?Xenova团队推出的Transformer.js,基于JavaScript,让开发者能在浏览器中本地加载和执行预训练模型,无需依赖服务器。该库利用WebAssembly和WebGPU技术,大幅提升性能,尤其适合隐私保护、离线应用和低延迟交互场景。无论是NLP任务还是实时文本生成,Transformer.js都提供了强大支持,成为构建浏览器AI应用的核心工具。
41 0
|
1月前
|
前端开发
|
1月前
|
弹性计算 前端开发 容器
【前端web入门第六天】02 flex布局
Flex布局是一种现代CSS布局模式,通过给父元素设置`display: flex`,其子元素可自动挤压或拉伸。它包含弹性容器和弹性盒子,主轴默认为水平方向,侧轴为垂直方向。主轴对齐方式由`justify-content`属性控制,侧轴对齐方式包括`align-items`(针对所有子元素)和`align-self`(针对单个子元素)。修改主轴方向使用`flex-direction`属性,`flex`属性用于控制子元素在主轴上的伸缩比例。此外,`flex-wrap`属性允许子元素换行,而`align-content`属性则定义多行对齐方式。
|
1月前
|
前端开发
【前端web入门第六天】01 CSS浮动
这是关于CSS布局第六天学习目标的介绍,主要解决多个`<div>`标签在同一行显示的问题,即一个在左边,另一个在右边。文中介绍了标准流、浮动及flex布局的概念,重点推荐使用flex布局。文章详细讲解了浮动的基本使用、布局技巧及清除浮动的方法,包括额外标签法、单伪元素法、双伪元素法和`overflow`隐藏法,并提供了示例代码帮助理解。
|
1月前
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
|
2月前
|
存储 前端开发 JavaScript
前端语言串讲 | 青训营笔记
前端语言串讲 | 青训营笔记
34 0