带Nativescript的条件Sass变量

带Nativescript的条件Sass变量,sass,nativescript,Sass,Nativescript,Android和iOS以截然不同的方式呈现字体。我希望能够让它们的渲染看起来更相似一些,所以我需要在整个应用程序中更改字体大小和权重,这取决于它是在iOS还是android上 显然,在定义了字体大小或权重的每个地方,添加一个条件for是不可能的,幸运的是,我已经有了由sass变量定义的所有字体大小和权重 无论是否有比条件sass变量更好的解决方案,我想知道: 如何在nativescript中有条件地选择sass变量 我知道模块将使用MyModule.ios.css或MyModule.androi

Android和iOS以截然不同的方式呈现字体。我希望能够让它们的渲染看起来更相似一些,所以我需要在整个应用程序中更改字体大小和权重,这取决于它是在iOS还是android上

显然,在定义了字体大小或权重的每个地方,添加一个条件for是不可能的,幸运的是,我已经有了由sass变量定义的所有字体大小和权重

无论是否有比条件sass变量更好的解决方案,我想知道:

如何在nativescript中有条件地选择sass变量


我知道模块将使用MyModule.ios.css或MyModule.android.css,具体取决于操作系统。我能利用这一点吗?

是的,你走对了方向。可以使用MyVariable.android.scss和MyVariable.ios.scss为Sass变量定义不同的值。在我的代码共享项目中,我还有MyVariable.scs,用于HTMLWeb

我已经为您创建了一个示例游乐场。 在my home.component.ios.scss中

$labelfontSize: 10;
$labelfontColor: red;
.home-panel{
    vertical-align: center; 
    font-size: 20;
    margin: 15;
}

.description-label{
    margin-bottom: 15;
    color: $labelfontColor;
    font-size: $labelfontSize;
}
在我的home.component.android.scss中

$labelfontSize: 18;
$labelfontColor: green;
.home-panel{
    vertical-align: center; 
    font-size: 20;
    margin: 15;
}

.description-label{
    margin-bottom: 15;
    color: $labelfontColor;
    font-size: $labelfontSize;
}

它在ios中显示红色文本,而在android中显示绿色文本。

我如何有条件地导入它们。我不想在使用变量的每个文件中同时导入这两个文件,也不能从根app.scss文件导入。您只需要导入MyVariable.scss,而不是MyVariable.android.scss或ios文件。基于平台,它将被编译。您介意展示一些代码吗?我不认为你说的对我的案子有实际意义,但我很难从措辞上说出来。我为你创造了一个游乐场。啊。非常感谢。我刚查过,但这不符合我的要求。我希望能够只更改变量,而不必复制粘贴所有css。