Sass学习笔记(二) @rules,判断与遍历,@each, @mixin

掌握Sass控制流:@while与@each的应用 本文深入探讨了Sass的控制流指令@while和@each,展示了如何通过这些指令控制代码输出以及动态创建样式类。通过实例演示了在构建网格系统和社交媒体栏时的应用,强调了其在CSS预处理器中的灵活性和强大功能。 阅读详情

紧接上篇,高阶一点的东西来了
here is the sass-lang.com
@import “foo.scss”==@inport “foo”
当如下情况时,import的遵守CSS 规则

  • 后缀名是.css
  • begin with http://
  • url()
  • include media queries

    @mixin、@charset不可与@import嵌套在一起。
    @import can only at the base level of a document
    但可以在某个selector内部写
    if example.scss contains

.example {
  color: red;
}

then

#main {
  @import "example";
}

would compile to

#main .example {
  color: red;
}

media queries本身也可以作为 变量
如

$media:screen;
$feature:-webkit-min-device-pixel-ratio;
$value:1.5;

sidebar{
    font-size: $value * 3px;
    @media #{$media} and ($feature:$value){
        font-size:20px;
    }
}
//and it would be compiled as:

sidebar {
  font-size: 4.5px; }
  @media screen and (-webkit-min-device-pixel-ratio: 1.5) {
    sidebar {
      font-size: 20px; } }

@extend可以扩展类,在新类中的首行使用@extend .error;
包括复杂的伪类,类的组合等,等于替换了@extend 的元素
支持链式和一对多的继承。

.comment a.user:hover{
    font-weight: 300;
}
.hoverlink{
    @extend a:hover;
}
//and it will be compiled as:
.comment a.user:hover, .comment .user.hoverlink {
  font-weight: 300; }

选择器组合也可以继承,而且是完全继承,比如@extend的原始类中有:hover,那么选择器中也会用hover。
sass会智能缩减选择器的长度
placeholder选择器,本身是简单的文本替换。
有点类似c中的#define

#context a%extreme{
    color:blue;
    font-size: 2em;
}
.notice{
    @extend %extreme;
}
// and it would be compiled to:
#context a.notice {
  color: blue;
  font-size: 2em; }

!optional可以加在@extend后面,如果找不到原型也不会报错
@media是个block,@extend不能穿越这个block引用。

@at-root 可以回到上级进行选择
还可以穿越@media

@media print {
  .error{ 
    border: 1px #f00;
    background-color: #fdd;
  @at-root (without:media){
    color:yellow;
    // @at-root (with:media)就是在里面了
   }
 }
}
// and it will be compiled to :
@media print {
  .error {
    border: 1px #f00;
    background-color: #fdd; } }
.error {
    color: yellow; }

@at-root后面一定要跟东西,一定要跟东西,一定要跟东西,不能是空的。它不能直接代替body或者html,而必须是outside的某一个class or other selector

@warn 和 @error 可以用来debug, 打印到底是啥不对,尤其和@if,@else 连用。

.error {
  @if null {border:1px solid;}
  @if true {border-radius: 4px;}  
 }

也可以连着写@if ,@else if …..

遍历,遍历才是硬道理啊!
@for @each

@for
终于到for了,这个用于遍历的利器啊!!!
两种格式:
@for $var from < start> through < end>
@for $var from < start> to < end>
to 不包含end中的元素
当start大于end的时候会递减而不是递增。

@each $var in < list or map>

@for $i from 1 to 3{
    .items-#{$i} {width: 2em * $i;}
}

@each $animal in puma, sea-slug, egret, salamander{
    .#{$animal}-icon{
        background: url("/images/#{$animal}.png");
    }
}

each还可以形成多对多的映射关系

@each $animal, $color, $cursor in (puma, black, default),
                                  (sea-slug, blue, pointer),
                                  (egret, white, move) {
  .#{$animal}-icon {
    background-image: url('/images/#{$animal}.png');
    border: 2px solid $color;
    cursor: $cursor;
  }
}
@each $header,$size in (h1:2em, h2:1.5em, h3:1.2em){
    #{$header}{
        font-size: $size;
    }
}

@while可以更精细的控制,但不常用。

$i:6;
@while $i > 0 {
    .item-#{$i} {width: 2em * $i;}
    $i:$i - 2;
}
//
.item-6 {
  width: 12em; }

.item-4 {
  width: 8em; }

.item-2 {
  width: 4em; }

mixin 的用法
@mixin xxx {},在selector后用 @include xxx引用

@mixin clearfix{
    display: inline-block;
    &:after{
        conent:".";
        height: 0;
        visibility: hidden;
    }

}

.clearfix{
    @include clearfix;
}

global里也可直接引用display,但不能直接定义属性,或者引用父选择器。就是说,要这么使

@mixin links{
    a{
    color:blue;
    }
}

@include links

mixin可以链式,引用其他的mixin
但要注意顺序,就像必须先有mixin再有include一样
还可以像函数那样加形参和实参,还可以指定default值

@mixin sexy-border($color,$width:2px){
    border: {
        color: $color;
        width: $width;
    }
}
p{
    @include sexy-border(yellow);
}
// and it would be compiled as:
p {
  border-color: yellow;
  border-width: 2px; }

…的用法

@mixin box-shadow($shadows...){
 -moz-box-shadow:$shadows;
 -webkit-box-shadow:$shadows;
 box-shadow:$shadows;
}

.shadows{
 @include box-shadow(0px 4px 5px #666);
}

@content可以接受新语句。
同时要注意作用域

@mixin smartphone{
    height: 10px;
    @content;
}
#sidebar {
  $sidebar-width: 300px;
  width: $sidebar-width;
  @include smartphone {
    width: $sidebar-width / 3;
  }
}

基本上这就是全部内容了,最后还有四种输出形式,嵌套式,平铺式,压缩式,和紧密压缩式。可以在command line中控制。默认是nested output style

eslint-plugin-tailwindcss:用于Tailwind CSS用法的ESLint插件 eslint-plugin-tailwindcss 使用 v2.0.3强制执行最佳做法和并发性的规则 安装 您首先需要安装 : $ npm i eslint --save-dev 接下来,安装eslint-plugin-tailwindcss : $ npm install eslint-plugin-tailwindcss --save-dev 用法 添加tailwindcss到你的插件部分.eslintrc配置文件。 您可以省略eslint-plugin-前缀: { " plugins " : [ " tailwindcss " ] } 然后在“规则”部分下配置要使用的规则。 { " rules " : { " tailwindcss/classnames-order " : 2 , " tailwin 立即下载

相关推荐

UniTouch:多模态触觉对齐技术如何重塑零样本跨模态应用

UniTouch模型通过创新的多模态触觉对齐技术,成功将触觉数据映射到通用的视觉-语言嵌入空间,解决了触觉模态的“孤岛困境”。该技术利用对比学习和传感器特定标记,实现了高质量的零样本学习能力,使模型无需额外训练即可完成触觉分类、描述等任务,并能驱动跨模态生成,为机器人、VR和智能制造等领域提供了强大的触觉理解新范式。

weixin_29044713的博客 409

vue表单及遍历表单校验rules以及validator校验器的使用

为防止用户犯错,尽可能让用户更早地发现并纠正错误。 Element中Form 组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,并将 Form-Item 的 prop 属性设置为需校验的字段名即可。注意:prop对应表单域 model 字段,使用 validate方法时,该属性是必填的。在data里配置要校验字段和校验规则:required:true;message:""不符合校验规则时的提示信息;trigger:""校验触发方式设置除此之外,我们还可以使用validator验证器.

m0_53206841的博客 4万+

详细对比模型训练和模型精调

当我们进行模型精调(Fine-Tuning)和模型训练时,我们需要考虑到不同的步骤和目标。

pumpkin84514的博客 1852

vue 中常见的输入框 rule 判断

rules: { player_cnt: [{ required: true, message: '请输入播放次数', trigger: 'blur' }], player_time: [{ required: true, message: '请输入播放时间间隔', trigger: 'blur',

cang23456_博客 2319

Ansys Electronics Desktop仿真——HFSS线圈寄生电阻,电感

Ansys Electronics Desktop仿真——HFSS线圈寄生电阻,电感

冲击10w 1万+

STM32之W5500网络通信_w5500 profinet

*初始化8个socket*/setSHAR(ConfigMsg.mac);/*配置Mac地址*/setSUBR(ConfigMsg.sub);/*配置子网掩码*/setSIPR(ConfigMsg.lip);/*配置Ip地址*/setGAR(ConfigMsg.gw);/*配置默认网关*/setRTR(2000);/*设置溢出时间值*/setRCR(3);/*设置最大重新发送次数*/

2501_90250923的博客 1460

sass遍历,条件判断的用法(还是写下来方便找啊!)

sass遍历,条件判断的用法(还是写下来方便找啊!),这个东西不经常写,语法千千万万很容易忘记,所以在这里记下来,以后找起来方便啊! 上代码: /* sass中变量的申明,这种形式类似与js中[{},{}...]数据格式,后面会进行便利,拿到key和value */ $pw: ( tow:49%, three:32%, four:24%, five:19%, ); .outmost { position: absolute; top:

球球不吃虾WHR2349博客 941

手动安装SeuratData包中pbmc3k数据集的详细步骤与避坑指南

本文提供了手动安装SeuratData包中pbmc3k数据集的详细步骤与避坑指南。针对国内用户网络不稳定导致自动下载失败的问题,文章核心介绍了如何从错误信息中获取下载链接,使用浏览器或下载工具完成手动下载,并通过指定本地文件路径和参数在R中成功安装。该方法同样适用于SeuratData包中的其他数据集,是单细胞分析入门的必备生存技能。

weixin_29054399的博客 183

&&前端&&sass

NO。1 用 Sass 变量存储数据 Sass 不同于 CSS 的一个特点是它允许使用变量。 可以在 Sass 中声明变量,并为它赋值,就像在 JavaScript 中一样。 在 JavaScript 中,变量是使用 let 和 const 关键字定义的。 在 Sass 中,变量以 $ 开头的,后跟变量名。 $main-fonts: Arial, sans-serif; $headings-color: green; <!--这样使用--> h1 { font-family: $main-

men_shuangshuang的博客 686

CPU也能跑大模型?手把手教你用vLLM离线部署Qwen2.5-7B-Instruct(附性能优化技巧)

本文详细介绍了如何在CPU服务器上高效部署Qwen2.5-7B-Instruct模型,通过vLLM框架和一系列优化技巧实现离线推理。内容包括环境配置、模型加载优化、性能调优及生产环境部署方案,帮助开发者在资源有限的情况下也能运行大语言模型。

weixin_28691741的博客 489

用Arduino和FS-i6X遥控器,从零开始打造你的第一只仿生扑翼蝴蝶(附完整代码解析)

本文详细介绍了如何利用Arduino和FS-i6X遥控器从零开始制作仿生扑翼蝴蝶,包括硬件准备、电路连接、代码解析和调试技巧。通过完整的代码示例和参数说明,帮助读者快速掌握仿生机器人的制作要点,实现蝴蝶的自然飞行效果。

weixin_28727975的博客 309

Sass 中 @each 指令、index()函数

Sass 中 @each 指令、index()函数

工作中遇到问题记录 2237

解决Google Play签名问题:Android App Bundle上传指南

摘要:本文分享了解决Android App Bundle上传至Google Play时遇到的签名问题的经验。当使用pepk.jar工具加密私钥时,出现"NoSuchAlgorithmException"错误。解决方案包括:确保使用JDK 11+版本、更新pepk.jar工具、验证密钥库信息,并提供详细命令行示例。通过升级开发环境和正确配置签名参数,最终成功生成加密密钥文件。文章为开发者提供了实用的技术参考,强调耐心排查问题的重要性。(149字)

m0_62153576的博客 143

Sass的控制命令(判断、循环)

Sass中控制命令指的是@if、@each、@for和@while。具有一定的逻辑判断和循环遍历能力,这个对于懂JavaScript或者后端语言的同学来说一点都不难。但在CSS中是不可思议的一件事情,最起码到目前为止是不太可能的事情。但在Sass这样的CSS预处理器语言中实现了。 @if @if 指令是一个 SassScript,它可以根据条件来处理样式块,如果条件为 true 返回一个样式块,反之 false 返回另一个样式块。在 Sass 中除了 @if 之,还可以配合 @else if 和 @else

YYece的博客 4011

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Sass中函数、@mixin,@use模块等一些常用功能的使用

大家可能都知道sass是一个css的预编译语言,支持变量和函数等等功能的书写,正是因为这些强大的功能所以是前端人员必须掌握一门的技能。 1.首先先说一下 @mixin的用法 // 一个平常的 div布局 <div class="main"> <header>Header</header> <section>Section</sect...

业余前端的职业经历 4206

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Sass中@each、@for、@if的搭配使用

CSS 预处理器赋予了 CSS 逻辑编程的能力,其中 Sass、Less、Stylus 最受欢迎,语法都是大同小异,上手也很快。在项目中使用最多的可能要数 Sass 了,本文就讲讲 Sass 中循环遍历 @each、@for 和 @if 判断的搭配使用。...

天问博客-专注于大前端技术 623

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

sass $var @function @mixin @if @for 使用

sass 变量 嵌套 函数 mixin @if @for 使用

weixin_43512977的博客 596

7.3 @each——《跟老吕学Sass》

指令在Sass中用于迭代列表或映射,允许你对集合中的每个元素执行一组样式声明。这使得你能够基于集合动态生成CSS,非常适合创建一系列基于相同模式但具有不同值的样式。指令,你可以创建更加动态和可配置的Sass代码,使得你的样式表能够根据不同的需求生成不同的样式。这在处理需要大量基于数据的样式生成的项目时尤其有用。映射,该映射包含子映射,用于定义不同主题的背景和文本颜色。映射,并为每个键值对生成一个按钮类。

Python老吕的博客 616

sass 使用规则、变量、混入、选择器、继承、判断、遍历、内置函数等等

介绍:层叠样式表语言,动态样式语言、CSS 预处理器、扩展语言; 优点:减少 CSS 重复的代码,节省开发时间、完全兼容所有版本的 CSS; Sass 文件后缀为.scss; 为什么使用sass: CSS 本身语法不够强大,代码重复率高,无法复用,不方便维护;Sass 引入合理的样式复用机制,增加了规则、变量、混入、选择器、继承、内置函数等等特性。 浏览器并不支持 Sass 代码。需要将 Sass 代码转换为 CSS 代码。 node安装:npm install -g sass,编译 ...

qq_41046662的博客 1230

scss中的@each 指令

@each的作用:循环一个list 或者一个map 示例一: 循环一个list: 类名为 icon-20px 、icon-22px、icon-24px写他们的字体大小写法就可以如下: $sizes:20px,22px,24px; @each $size in $sizes { .icon-#{$size} { font-size:$size } } 示例二 循环一个map:类名为icon-primary、icon-success、icon-secondary等,但是他们的值又都是变量,写法如下:

diwang_718的博客 5421

2-1 Sass的控制命令

@if @if 指令是一个 SassScript,它可以根据条件来处理样式块,如果条件为 true 返回一个样式块,反之 false 返回另一个样式块。在 Sass 中除了 @if 之,还可以配合 @else if 和 @else 一起使用。 假设要控制一个元素隐藏或显示,我们就可以定义一个混合宏,通过 @if...@else... 来判断传进参数的值来控制 display 的值。如下所示:

github_39294367的博客 1万+

第八节: sass 流程控制指令@if、@for、@each、@while

if()函数允许您根据条件进行分支,并仅返回两种可能结果中的一种。语法方式同js的if…else if …else看流程图例1例如,定义一个css的三角形@mixin声明使用html。

everfoot的博客 673

sass学习笔记

目录sass学习笔记安装vue项目中使用sass创建vue项目安装sass相关配置编写sass特色功能语法格式parent selectorspecial functionsunquoted strings嵌套规则同一命名空间归类书写@extend如何工作(继承)占位符`@mixin`指令参数参数默认值传递任意参数注释颜色运算字符串运算条件语句循环语句遍历多值遍历条件循环@include和@extend的区别 sass学习笔记 安装 npm install -g sass vue项目中使用sass 创建v

weixin_44736005的博客 677

Sass-@each

@each 循环就是去遍历一个列表,然后从列表中取出对应的值。 @each 循环指令的形式: @each $var in <list> 如果你没有接触过列表,也不要紧,他也非常简单。 在下面的例子中你可以看到,$var 就是一个变量名,<list> 是一个 SassScript 表达式,他将返回一个列表值。变量 $var 会在列表中做遍历,并且遍历出与 $v...

weixin_33924312的博客 388

sass中使用@if,@for,@each和@while。

@if@if指令是一个SassScript,它可以根据条件来处理样式块,如果条件为true返回一个样式块,反之false返回另一个样式块。这里有一个@if指令的简单示例,我已经对示例做了简化处理,只适合阅读,并不太实用。$boolean: true !default; @mixin simple-mixin { @if $boolean { @debug "$boolea...

yanby921005的博客 3818
上一篇: sass 学习笔记(一):嵌套,变量,operation。。。基本就是翻译了一遍官网
下一篇: CSS3: The missing manual 《css3秘笈》笔记+布局、设计优秀资源整理
十方魔
博客等级 码龄10年 202粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值