css学习——sass(6)

2023-11-05

第一步,全局安装 sass

在命令行工具:

npm install -g sass

查看版本

sass --version

 第二步:手动将sass 编译为css

1、创建一个test.scss :

 2、在命令行终端 输入sass test.scss test.css进行编译

 第三步、监听者目录,sass 自动编译: 通过传参数 --watch 告诉sass编译器监听者目录

sass-style是被监听的目录,css-style是被编译成css文件的存放目录

sass --watch sass-style:css-style

监听前 :

监听命令 :

 监听后:

三、修改sass编译输出css的格式:--style 默认[expanded (default), compressed],目前只有这个2个值,可能是和我的版本有关系(1.56.0),默认是expanded

其他的版本可能有的值 

1、nested:嵌套;默认

2、compact:紧凑 ;

3、expanded:展开;

4、compressed:压缩

格式比较: 

sass --watch sass-style:css-style --style compressed

 sass --watch sass-style:css-style --style expanded

Sass 的用法:

第一:变量、混入@mixin name/@include name;占位符(%name)/选择器 继承extend %name;

1-1:变量的类型:number、string、boolean、null、map、list;

变量声明:$color:#fff;

1-2:混入的总结:

1、可以重复使用的css规则,一次声明多次使用;

2、不使用不会编译到,目标文件。

3、可以传参数。

// 声明变量
$primary:#fff;

// 无参数 mixin
@mixin border {
	border: 2px solid red;
}

/**
 * 声明mixin 带参数
 * 
 * 参数不传报错
 * **/ 

@mixin ellipsis($line) {
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;	
	-webkit-line-clamp:$line;
	-webkit-box-orient: vertical;
}

/**
 * 声明mixin 带参数,有默认值
 * 
 * 1、不传参数:@include text;
 *
 * 2、按顺序传参:@include text(20, 600,2em);	
 *
 * 3、指定传参:@include text($left:4em);
 **/ 
@mixin text($size:16,$weight:400,$left:2em) {
	font-size: $size;
	font-weight: $weight;
	padding-left: $left;
}

/*
*可变参数
*
*@include linearGradient(to top, red,green);	
*/
@mixin linearGradient($direction,$gradient...) {
	background-color: nth($gradient,2);
	background-image:linear-gradient($direction,$gradient)
}

1-3:继承、占位符总结

共同点:

1、都是@extend引入;

2、都是生成分组选择器的形式,

不同点:

1、类选择器:不继承也会被编译到目标文件;

2、占位符选择器:需要继承才会编译到目标文件;

混入和继承的区别:

混入:每一个include都是复制一份;使代码量变大。

继承:使用分组选择器封装继承部分;代码量不变。

第二操作符:

1、关系运算符:==、!=,>、 < 、>= 、<=,

2、逻辑运算符:and 、or 、not;

3、数字操作符: +、 * 、/、 %;

关系运算符:

 逻辑运算符:

 第三:插值语句:#{变量},应用到选择器,属性名,属性值;

$size:20px;
$lineheight:30px;
$class:class-name;
$color:color;

.#{$class}{
     color: red;
}
.test{
    border-#{$color}:red ;
}
.text{
    @include test(2);
    font-size:#{$size}/#{$lineheight};
}

第四:sass 常见函数:

颜色:lighten、darken、opacity ;

数值:abs、ceil、floo、max、min、random;

列表:lenght、nth、append、index;

map:map-get、map-has-key、map-keys,map-values;

自检函数:variable-exists;

第五流程控制指令和循环:@if、 @else、@else if、@for 、@each 、@while,三元运算符


@mixin test($type) {
	@if ($type>2 and $type<10){
		color: red;
	}
	@else if( $type>11 and $type<20){
		color: blue;
	}
	@else{
		color: green;
	}
}

.text{
	@include test(5);
}
.text2{
	@include test(15);
}
.text3{
	@include test(1);
}
// 不包含4
@for $i from 2 to 4{
	.to-#{$i}{
		width: 10px;
	}
}
// 包含4
@for $i from 1 through 4{
	.through-#{$i}{
		width: 10px;
	}
}

$list: red green blue pink;
@each $color in $list{
	$index:index($list, $color);
	.p#{$index - 1}{
		background-color: $color;
	}
}
$condition:10;
@while $condition>0 {
	.col-#{$condition}{
		background-color: red;
	}
	$condition:$condition - 1
	
}

$var:10;
.test{
	color:if($var == 10,red,blue);
}

第六:@function

@function test($count){	
	@return percentage(1 / $count);
}

@for $i from 1 to 5{
	.p-#{$i}{
		width: test($i);
	}
}

参数规则和@mixin一样;

第七:@use

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

css学习——sass(6) 的相关文章

  • Javascript - window.getCompulatedStyle 返回“auto”作为元素顶部和左侧属性

    在我的网页上 我有一些元素 div 子 div 按钮等 其位置是相对于它们所在的 div 以及彼此之间生成的 这会导致使用时的结果window getCompatedStyle the top and left属性不是数字值 而是简单的 a
  • 查找第一个可滚动父级

    我遇到这种情况 需要将元素滚动到视口中 问题是我不知道哪个元素是可滚动的 例如 在纵向中 主体是可滚动的 而在横向中 它是另一个元素 还有更多情况会更改可滚动元素 现在的问题是 给定一个需要滚动到视口中的元素 找到其第一个可滚动父元素的最佳
  • 角度材料在一个表单字段中输入和选择

    I want the input field and the drop down field in the same area like the one on the left I did this on the inspector 无论我
  • 将焦点和光标设置到文本输入字段/字符串 w 的末尾。 Jquery [重复]

    这个问题在这里已经有答案了 我有以下函数 将选择器添加到搜索输入作为高级选项 就像堆栈溢出高级搜索一样 当您单击要搜索的内容时 它会添加一个前缀 请参阅下面的 Jquery
  • 角度按钮单击旋转图标

    我有以下按钮
  • CSS 变换函数顺序

    为什么以下之间的输出存在差异 transform translate 0 100px scale 2 2 and transform scale 2 2 translate 0 100px 第一条语句符合您 我 的期望 将元素向下移动 10
  • 居中时仅在文本的最后一行下划线

    我只想在某些文本的最后一行下划线 当文本换行到更多行时 仍然只有最后一行需要加下划线 我找到了这个解决方案 https stackoverflow com questions 15180827 advanced css challenge
  • 通过 css 或 javascript 查找当前工作浏览器是否为 safari

    我研究了如何识别浏览器是否是 Safari 在javascript window devicePixelRatio对于 chrome 和 safari 对象都给出 1 在CSS media screen and webkit min dev
  • 带填充的 Tailwind CSS 导航悬停下拉菜单

    我正在尝试展示子 ul 当项目悬停时 在第一个导航项目上列出 一切正常 除了有时 时好时坏 当您位于第一行的填充之间时 ul 项目和子项目 ul 项目 次要项目 ul 会消失 当我从下拉菜单导航到项目列表时 如何保持辅助导航列表打开 JSF
  • 将较新版本的 WebKit 嵌入 Android 应用程序

    我正在使用 Web 技术开发 Android 应用程序 CSS 转换 对于应用程序的功能非常重要 因为它们负责滚动和滑动页面 非常缓慢 根据互联网上找到的信息 CSS 过渡不是硬件加速的 除非进行 3 维转换 我发现很多文章说我应该放置 w
  • 如何使用div绘制曲线?

    我需要使用 CSS 绘制两条曲线 我尝试过组装一些divs 使用CSSborder radius绘制弧形面板 但结果很糟糕 还有更好的算术吗 正如我之前在评论中提到的 请不要使用CSS用于实现复杂的曲线和形状 虽然仍然可以使用 CSS 来实
  • CSS3 中均匀间隔的导航链接占据 ul 的整个宽度

    我想创建一个水平导航链接列表 其中导航链接均匀分布并占据封闭容器的整个宽度 ul 导航链接可以有不同的宽度 第一个和最后一个链接应与链接的开头和结尾对齐 ul 分别 意味着链接不居中 如下所示 left side right side li
  • 如何在 HTML 中制作三角形?

    我想使用基本的 CSS 在 HTML 页面中制作三角形 我正在使用需要时间加载的三角形图片 因此 我想减少页面的加载时间 HTML 不可能 但 CSS 可以 例子 div class div
  • CSS:多属性选择器

    我想设置 电子邮件 和 密码 类型的表单输入样式 但不设置其他任何样式 我正在想象类似以下的事情 input type email type password 然而 属性选择器的工作方式似乎将其解释为 输入 其中类型同时是 电子邮件 and
  • Firefox 忽略背景大小的 css

    尝试使用背景大小 CSS 规则缩小图像 但 Firefox 3 5 似乎会忽略该规则 CSS privatejoker background aqua url styles images home privatejoker png no r
  • 使组合高度等于浏览器窗口的高度

    http featuredfotografer com http featuredfotografer com Codemirror div 与 header div 结合占用的高度超过了浏览器的高度 我怎样才能使它们的总高度达到浏览器窗口
  • 如何检查元素的内容是否为空,如果是,则在 jquery 中删除该元素

    我目前正在尝试选择某个 div 内没有内容的任何 h2 元素并将其删除 这是我的 html 代码 div class skipToContainer h2 class vidSkipTo Hello h2 h2 class vidSkipT
  • 使用溢出时无法隐藏滚动条:auto

    我有这个CSS div background color red position relative height 414px overflow auto width 902px margin 0px auto 我尝试过overflow y
  • 显示班级图片 10 秒

    我有下面给出的代码显示9 boxes 其值如下digital time 还有一个班级box002显示digits相当于随机选择的九个盒子的值 box002 can be dragged to digital time starting wi
  • 两种颜色边框

    客户想要两种颜色的边框以获得浮雕外观 我可以在一个元素上执行此操作吗 我希望避免堆叠两个具有单独边框的 DOM 元素 是的 使用outline财产 它充当您边界之外的第二个边界 但请注意 它可能会以一种奇怪的方式与边距 填充和阴影进行交互

随机推荐