Sass对CSS的扩展-嵌套规则,引用父选择器,属性嵌套,占位符选择器_html/css_WEB-ITnose

php中文网
发布: 2016-06-21 08:54:53
原创
1323人浏览过

翻译自sass官方文档: http://sass-lang.com/documentation/file.sass_reference.html#css_extensions

嵌套规则 (Nested Rules)

Sass 允许将一个 CSS 样式嵌套进另一个样式中,内层样式仅适用于外层样式的选择器范围内(愚人码头注:可以理解为层级选择器),例如:

#main p {  color: #00ff00;  width: 97%;  .redbox {    background-color: #ff0000;    color: #000000;  }}
登录后复制

编译为:

立即学习前端免费学习笔记(深入)”;

Calliper 文档对比神器
Calliper 文档对比神器

文档内容对比神器

Calliper 文档对比神器 28
查看详情 Calliper 文档对比神器
#main p {  color: #00ff00;  width: 97%; }  #main p .redbox {    background-color: #ff0000;    color: #000000; }
登录后复制

这有助于避免父选择器重复,相对于复杂的CSS布局中多层嵌套的选择器 要简单得多。 例如:

#main {  width: 97%;  p, div {    font-size: 2em;    a { font-weight: bold; }  }  pre { font-size: 3em; }}
登录后复制

编译为:

立即学习前端免费学习笔记(深入)”;

#main {  width: 97%; }  #main p, #main div {    font-size: 2em; }    #main p a, #main div a {      font-weight: bold; }  #main pre {    font-size: 3em; }
登录后复制

引用父选择器:& (Referencing Parent Selectors: &) {#parent-selector}

有些时候需要直接使用嵌套外层的父选择器,这个就很有用了,例如,你可能喜欢给选择器指定 hover样式,或者当body元素具有某个样式时,在这些情况下,你可以 &字符来明确地表示插入指定父选择器。 例如:

a {  font-weight: bold;  text-decoration: none;  &:hover { text-decoration: underline; }  body.firefox & { font-weight: normal; }}
登录后复制

编译为:

立即学习前端免费学习笔记(深入)”;

a {  font-weight: bold;  text-decoration: none; }  a:hover {    text-decoration: underline; }  body.firefox a {    font-weight: normal; }
登录后复制

&将替换为呈现在CSS文件中的父选择器。这意味着,如果你有一个多层嵌套的规则,父选择器将在被 &替换之前完全分解。 例如:

#main {  color: black;  a {    font-weight: bold;    &:hover { color: red; }  }}
登录后复制

编译为:

立即学习前端免费学习笔记(深入)”;

#main {  color: black; }  #main a {    font-weight: bold; }    #main a:hover {      color: red; }
登录后复制

&必须出现在的选择器的开头位置(愚人码头注:也就是作为选择器的第一个字符),但可以跟随后缀,将被添加到父选择的后面。 例如:

#main {  color: black;  &-sidebar { border: 1px solid; }}
登录后复制

编译为:

立即学习前端免费学习笔记(深入)”;

#main {  color: black; }  #main-sidebar {    border: 1px solid; }
登录后复制

父选择器 &被作为一个后缀的时候,Sass 将抛出一个错误。

嵌套属性 (Nested Properties)

CSS中有一些属性遵循相同的“命名空间”;比如, font-family, font-size, 和 font-weight都在 font命名空间中。在CSS中,如果你想在同一个命名空间中设置一串属性,你必须每次都输出来。Sass为此提供了一个快捷方式:只需要输入一次命名空间,然后在其内部嵌套子属性。例如:

.funky {  font: {    family: fantasy;    size: 30em;    weight: bold;  }}
登录后复制

编译为:

立即学习前端免费学习笔记(深入)”;

.funky {  font-family: fantasy;  font-size: 30em;  font-weight: bold; }
登录后复制

命名空间也可以有自己的属性值。例如:

.funky {  font: 20px/24px fantasy {    weight: bold;  }}
登录后复制

编译为:

立即学习前端免费学习笔记(深入)”;

.funky {  font: 20px/24px fantasy;    font-weight: bold;}
登录后复制

占位符选择器: %foo(Placeholder Selectors: %foo)

Sass 支持一种特殊类型的选择器,叫做”占位符选择器” (placeholder selector)。这些看起来像 class 和 id 选择器,除了 #或 .用 %替换。他们需要在中使用;有关详细信息,请参阅 @extend-Only Selectors 。

当他们单独使用的时候,即没有使用 @extend的,使用占位符选择器的规则集将不会被渲染为CSS。

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号