如何在Sass中使用Mixin和传递参数Sass中的Mixin是什么?首先,让我们快速了解一下什么是m

首先,让我们快速了解一下什么是mixin:

简而言之,mixin是一个代码块,它允许您在其中编写样式并在整个项目中使用它。您也可以将其视为可重用的组件。它还可以帮助您编写更简洁的代码,而不必重复自己。

这就是你在Sass中编写mixin的方式:

@mixinname{properties;}以下是如何将其包含在您的代码中:

div{@includename;}这是在代码中使用mixin的示例:

@mixincircle{width:200px;height:200px;background:red;border-radius:50%;}div{@includecircle;}现在让我们看看上面的代码发生了什么:

现在让我们看一个实际中的mixin示例。

以下是使用mixin创建粉红色圆圈的方法:

Mixin是可重复使用的,记得吗?当我们知道我们会经常重复自己时,我们会使用它们。所以重点是避免重复并保持代码干净。

现在我们已经了解了如何编写mixin,让我们继续下一节。我想将此部分分成更小的部分:

参数是由逗号分隔的变量的名称。

我将从一个示例开始本节:

如果你要创建两个不同的圈子怎么办?像绿色圆圈和粉红色圆圈?

您可以创建两个单独的mixin,一个用于绿色,一个用于粉红色:

//amixinforthegreencircle@mixingreen-circle{width:200px;height:200px;border-radius:50%;background:green;}//andanothermixinforthepinkcircle@mixinpink-circle{width:200px;height:200px;border-radius:50%;background:pink;}但这不是很好,因为您正在重复您的代码。我们应该坚持DRY(不要重复自己)原则,记得吗?

这就是mixin参数的用武之地。

在一个常规的mixin中(我所说的常规是指没有传递参数时的mixin),你定义了一些特定的样式。但是参数允许您通过将它们转换为变量来定义不同的样式。这就像为每个元素定制每种样式。让我们继续下一节,看看一些例子。

我们已经了解了参数是什么以及何时使用它。现在是时候看看如何传递参数了:

@mixinname($argument,$argument){property:$argument;property:$argument;}通过传递参数,您可以自定义它们

这是一个例子:

@mixincircle2($width,$height,$color){width:$width;height:$height;background:$color;}您可以将参数视为可自定义的变量,您可以在不同的情况下使用这些变量来创建不同的东西,而无需重复自己。

就像你传递$width给width属性一样,你可以在不同的情况下定义它。也许您需要在一个地方宽度为50像素,在其他地方为500像素。

那有意义吗?让我用另一个例子为你分解。

好的,回到我们的圈子。

我想用一个mixin制作一个大的红色圆圈和一个小的绿色圆圈(两个不同的东西)。

width,heightandbackground-color,right由于我们正在构建圆圈,因此两种情况下的边界半径都是50%。所以我会不管它,不会向它传递任何论据。

现在我们只剩下3个属性:

这意味着我们只需要3个参数:

@mixincircle($width,$height,$color){//Wepassed$widthtothewidthpropertywidth:$width;//Wepassed$heighttotheheightpropertyheight:$height;//Andwepassed$colortowidthbackground-colorbackground:$color;//noargumentforthisproperty,beacuaseit'sgonnabethe//sameinbothcirclesborder-radius:50%;}这就是我们的mixin的样子

所以现在让我们看看如何将参数传递给我们的mixin:

.circle-red{//circle($width,$height,$color);@includecircle(350px,350px,red);}对于小绿圈.circle-green{//circle($width,$height,$color);@includecircle(200px,200px,green);}结果如下:

但是如果我要制作一个正方形和一个圆形,那么我也需要将一个参数传递给border-radius:

@mixincircle($width,$height,$color,$radius){width:$width;height:$height;background:$color;//passedargumenttoborder-radiustohavecontroloveritborder-radius:$radius;}.square{//($width,$height,$color,$radius)@includecircle(350px,350px,red,10px);}.circle{//($width,$height,$color,$radius)@includecircle(200px,200px,green,50%);}现在我们有一个大的红色方块和一个小的绿色圆圈:

这就是我想做的,黑色背景的绿色文本和透明背景的红色文本:

@mixintext($font-size,$color,$bg-color){//wepassthe$font-sizetofont-sizepropertyfont-size:$font-size;//wepassthe$colortocolorpropertycolor:$color;//wepassthe$bg-colortobackgroundpropertybackground:$bg-color;}.text1{//($font-size,$color,$bg-color)@includetext(3rem,green,black)}.text2{//($font-size,$color,$bg-color)@includetext(5em,red,transparent)}你有它。

快速提示:请记住,参数的顺序很重要。

这很重要,因为知道要为每个参数传递什么值的唯一方法是使用正确的顺序。

@mixincircle($width,$height,$color){width:$width;height:$height;background:$color;border-radius:50%;}.circle-red{//($width,$height,$color)@includecircle(350px,350px,red);}正确的顺序

您不能先传递颜色,然后再传递宽度和高度:

.circle-red{@includecircle(red,350px,350px);}错误的顺序

关于这个错误的顺序,我们传递$width给width属性,因此第一个值需要是一个数字。因此,如果您$color先通过,则将无法识别该值。这就是为什么我们必须按顺序传递参数。

@mixinname{properties;}@mixinname($argument,$argument){property:$argument;property:$argument;}

THE END
1.首先其次后面是什么顺序1、顺序是这样的:首先、其次、再次、从次、最后。2、如后还要加的话,就是:首先、其次、再次、从此、最后、另外、除此之外、值得一提的是……3、还可以这样排序:写文章的时候一般会按照“首先,其次,再次,最https://edu.iask.sina.com.cn/jy/2UXHLRUkODB.html
2.如何画出一张合格的思维导图一、首先了解一下什么是思维导图? 图片来自月青山 ***1、思维导图:*** 来一个拆词游戏,对思维导图这四个字进行拆解。***思就是指思绪,思维,理念,想法等等这些思维的东西。维就是指维度,绳子。导就是导向,从大到小。图就是指图像,图案。那么串起来就是,思维导图就是用绳子从大到小把思维思绪串起来的https://www.jianshu.com/p/fa03c61286d3
3.如何提升价值因子的IC值首先我们了解一下什么是IC值,IC具体的计算公首先我们了解一下什么是IC值,IC具体的计算公式是全部股票在调仓周期期初的排名和本调仓周期收益排名的线性相关度。IC均值是多个调仓周期IC的平均值。IC越大,表明排名分越靠前的股票,未来收益排名也越靠前。 IC的理论最大值为1 ,但对于多年的IC均值来说, >0.05时, https://xueqiu.com/1827245056/139603030
4.OpenStack系列之FileShareService(Manila)详解manilaopenstack首先说下什么是OpenStack? OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服 务提供API以进行集成。https://blog.csdn.net/hxpjava1/article/details/86803244
5.医学教育网医学教育网-正保旗下医学考试网站,常年开展:临床,中医,口腔执业医师考试培训班,执业药师,医学考研,卫生资格考试辅导班,医学考试网上辅导通过率屡创新高!同时也提供卫生人才网和医学考试中心考试报名动态。https://www.med66.com/
6.阿司匹林肠溶片应该空腹吃还是餐后吃?在<拜阿司匹林肠溶片>说明书中是这样标注的:推荐阿司匹林肠溶片应用适量水服用,最好在饭前至少30分钟服用。不应压碎、掰开或咀嚼肠溶片,以确保活性物质在小肠碱性环境中释放。下面跟大家解释一下阿司匹林肠溶片为什么需要饭前吃? 1、首先介绍一下什么是肠溶片 https://www.jnslsy.com/info/1089/19615.htm