@extend指令用于共享规则和选择器之间的关系。它可以扩展所有其他类的样式在一个类中,也可应用于自己特定的样式。以下是扩展的类型:
	
| 
						类型和说明
					 | 语法 | 编译后代码 | 
|---|---|---|
| 
						扩展复杂的选择器:
					 
						它可以仅由一个单一的元素或类选择器扩展选择器。
					 | 		h2{
			font-size: 40px;
		}
		.container{
			@extend h2
		}
	 | 	h2, .container {
		font-size: 40px;
	}
	 | 
| 
						多个扩展:
					 
						一个以上的选择器可以由单个选择器进行扩展。
					 | 		.style{
		font-size: 25px;
		font-style: italic;
		}
		h2{
		color: #61C8E1;
		}
		.container{
		@extend .style;
		@extend h2
		}
	 | 	.style, .container {
	  font-size: 25px;
	  font-style: italic;
	 }
	h2, .container {
  	  color: #61C8E1;
  	}
  	 | 
| 
						链式扩展:
					 
						由第二选择器扩展第一选择器,和第二选择器被第三选择器扩展,因此这被称为链式扩展。
					 | 		.style{
		font-size: 25px;
		font-style: italic;
		}
		h2{
		color: #61C8E1;
		@extend .style
		}
		.container{
		@extend h2
		}
	 | 	.style, h2, .container {
	font-size: 25px;
	font-style: italic;
	}
	h2, .container {
	color: #61C8E1;
	}
	 | 
| 
						选择器序列:
					 
						嵌套选择器可以自己使用@extend。
					 
						合并选择器序列:
					 
						它合并两个序列,即一种序列扩展另一个序列其存在于其它序列。
					 | 		.style{
		font-size: 25px;
		font-style: italic;
		color: #61C8E1;
		}
		h2 .container {
		@extend .style
		}
			.container .style a {
		  font-weight: bold;
		}
		#id .example {
		  @extend a;
		}
	 | 	.style, h2 .container {
	  font-size: 25px;
	  font-style: italic;
  	  color: #61C8E1;
  	}
		.container .style a, .container .style #id
	.example, #id .container .style .example {
  	  font-weight: bold;
  	}
	 | 
| @extend - 只有选择器 
						它百分号(%)可以在任何地方使用ID或类,它可以防止自己的规则设置被渲染为CSS。
					 | 		.style a%extreme {
		  font-size: 25px;
		  font-style: italic;
		  color: #61C8E1;
		}
		.container {
		  @extend %extreme;
		}
	 | 	.style a.container {
	  font-size: 25px;
	  font-style: italic;
  	  color: #61C8E1;
  	  }
  	 | 
| !optional 标志 
						!optional标志用来允许@extend不创造任何新的选择器。
					 | 		h2.important {
		  @extend .style !optional;
		}
	 | A blank compile page gets display. | 
| @extend在指令中 
						如果@extend使用了@media内部,那么它可以只扩展相同的指令块内存在的选择器。
					 | 		@media print {
		  .style {
			font-size: 25px;
			font-style: italic;
		  }
		  .container {
			@extend .style;
			color: #61C8E1;
		  }
		}
	 | 	@media print {
	  .style, .container {
	    font-size: 25px;
	    font-style: italic;
	}
	  .container {
    	color: #61C8E1;
    	}
    }
     | 
示例
		下面的例子演示了在SCSS文件使用@extend:
	
	extend.html
<!doctype html>
<head><meta charset="UTF-8"> <title>扩展示例 -www.xuhuhu.com</title>
	<link rel="stylesheet" href="extend.css" type="text/css" />
</head>
<body class="container">
    <h2>扩展使用实例</h2>
    <p class="style">Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p>
</body>
</html>
	
		接下来,创建文件extend.scss。
	
	extend.scss
.style{
	font-size: 30px;
	font-style: italic;
}
h2{
	color: #787878;
	@extend .style
}
.container{
	@extend h2
}
	
		可以告诉SASS监视文件,并随时使用下面的命令更新SASS文件来修改CSS:
	
sass --watch C:\Ruby22-x64\extend.scss:extend.css
		接着执行上面的命令,它会自动创建extend.css文件,如下面的代码:
	
	extend.css
.style, h2, .container {
	font-size: 30px;
	font-style: italic;
 }
h2, .container {
	color: #787878;
}
	输出结果
		让我们来执行以下步骤,看看上面的代码工作:
	
	- 
			保存上述的HTML代码到 extend.html 文件。
- 
			在浏览器中打开该HTML文件,得到输出如下显示。
	 
 
						上一篇:
								Sass @media指令
												下一篇:
								Sass @at-root指令
												
						
						
					
					
					