SCSS编译正在抛出语法错误isn';不是有效的CSS值
我有一个带有两个函数的调色板scss文件,一个用于获取颜色,另一个用于获取颜色,但具有不透明度。该文件的编译不会引发任何错误,但当我打算使用不透明度函数时,我得到一个错误SCSS编译正在抛出语法错误isn';不是有效的CSS值,css,sass,Css,Sass,我有一个带有两个函数的调色板scss文件,一个用于获取颜色,另一个用于获取颜色,但具有不透明度。该文件的编译不会引发任何错误,但当我打算使用不透明度函数时,我得到一个错误(“暗”:0.1,“亮”:0.8)不是有效的CSS值,我不知道为什么 $my-colors: ( 'default-blue': #0071ce, 'blue': #064f8e, 'yellow': #f79428, 'light-blue': #1888c8, 'green': #54a546, 'r
(“暗”:0.1,“亮”:0.8)不是有效的CSS值,我不知道为什么
$my-colors: (
'default-blue': #0071ce,
'blue': #064f8e,
'yellow': #f79428,
'light-blue': #1888c8,
'green': #54a546,
'red': #C82022,
'pink': #b51e6d,
'orange': #e54e26
);
$my-opacity: (
'dark': 1,
'light': 0.8
);
@function get-color($key: 'default-blue') {
@return map-get($my-colors, $key);
}
@function get-color-alpha($name: 'default-blue', $opacity: 'dark') {
$color: get-color($name);
// Get the named opacity level, if it exists
@if map-key-exists($my-opacity, $opacity) {
$opacity: map-get($my-opacity, $opacity);
}
// Use rgba() to manipulate the color's alpha level
@return rgba($color, $opacity);
}
我使用的函数如下所示:
li h3 {
color: get-color-alpha('default-blue', 'light');
}
$my-colors: (
'default-blue': #0071ce,
'blue': #064f8e,
'yellow': #f79428,
'light-blue': #1888c8,
'green': #54a546,
'red': #C82022,
'pink': #b51e6d,
'orange': #e54e26
);
$my-opacity: (
"dark": 1,
"light": 0.8
);
@function get-color($key: 'default-blue') {
@return map-get($my-colors, $key);
}
@function get-color-alpha($name: 'default-blue', $opacity: 'dark') {
$color: get-color($name);
// Get the named opacity level, if it exists
@if map-has-key($my-opacity, $opacity) {
$opacity: map-get($my-opacity, $opacity);
}
// Use rgba() to manipulate the color's alpha level
@return rgba($color, $opacity);
}
li h3 {
color: get-color-alpha('default-blue', 'light');
}
我在sass v3.5.6文档中直接查找了该问题,发现错误是由“map key exists”函数引起的:
我没有找到该函数,但我发现要知道映射是否有与键关联的值,必须使用map has key($map,$key)
。所以,如果你改变它,写下如下内容:
li h3 {
color: get-color-alpha('default-blue', 'light');
}
$my-colors: (
'default-blue': #0071ce,
'blue': #064f8e,
'yellow': #f79428,
'light-blue': #1888c8,
'green': #54a546,
'red': #C82022,
'pink': #b51e6d,
'orange': #e54e26
);
$my-opacity: (
"dark": 1,
"light": 0.8
);
@function get-color($key: 'default-blue') {
@return map-get($my-colors, $key);
}
@function get-color-alpha($name: 'default-blue', $opacity: 'dark') {
$color: get-color($name);
// Get the named opacity level, if it exists
@if map-has-key($my-opacity, $opacity) {
$opacity: map-get($my-opacity, $opacity);
}
// Use rgba() to manipulate the color's alpha level
@return rgba($color, $opacity);
}
li h3 {
color: get-color-alpha('default-blue', 'light');
}
我们的sass版本3.5.6编译:
li h3 {
color: rgba(0, 113, 206, 0.8);
}
“哇!终于成功了!”我说!:D我使用节点sass 4.8.3运行了您的精确代码,并正确地编译了以下css:li h3{color:rgba(0,113,206,0.8);}
那么可能是我的sass版本了吗?这是3.5.6我建议更新npm更新-g节点sass