百科狗-知识改变命运!
--

@at-root - scss 规则

百变鹏仔1年前 (2023-11-21)阅读数 19#技术干货
文章标签规则

@at-root

该@at-root规则通常是编写的@at-root{...},并导致其中的所有内容都在文档的根部发出,而不是使用正常的嵌套。它最常用于使用 SassScript 父选择器和选择器函数进行高级嵌套时。

例如,假设您要编写一个匹配外部选择器和元素选择器的选择器。您可以编写一个像这样的 mixin,它使用selector.unify()函数与&用户的选择器相结合。

scss 语句css 语句
@use "sass:selector";

@mixin unify-parent($child) { @at-root #{selector.unify(&, $child)} {
    @content;
  }
}

.wrapper .field {
  @include unify-parent("input") {
    /* ... */
  }
  @include unify-parent("select") {
    /* ... */
  }
}
.wrapper input.field {
  /* ... */
}

.wrapper select.field {
  /* ... */
}

该@at-root规则在这里是必要的,因为 Sass 在执行选择器嵌套时不知道使用什么插值来生成选择器。这意味着即使您用&作 SassScript 表达式,它也会自动将外部选择器添加到内部选择器。@at-root明确告诉 Sass 不要包含外部选择器。

@at-root还可以编写规则以将@at-root{...}多个样式规则放在文档的根部。其实@at-root{...},只是一个简写@at-root@at-root{{...}}


超越风格规则

就其本身@at-root而言,只会摆脱样式规则。任何类似于@mediaor的规则@supports都将被保留。但是,如果这不是您想要的,您可以使用诸如媒体查询功能之类的语法精确控制它包含的内容,,这些功能是在根目录下编写的@at-root(with:){...}@at-root(without:){...}.(without:...),查询告诉 Sass ,应该排除哪些规则;(with:...)。查询排除除列出的规则之外的所有规则。

scss 语句css 语句
@media print {
  .page {
    width: 8in;

    @at-root (without: media) {
      color: #111;
    }

    @at-root (with: rule) {
      font-size: 1.2em;
    }
  }
}
@media print {
  .page {
    width: 8in;
  }
}
.page {
  color: #111;
}
.page {
  font-size: 1.2em;
}

@at-root - scss 规则

除了 at-rules 的名称之外,还有两个可以在查询中使用的特殊值:

  • rule指风格规则。例如,@at-root(with: rule)排除所有 at 规则但保留样式规则。
  • all指应排除所有 at-rules 和 style 规则。

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)