<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>bingxiaoxiao</title>
<link rel="stylesheet" href="../css/demo.css">
</head>
<body>
<!-- 使用变量 -->
<div class="selected">使用变量</div>
<!-- 嵌套CSS 规则 -->
<div id="content">
<article class="article ">
<h1>我就是标题</h1>
<p class="">bingxiaoxiao , hello word</p>
</article>
<aside class="footer">
版权 2010-2019
</aside>
</div>
<!-- 子组合选择器和同层组合选择器:>、+和~;
article section { margin: 5px }
article > section { border: 1px solid #ccc }
你可以用子组合选择器>选择一个元素的直接子元素。上例中,第一个选择器会选择article下的所有命中section选择器的元素。
第二个选择器只会选择article下紧跟着的子元素中命中section选择器的元素。
可以用同层相邻组合选择器+选择header元素后紧跟的p元素:header + p { font-size: 1.1em }
你也可以用同层全体组合选择器~,选择所有跟在article后的同层article元素,不管它们之间隔了多少其他元素:article ~ article { border-top: 1px dashed #ccc } -->
<!-- css中注释的作用包括帮助你组织样式、以后你看自己的代码时明白为什么这样写,以及简单的样式说明。但是,你并不希望每个浏览网站源码的人都能看到所有注释。
sass另外提供了一种不同于css标准注释格式/* ... */的注释语法,即静默注释,其内容不会出现在生成的css文件中。静默注释的语法跟JavaScriptJava等类C的语言中单行注释的语法相同,
它们以//开头,注释内容直到行末。
body {
color: #333; // 这种注释内容不会出现在生成的css文件中
padding: 0; /* 这种注释内容会出现在生成的css文件中 */
} -->
<!-- 混合器 -->
<div class="notice">我是混合器</div>
<ul class="plain"><li>当一个包含css规则的混合器通过@include包含在一个父规则中时,在混合器中的规则最终会生成父规则中的嵌套规则</li></ul>
<!-- 继承 -->
<div class="seriousError">我要继承</div>
</body>
</html>
demo.sass
// 1.使用变量
// sass使用$符号来标识变量
// sass并不想强迫任何人一定使用中划线或下划线,所以这两种用法相互兼容。用中划线声明的变量可以使用下划线的方式引用,反之亦然
$highlight-color: #F90;
$highlight-border: 1px solid $highlight-color;
.selected {
border: $highlight-border;
}
// 2.嵌套CSS 规则
$nav-color: #F90;
$color-theme:red;
#content {
article {
h1 { color: $nav-color }
p { font-size:18px;background: $nav-color}
// 父选择器的标识符&;
&:hover { color: $color-theme }
}
aside { background-color: gold ;color: $color-theme;text-decoration:underline }
}
// 4. 静默注释;
// body {
// color: #333; // 这种注释内容不会出现在生成的css文件中
// padding: 0; /* 这种注释内容会出现在生成的css文件中 */
// }
// 5.混合器 混合器使用@mixin标识符定义 样式表中通过@include来使用这个混合器,放在你希望的任何地方。
@mixin rounded-corners {
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
.notice {
background-color: green;
border: 2px solid #00aa00;
@include rounded-corners;
}
@mixin no-bullets {
list-style: none;
li {
list-style-image: none;
list-style-type: none;
margin-left: 0px;
}
}
ul.plain {
color: red;
@include no-bullets;
}
//6.通过选择器继承继承样式 @extend 继承
.error {
border: 1px solid red;
background-color: #fdd;
}
.seriousError {
@extend .error;
border-width: 3px;
}