Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css Sass:&;定义嵌套类时_Css_Sass - Fatal编程技术网

Css Sass:&;定义嵌套类时

Css Sass:&;定义嵌套类时,css,sass,Css,Sass,我在学习。我正在浏览嵌套类部分。它有以下代码片段 nav { ul { margin: 0; padding: 0; list-style: none; } li { display: inline-block; } a { display: block; padding: 6px 12px; text-decoration: none; } } 在我的项目中,使用了Sass。嵌套类是在和操作符的帮助下编写的。同样的片段写

我在学习。我正在浏览嵌套类部分。它有以下代码片段

nav {
  ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  li { display: inline-block; }

  a {
    display: block;
    padding: 6px 12px;
    text-decoration: none;
  }
}
在我的项目中,使用了Sass。嵌套类是在
操作符的帮助下编写的。同样的片段写为:

nav {
  & ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  & li { display: inline-block; }

  & a {
    display: block;
    padding: 6px 12px;
    text-decoration: none;
  }
}

两个代码段生成的CSS相同,如下所示:

nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
nav li {
  display: inline-block;
}
nav a {
  display: block;
  padding: 6px 12px;
  text-decoration: none;
}

我想知道的是这个
&
操作员在这里做什么?可以省略吗?

这两个代码段生成的CSS相同,因为在&后面有一个空格,但如果删除了该空格,则应获得相同的CSS

navul {
  margin: 0;
  padding: 0;
  list-style: none;
}
navli {
  display: inline-block;
}
nava {
  display: block;
  padding: 6px 12px;
  text-decoration: none;
}
但是在这种情况下,它没有任何意义,因此当您在之后有一个类时,我们使用它,如下所示:

nav {
  &.class1 {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  &.class2 { display: inline-block; }

  &.class3 {
    display: block;
    padding: 6px 12px;
    text-decoration: none;
  }
}
您将获得:

nav.class1 {
    margin: 0;
    padding: 0;
    list-style: none;
  }

nav.class2 { display: inline-block; }

nav.class3 {
    display: block;
    padding: 6px 12px;
    text-decoration: none;
  }

在深入研究文档之后,我找到了
的解释。所以基本上,
&
是一个父选择器。从文件:

有时,在其他应用程序中使用嵌套规则的父选择器很有用 方式比默认方式。例如,您可能希望有特殊的 将选择器悬停在上方或主体上时的样式 元素有一个特定的类。在这些情况下,您可以显式地 使用指定插入父选择器的位置& 性格例如:

SCSS

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

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;
}

它引用了父选择器。检查下面的链接。谢谢你的解释。我明白了。