当前位置:   article > 正文

CSS之Sass中的@mixin和@extend,使用详细(Sass中@mixin和@extend的区别)_sass mixin

sass mixin

简介:

@mixin:该指令用于定义可重用的代码块,可以在需要的地方进行调用。通过@mixin指令,你可以将一组样式代码封装成一个mixin,并在需要的地方使用@include指令来调用这个mixin,这样可以避免重复编写相同的样式代码,提高代码的可维护性和可重用性,该指令还可以接受参数,使得代码更加灵活。

@extend:该指令用于将一个选择器的样式继承到另一个选择器上。通过@extend指令,你可以将一个选择器的样式继承到另一个选择器上,从而避免重复编写相同的样式代码,该指令还可以处理选择器的嵌套关系,使得样式的继承更加灵活,但是同时要注意命名重复问题。

@extend和@mixin的区别:@mixin用于定义可重用的代码块,可以在需要的地方进行调用,可以接受参数,而@extend用于将一个选择器的样式继承到另一个选择器上,避免重复编写相同的样式代码,可以处理选择器的嵌套关系;@mixin可以自定义样式,并且传参,但@extend不可以。

一、@mixin

当我们在使用Sass进行样式开发时,难免会遇到一些重复的代码块,例如设置不同元素的样式或者应用相同的样式到不同的选择器上,这时就可以使用Sass提供@mixin指令,它允许你定义可重用的代码块,并在需要的地方进行调用。

@mixin指令的语法如下:

  1. //定义@mixin为mixin-name
  2. @mixin mixin-name { //mixin的样式代码 }
  3. //调用@mixin
  4. .demo_box{ @include mixin-name; }
  5. //调用的时候使用@include

在mixin中可以编写任意的Sass样式代码,包括自定义属性、选择器、嵌套等。@mixin定义完成后,通过@include来直接调用继承@mixin下定义的公共样式。

这里我们举实例说明,

实例1

1、在下面实例中,我们定义了一个名为button-style的mixin,它包含了一些按钮的基本样式。然后我们在.button-small和.button-large选择器中使用@include指令来调用这个mixin,从而将按钮的样式应用到这些选择器上。

  1. @mixin button-style {
  2. background-color: #f00;
  3. color: #fff;
  4. padding: 10px;
  5. border: none;
  6. border-radius: 5px;
  7. }
  8. .button-small {
  9. @include button-style;
  10. }
  11. .button-large {
  12. @include button-style;
  13. font-size: 20px;
  14. }

通过使用@mixin指令,我们可以避免重复编写相同的样式代码,提高代码的可维护性和可重用性。此外,mixin还可以接受参数,使得代码更加灵活,实例2是一个带有参数的mixin的实例。

实例2

2、在下面实例中,我们在@mixin定义的button-style中添加了两个参数bg−color和text-color,分别用于设置按钮的背景颜色和文字颜色。然后我们在@include指令中传入不同的参数值来调用这个@mixin,从而实现不同按钮的样式。

  1. //这里的$bg-color, $text-color@mixin button-style中的自定义的属性
  2. @mixin button-style($bg-color, $text-color) {
  3. //这里的background-color用了$bg-color
  4. background-color: $bg-color;
  5. //这里的color用了$text-color,当然其它元素也可以使用
  6. color: $text-color;
  7. padding: 10px;
  8. border: none;
  9. border-radius: 5px;
  10. }
  11. .button-small {
  12. //这里调用了button-style,并给自定义属性$bg-color和$text-color传值red和blue
  13. @include button-style(red, blue);
  14. }
  15. .button-large {
  16. //这里也调用了button-style,并给自定义属性$bg-color和$text-color传值pink和plum
  17. @include button-style(pink, plum);
  18. }

总结:@mixin指令是Sass中非常有用的功能,它可以帮助我们避免重复编写代码,提高代码的可维护性和可重用性。通过定义可重用的代码块,并在需要的地方进行调用,我们可以更加高效地进行样式开发。同时,mixin还可以接受参数,这使得代码更加灵活。

二、@extend

当我们在使用Sass进行样式开发时,你可能会遇到一些重复的样式代码,例如设置相同的样式到不同的选择器上。为了避免重复编写代码,Sass提供了@extend指令,它允许你将一个选择器的样式继承到另一个选择器上。

@extend指令的语法如下:

  1. .selector { // 样式代码 }
  2. //直接使用就行
  3. .another-selector { @extend .selector; }
  4. //这里需要注意的是继承的时候@extend后要加,点类名(例:.selector)

在上面的例子中,我们定义了一个名为.selector的选择器,并在.another-selector选择器中使用@extend指令来直接调用继承.selector的样式。这样,.another-selector就会继承.selector的所有样式,这个比较简单。

1、这里我们也举实例说明,在下面实例中,我们在.button-default选择器中定义了一个嵌套选择器&:hover,用于设置按钮在鼠标悬停时的样式。

然后我们在.button-large选择器中使用@extend指令来继承.button-default的样式,并添加自己的样式。这样.button-large不仅继承了.button-default的基本样式,还继承了hover的样式。

  1. .button-default {
  2. background-color: #f00;
  3. color: #fff;
  4. padding: 10px;
  5. border: none;
  6. border-radius: 5px;
  7. &:hover {
  8. background-color: #00f;
  9. }
  10. }
  11. .button-large {
  12. @extend .button-default;
  13. font-size: 20px;
  14. }

总结:@extend指令是Sass中非常有用的功能,它可以帮助我们避免重复编写代码,提高代码的可维护性和可重用性。通过将一个选择器的样式继承到另一个选择器上,我们可以更加高效地进行样式开发。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/235355
推荐阅读
相关标签
  

闽ICP备14008679号