uni-app uni.scss变量未带单位问题

发布于 1周前 作者 yuanlaile 来自 Uni-App

uni-app uni.scss变量未带单位问题

开发环境 版本号 项目创建方式
Windows win11 HBuilderX
Android Android 14
华为
mete60
vue vue3

示例代码:

/* 文字尺寸 */
$uni-font-size-sm:12px;
$uni-font-size-base:14px;
$uni-font-size-lg:16;

这个$uni-font-size-lg没有带单位,难看

操作步骤:

1

预期结果:

1

实际结果:

1

bug描述:

/* 文字尺寸 */
$uni-font-size-sm:12px;
$uni-font-size-base:14px;
$uni-font-size-lg:16;

这个$uni-font-size-lg没有带单位,难看


2 回复

感谢反馈,后续会优化。


在 Uni-app 中,uni.scss 是一个全局样式文件,用于定义一些全局的样式变量。在使用这些变量时,如果变量值没有单位,可能会导致样式不符合预期。以下是一些常见的处理方式和注意事项:

1. 确保变量带有单位

在定义变量时,确保变量值带有单位(如 pxremem 等)。例如:

$font-size: 14px;
$padding: 10px;

2. 在使用时添加单位

如果变量本身没有单位,可以在使用时手动添加单位。例如:

$font-size: 14;
$padding: 10;

.text {
  font-size: $font-size + px;
  padding: $padding + px;
}

3. 使用 calc() 函数

如果需要动态计算样式值,可以使用 calc() 函数。例如:

$font-size: 14;
$padding: 10;

.text {
  font-size: calc(#{$font-size} * 1px);
  padding: calc(#{$padding} * 1px);
}

4. 使用 unit() 函数

在 Sass 中,可以使用 unit() 函数来确保变量带有单位。例如:

$font-size: 14;
$padding: 10;

.text {
  font-size: unit($font-size, px);
  padding: unit($padding, px);
}

5. 全局检查

在项目中,建议全局检查 uni.scss 文件,确保所有变量都带有单位,避免在后续开发中出现问题。

示例

假设你在 uni.scss 中定义了一些变量:

$font-size: 14px;
$padding: 10px;

然后在组件中使用这些变量:

<template>
  <view class="text">Hello, Uni-app!</view>
</template>

<style lang="scss" scoped>
.text {
  font-size: $font-size;
  padding: $padding;
}
</style>
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!