【问题标题】:scss generates a css block when using extend and comment together一起使用extend和comment时,scss会生成一个css块
【发布时间】:2014-08-04 18:36:46
【问题描述】:

我有以下 scss(Sass 3.2.12 => 3.2.19 因为指南针):

scss:

.text { 
  color: red;
}

.test1 {
  /* this causes the block to appear */
  p {
    @extend .text;
  }
}

/* no comment, no block */
.test2 {
  p {
    @extend .text;
  }
}

css:

.text, .test1 p, .test2 p {
  color: red;
}

.test1 {
  /* this causes the block to appear */
}

/* no comment, no block */

关于如何避免只包含评论的块有什么想法吗?

【问题讨论】:

  • 如果我将您的代码放入 sassmeister,它不会给我该输出。 - sassmeister.com/gist/1974a7fc4767caead92f
  • 这在语义上甚至都不正确,是吗? p 不应该从 .article 中溢出,对吧?
  • 根本没有办法得到这个输出。 Sass 不会像那样生成空块。
  • @UlrichSchwarz 在 SASS/SCSS 中很好......他只是针对 .article 类的元素内的任何 p
  • @Paulie_D:我知道,但这不是生成的 CSS 所做的,所以它不仅仅是一个什么都不做的虚假空声明,而是 主动错误 输出。

标签: css sass


【解决方案1】:

问题是我在文章块中留下的评论。

重现问题及解决方法:

http://sassmeister.com/gist/3116020d285be50b8807

所以目前的解决方案是从仅包含扩展的块中删除 cmets

不知道这是错误还是功能。它仍然出现在当前的 sass 3.3.8

【讨论】:

  • @cimmanon 请解释为什么您将我的答案标记为无用或不可复制。这很有帮助,因为它表明仅包含扩展的块将呈现如果它们还包含对其他人可能非常有趣的评论,你不觉得吗?还有显示问题和解决方案的 sassmeister 示例。所以它是可重现的。
  • 另外,当 sass 编译选项设置为 'compressed' 时,没有额外的块渲染
  • 不,您的答案中的内容不会重现问题中的措辞。如果您的选择器包含注释,它不为空,现在是吗? Sass 渲染它是因为它不是空的。
  • @cimmanon 这就是我在原始问题中添加评论的原因。现在正是这样。但是您确实同意仅包含评论的块是无用的,即使该块中有“某些东西”?
  • 我看一下 sassmeister 以重现该问题。但是在那里,生成的 CSS 看起来和你的有点不同。它将评论保留在生成的 css 中。也许它应该作为一个问题报告。在我看来,如果 CSS 选择器只填充评论,那么保留它是不明智的。
猜你喜欢
  • 2013-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-09
  • 2016-05-06
  • 1970-01-01
  • 1970-01-01
  • 2020-08-08
相关资源
最近更新 更多