小编Aft*_*ame的帖子

SASS忽略在if语句中定义的变量

我有一个名为style.scss的文件,代码如下:

@import 'variables';

body {
    color: $text-color;
    background: $background-color;
}
Run Code Online (Sandbox Code Playgroud)

还有一个名为_variables.scss的部分:

$colorscheme: white;

@if $colorscheme == white {
    $text-color: #333;
    $background-color: #fff;
}
@else {
    $text-color: #ccc;
    $background-color: #333;
}
Run Code Online (Sandbox Code Playgroud)

if语句正常工作,但内部定义的变量不起作用.当我尝试编译它时,我不断得到:

语法错误:未定义的变量:"$ text-color".

variables if-statement sass

24
推荐指数
2
解决办法
1万
查看次数

如何在不创建NSButtonCell子类的情况下创建自定义主题NSButton?

我目前正致力于定制主题NSButton.我发现的每个教程或指南都需要子类化NSButtonCell,甚至是Apple的指南.

所有这些似乎都已过时,因为所有的单元格方法NSControl在Yosemite中被弃用.我没有找到任何建议或指导用作替代品.

这是唯一的陈述,我能找到:

逐步弃用NSCell

Mac OS X 10.10向最终弃用单元格迈出了一步.不鼓励直接访问控件的单元格,允许它的方法将在后续版本中正式弃用.各种单元级API已被提升为各种Control子类,以便提供对无重要功能的无单元访问.NSLevelIndicator,NSTextField,NSSearchField,NSSlider和NSPathControl都具有用于此目的的新属性.现在不推荐使用基于单元格的NSTableViews,而应使用基于视图的NSTableViews.基于矩阵的NSBrowser也不推荐使用基于项目的界面.

摘录自:适用于OS X v10.10的AppKit发行说明

NSButton虽然没有言论.

NSTextField支持图层支持的视图; 因此,我尝试了同样的方法NSButton,但这没有效果.

var btn = NSButton(NSMakeRect(0, 0, 50, 20))
btn.wantsLayer = true
btn.bordered = false
btn.layer?.backgroundColor = NSColor(calibratedWhite: 0.99, alpha: 1).CGColor
btn.layer?.borderWidth = 1
btn.layer?.borderColor = NSColor(calibratedWhite: 0.81, alpha: 1).CGColor
Run Code Online (Sandbox Code Playgroud)

macos cocoa swift

21
推荐指数
1
解决办法
4032
查看次数

如何防止vh-units忽略滚动条?

我正在使用水平滚动条进行页面布局.我有一些水平顺序固定宽度的面板,它们都应该具有视口高度.我决定测试一下这个vh单元.

.panel { height: 100vh; }
Run Code Online (Sandbox Code Playgroud)

这工作正常,直到我得到一个滚动条.问题是,vh忽略滚动条使用的高度,因此添加了一个垂直滚动条.

我想从测量结果中减去滚动条的高度vh; 有没有办法做到这一点?

css units-of-measurement viewport-units

18
推荐指数
1
解决办法
1万
查看次数

如何在定义整个地图之前引用地图中的变量?

我将从我的代码开始,因为它应该更容易理解我想要做什么:

@function get-color($color, $lightness) {
  @return map-get(map-get($colors, $color), $lightness);
}

$colors: (
  green: (
    light: #A4EDE1,
    mid: darken(get-color(green, light), 20%),
    dark: darken(get-color(green, mid), 20%)
  ),

  red: (
    light: complement(get-color(green, light)),
    mid: complement(get-color(green, mid)),
    dark: complement(get-color(green, dark))
  )
);
Run Code Online (Sandbox Code Playgroud)

如您所见,我使用我的颜色值创建了一个多维地图。
目前,我想通过darken()complement()函数创建其他颜色。问题是,我需要在$colors变量完全填充之前引用变量内部的变量。这导致我的get-color()函数出错,告诉我没有$colors变量。

我知道可以更改$colors地图外的颜色,但这样做的好处是,我可以随时返回并定义颜色值,这些值不会生成。这将是维护项目的巨大好处。

所以我的问题是:在定义整个地图之前,有没有办法在地图中引用另一个变量?

sass map

5
推荐指数
1
解决办法
1605
查看次数

如何设置默认字体功能设置?

如何设置每种字体的默认字体功能设置?

我在当前项目中使用两种不同的字体,并希望在这两种字体上启用字体功能设置。目前我必须通过*选择器执行此操作:

*, *:before, *:after {
  -webkit-font-feature-settings: "kern", "liga", "pnum" "ss01";
     -moz-font-feature-settings: "kern", "liga", "pnum" "ss01";
      -ms-font-feature-settings: "kern", "liga", "pnum" "ss01";
          font-feature-settings: "kern", "liga", "pnum" "ss01";
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都很好; 这样我将字距调整、连字和比例数字设置为默认值。问题在于另类风格集。我想在我的一种字体的每个实例上都有这个。另一种字体有另一种风格,我不想使用。

我更喜欢的方法是合并默认值,如下所示@font-face

@font-face {
  font-family: 'FFDin';
  font-weight: normal;
  font-style: normal;

  -webkit-font-feature-settings: "kern", "liga", "pnum" "ss01";
     -moz-font-feature-settings: "kern", "liga", "pnum" "ss01";
      -ms-font-feature-settings: "kern", "liga", "pnum" "ss01";
          font-feature-settings: "kern", "liga", "pnum" "ss01";

  src: url("fonts/DINWeb-Light.eot");
  src: url("fonts/DINWeb-Light.eot?#iefix") format("embedded-opentype"),
       url("fonts/DINWeb-Light.woff") format("woff"),
       url("fonts/DINWeb-Light.ttf") format("truetype");
}
Run Code Online (Sandbox Code Playgroud)

我已经在 chrome 中测试过这个,但它不起作用。有没有办法声明每种字体的默认字体功能设置?

css fonts opentype

5
推荐指数
1
解决办法
4799
查看次数

将 bash 变量传递给 rollup.js

我正在尝试在 bash 中将变量传递给 rollup.js。\n我不\xe2\x80\x99t 不知道这是 bash 问题,还是 rollup.js 的问题,因为我在 bash 方面没有那么丰富的经验。但也许有人可以帮助我\xe2\x80\xa6

\n\n

这是我的终端输入:

\n\n
MY_INPUT="/path to my/input.js"\nMY_OUTPUT="/path to my/output.js"\nrollup --input $MY_INPUT --output $MY_OUTPUT\n
Run Code Online (Sandbox Code Playgroud)\n\n

Rollup 抛出错误:

\n\n
\n

rollup 一次只能捆绑一个文件

\n
\n\n

我将问题追溯到路径内的空白处。

\n\n

然而,这两种方法都有效:

\n\n
rollup --input "/path to my/input.js" --output "/path to my/output.js"\nrollup --input /path\\ to\\ my/input.js --output /path\\ to\\ my/output.js\n
Run Code Online (Sandbox Code Playgroud)\n\n

仅当我使用变量时才会出现此问题。\n我还尝试转义变量而不是将其放在括号中,但这也不起作用。

\n\n

有没有办法让变量像我想要的那样运行,这是 rollup.js 必须处理的问题,还是根本不可能使用其中包含空格的路径作为变量的参数?

\n

bash rollupjs

3
推荐指数
1
解决办法
1404
查看次数