用scss写css,如何在写的时候直接能用px做为单位,但输出为rem单位
比如以375px为宽度,我的html{font-size:4.26666vw;}
这样的scss如何写函数?
用scss写css,如何在写的时候直接能用px做为单位,但输出为rem单位
比如以375px为宽度,我的html{font-size:4.26666vw;}
这样的scss如何写函数?
在SCSS中,你可以使用函数和变量来将px单位转换为rem单位。以下是一个简单的例子,它定义了一个函数,该函数接受一个px值作为参数,并返回相应的rem值。
首先,你需要确定你的基准字体大小(通常是基于视口宽度vw
的)。在你的例子中,你已经有了html { font-size: 4.26666vw; }
。这意味着每1vw等于0.25rem(因为4.26666vw等于1rem)。
现在,你可以定义一个SCSS函数,将px值转换为rem值:
@function px-to-rem($px) {
$base-font-size: 4.26666vw; // 你的基准字体大小
$vw-to-rem: 0.25rem; // 1vw等于多少rem
@return ($px / $base-font-size) * 100 * $vw-to-rem;
}
// 使用函数
.your-class {
width: px-to-rem(375px); // 这将输出相应的rem值
}
这个函数首先将px值除以基准字体大小(以vw为单位),然后乘以100(因为vw是视口宽度的百分比),最后乘以vw到rem的转换系数。
注意,这种方法假设你的视口宽度始终保持不变,或者你的基准字体大小是响应式的。如果视口宽度或基准字体大小发生变化,你需要相应地调整函数。
可以使用插件postcss-pxtorem + flexible.js啊,在编译打包代码的时候,pxtorem会把页面上的px单位转化为rem单位,而flexible根据浏览器的可视窗口大小,动态地去设置根节点font-size的值,也就是rem的基准值,监听页面大小,将值动态的给到pxtorem配置中。
3 回答5.1k 阅读✓ 已解决
5 回答2k 阅读
2 回答2.6k 阅读✓ 已解决
4 回答1.7k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
用插件转,参考这个:https://npm.io/package/postcss-px-to-viewport