Sass变量未在代码中读取

您好,

当向我的主题添加更多设置时,Discourse 开始忽略它们。

代码:


#main-outlet-wrapper .sidebar-wrapper {
  @if $Full_Width == true {
    left: 10px;
  }
}

@if $Full_Width == true {
  :root {
    --d-max-width: 95%;
  }
  #main-outlet {
    max-width: 90%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 5px;
    margin-bottom: 50px;
  }
}

无论设置值如何,此代码均无效。

但是,如果我删除 == true,它将始终启用,无论如何。

这似乎也是其他布尔值的问​​题?我阅读了 Sass 文档,我的代码与之匹配,但它仍然不起作用。


div#main-outlet.wrap.not-found-container,
#main-outlet-wrapper {

  #main-outlet,
  .sidebar-wrapper {
    @if $Is_Background_Blurred {
      backdrop-filter: blur(3rem) !important;
      background-color: #0a0a0aa6 !important;

      input[type],
      .select-kit.combo-box .select-kit-header,
      .d-editor-textarea-wrapper,
      div.ac-wrap {
        background: transparent;
      }
    }

    @else {
      backdrop-filter: none !important;
      background-color: var(--secondary) !important;

      input[type],
      .select-kit.combo-box .select-kit-header,
      .d-editor-textarea-wrapper,
      div.ac-wrap {
        background: transparent;
      }
    }
  }
}

感谢您的任何帮助。

2 个赞

几周前我也遇到了同样的问题,并得出结论,SASS 的 if 条件没有按我预期的那样工作。不过,如果可能的话,我将非常乐意知道:

在 SASS 文件中“如果这个 site_setting == value 则”。

我只是在这里放上这个,以防它有任何用处:

2 个赞

在我发帖之前,我查看了这里,我的代码和这里完全一样。

执行 @if $var {} 将始终运行它,无论其值如何,而 @if $var == true {} 将永远不会运行它。

您试过:

@if $var == "true"

这可能是因为布尔值实际上是字符串,我以前在主题组件中遇到过这种情况。

3 个赞

是的,似乎解决了,奇怪。

2 个赞

太棒了,你们俩都帮我弄清楚了我主题组件中的一个我放弃了的问题。:v:

2 个赞

这或许能解决我们最近讨论的深色主题切换问题,谢谢。

它目前无法正常工作。

3 个赞

就这样,克里斯帮助了整个人口。

3 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.