[SCSS変数] $ | & | var | @for | @include | @function | @eachなど一般的なメソッドを使用

1. 変数の宣言( $)と使い方

// 用`$`声明变量
$color: red;
// 直接使用变量
span{
    
     color: $color; }
p{
    
     background: $color; }

2.&親要素の代わりに使用する

a{
    
    
	color: red;
	&:hover{
    
    
		color: green;
	}
}

3. HTML で:style={'--name': 动态值}カスタム属性を使用し、 var(--name)SCSS の関数で動的変数値をバインドします。

<p v-for="(item, index) in dataList" :key="index" :style="{'--color': item.color}" >{
   
   {item.name}}</p>
p{
    
    
	color: var(--color);
}
data() {
    
    
	return {
    
    
		dataList: [
			{
    
    name: '红色', color: 'red'},
			{
    
    name: '蓝色', color: 'blue'},
			{
    
    name: '绿色', color: 'green'}
		]
	}
}

ここに画像の説明を挿入します

4.ミキサー(@mixin)と使用(@include

// @mixin声明混合器: 圆角边框

@mixin round-radius{
    
    
	border-radius: 10px;
	background: red;
}
// 使用@include 混入一段重用样式的代码

p{
    
     
	width: 200px;
	height: 100px;
	@include round-radius;  // @include 使用变量
}

5.@mixinミキサーのパラメーターを定義し ( )、@includeパラメーターを渡すために ( )を使用します。

// @mixin声明混合器: a不同状态的颜色参数

@mixin link-colors($normal, $hover, $visited) {
    
    
  color: $normal;
  &:hover {
    
     color: $hover; }
  &:visited {
    
     color: $visited; }
}
// @include 使用变量,并传入实际参数

a {
    
    
  @include link-colors(blue, red, green);
}
//Sass编译后最终生成的是:

a {
    
     color: blue; }
a:hover {
    
     color: red; }
a:visited {
    
     color: green; }

6. ( @extend) を使用してパブリッククラス (要素名、.class) を継承します。

//通过选择器继承继承样式
.error {
    
    
  border: 1px solid red;
  background-color: #fdd;
}

.seriousError {
    
    
  @extend .error; // 继承
  border-width: 3px;
}

7. use ステートメント@function@forループステートメント

@for 指令可在限制的范围内重复输出格式,每次按要求(变量的值)对输出结果做出变动。
包含两种格式:
@for $var from <start> through <end>  代表 [ start, end ]
@for $var from <start> to <end>  代表 [ start, end },不包含end
另外,$var 可以是任何变量,如 $i;<start><end> 必须是整数值。

使用法 1:

@for $i from 1 through 3 {
    
    
  .item-#{
    
    $i} {
    
     width: 2em * $i; }
}
// 编译为:
.item-1 {
    
     width: 2em; }
.item-2 {
    
     width: 4em; }
.item-3 {
    
     width: 6em; }

使用法 2:

// 使用scss随机添加 box-shadow,参数 n = 个数,range = 范围

@function multiple-box-shadow($n, $range) {
    
    
  $value: '#{
    
    random($range)}px #{
    
    random($range)}px #FFF';
  @for $i from 1 through $n {
    
    
    $value: '#{
    
    $value} , #{
    
    random($range)}px #{
    
    random($range)}px #FFF';
  }
  @return unquote($value); // 去掉''引号
}
#stars {
  width: 1px;
  height: 1px;
  box-shadow: multiple-box-shadow(700, 2000);
}

ボックスシャドウを使用して小さな正方形をランダムに描画して星空を形成します
ここに画像の説明を挿入します

8.@eachループを使用する

@each $color in red, blue, green{
    
    
  .#{
    
    $color}-icon {
    
    
    background-image: url('/images/#{$color}.png');
  }
}
// 编译为:
.red-icon {
    
    
  background-image: url('/images/red.png'); 
}
.blue-icon {
    
    
  background-image: url('/images/blue.png'); 
}
.green-icon {
    
    
  background-image: url('/images/green.png'); 
}

おすすめ

転載: blog.csdn.net/sunshineTing2/article/details/132474857