前端利器SASS之入门篇

$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, $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;

}

}

// @each 除了可以遍历数组,还可以遍历maps,如下所示

@each $header, $size in (h1: 2em, h2: 1.5em, h3: 1.2em) {

#{$header} {

font-size: $size;

}

}

(3)@while

与js的while循环类似

$i: 6;

@while $i > 0 {

.item-#{$i} { width: 2em * $i; }

$i: $i - 2;

}

@mixin混合器


@mixin是sass中一个非常重要的概念,用于定义可重复使用的样式。

@mixin的定义

@mixin large-text {

font: {

family: Arial;

size: 20px;

weight: bold;

}

color: #ff0000;

}

@mixin的使用

// 使用 @include 指令引用混合样式

.page-title {

@include large-text;

padding: 4px;

margin-top: 10px;

}

ps:@mixin中也可以@include其他混合器。

带参数的混合器

@mixin sexy-border($color, $width) {

border: {

color: $color;

width: $width;

style: dashed;

}

}

p { @include sexy-border(blue, 1in); }

// 可以设置默认参数,如:

@mixin sexy-border($color, $width: 2px) {

// 有时候我们不知道会传入几个参数,比如不知道要设置几个box-shadow,所以可以这样使用。

@mixin box-shadow($shadows…) {

-moz-box-shadow: $shadows;

-webkit-box-shadow: $shadows;

box-shadow: $shadows;

}

.shadows {

@include box-shadow(0px 4px 5px #666, 2px 6px 10px #999);

}

允许向@mixin中插入内容

在引用混合样式的时候,可以先将一段代码导入到混合指令中,然后再输出混合样式,额外导入的部分将出现在 @content 标志的地方:

@mixin apply-to-ie6-only {

  • html {

@content;

}

}

@include apply-to-ie6-only {

#logo {

background-image: url(/logo.gif);

}

}

// 上述代码会编译成:

  • html #logo {

background-image: url(/logo.gif);

}

函数@function


SASS拥有一些内置函数,也支持自定义函数。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)

最后:

总结来说,面试成功=基础知识+项目经验+表达技巧+运气。我们无法控制运气,但是我们可以在别的地方花更多时间,每个环节都提前做好准备。

面试一方面是为了找到工作,升职加薪,另一方面也是对于自我能力的考察。能够面试成功不仅仅是来自面试前的临时抱佛脚,更重要的是在平时学习和工作中不断积累和坚持,把每个知识点、每一次项目开发、每次遇到的难点知识,做好积累,实践和总结。

点击这里领取Web前端开发经典面试题

hjQrj-1711681859973)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)

最后:

总结来说,面试成功=基础知识+项目经验+表达技巧+运气。我们无法控制运气,但是我们可以在别的地方花更多时间,每个环节都提前做好准备。

面试一方面是为了找到工作,升职加薪,另一方面也是对于自我能力的考察。能够面试成功不仅仅是来自面试前的临时抱佛脚,更重要的是在平时学习和工作中不断积累和坚持,把每个知识点、每一次项目开发、每次遇到的难点知识,做好积累,实践和总结。

点击这里领取Web前端开发经典面试题

  • 30
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值