📜  CSS 规则

📅  最后修改于: 2021-08-31 07:07:10             🧑  作者: Mango

Sass 支持作为适当 CSS 一部分的每个规则。为了保持灵活性和未来与即将推出的 CSS 版本兼容,Sass 提供了涵盖几乎所有 at 规则本身的一般支持。
句法:

@ , @ {
   ... 
}

或者

@  {
   ... 
}

规则必须始终是一个标识符,值(如果存在)可以是任何东西。规则和值都可以有插值。如果任何 CSS at-rule 嵌套在样式规则中,它们都会交换自己的位置,以便 at-rule 位于 CSS 输出的顶层,而样式规则位于其中。这使得添加条件样式变得容易,而无需重写样式规则选择器。

例子:

.gfg {
  margin: 4px;
  
  @media geeks { margin: 8px; }
}

输出:

.gfg {
  margin: 4px;
}
@media geeks {
  .gfg {
    margin: 8px;
  }
}

@media 规则:除了允许插值外,@ media规则还允许在查询中直接使用 Sass 脚本表达式。只要有可能,Sass 还会合并相互嵌套的媒体查询,以便支持当前不支持嵌套@media规则的浏览器。

例子:

@media (hover: hover) {
  .gfg:hover {
    border: 4px solid green;
  
    @media (color) {
      border-color: black;
    }
  }
}

输出:

@media (hover: hover) {
  .gfg:hover {
    border: 4px solid green;
  }
}
@media (hover: hover) and (color)
{
  .gfg:hover {
    border-color: black;
  }
}

@supports 规则: @supports规则还允许在声明查询中使用 Sass 脚本表达式。
例子:

@mixin gfg {
  font-family: arial;
  @supports (font-family: geeks ) {
    font-family: geeks;
  }
}
  
.header {
  @include gfg;
}

输出:

.header {
  font-family: arial;
}
@supports (font-family: geeks) {
  .header {
    font-family: geeks;
  }
}

@keyframes 规则: @keyframes 规则的工作方式与任何其他一般规则一样。唯一的区别是它的子规则应该是一些有效的关键帧规则(%、from 或 to)而不是任何普通的选择器。
例子:

@keyframes font-change {
  from {
    font-family: arial;
    color: black;
  }
  
  50% {
    font-family: sans;
    color: green;
  }
  
  to {
    font-family: algerian;
    color: cyan;
  }
}

输出:

@keyframes font-change {
  from {
    font-family: arial;
    color: black;
  }
  50% {
    font-family: sans;
    color: green;
  }
  to {
    font-family: algerian;
    color: cyan;
  }
}