当前位置: 首页 > 知识库问答 >
问题:

用scss写css,如何在写的时候直接能用px做为单位,但输出为rem单位?

雷浩思
2024-04-15

用scss写css,如何在写的时候直接能用px做为单位,但输出为rem单位

比如以375px为宽度,我的html{font-size:4.26666vw;}
这样的scss如何写函数?

共有4个答案

申屠新觉
2024-04-15

用插件转,参考这个:https://npm.io/package/postcss-px-to-viewport

module.exports = ({webpack}) => {    return {        plugins: {            'postcss-px-to-viewport': {                unitToConvert: 'px', // 需要转换的单位,默认为"px"                viewportWidth: 750, // 设计稿的视口宽度                unitPrecision: 5, // 单位转换后保留的精度                propList: ['*'], // 能转化为vw的属性列表                viewportUnit: 'vw', // 希望使用的视口单位                fontViewportUnit: 'vw', // 字体使用的视口单位                selectorBlackList: [], // 需要忽略的CSS选择器,不会转为视口单位,使用原有的px等单位。                minPixelValue: 1, // 设置最小的转换数值,如果为1的话,只有大于1的值会被转换                mediaQuery: false, // 媒体查询里的单位是否需要转换单位                replace: true, //  是否直接更换属性值,而不添加备用属性                exclude: [/preview/, /header/], // 忽略某些文件夹下的文件或特定文件,例如 'node_modules' 下的文件                include: undefined, // 如果设置了include,那将只有匹配到的文件才会被转换                landscape: false, // 是否添加根据 landscapeWidth 生成的媒体查询条件 @media (orientation: landscape)            },        },    };};
秦阳旭
2024-04-15

可以使用插件postcss-pxtorem + flexible.js啊,在编译打包代码的时候,pxtorem会把页面上的px单位转化为rem单位,而flexible根据浏览器的可视窗口大小,动态地去设置根节点font-size的值,也就是rem的基准值,监听页面大小,将值动态的给到pxtorem配置中。

严开宇
2024-04-15

这种事情交给插件做就行了
https://www.npmjs.com/package/postcss-pxtorem

汤飞
2024-04-15

在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的转换系数。

注意,这种方法假设你的视口宽度始终保持不变,或者你的基准字体大小是响应式的。如果视口宽度或基准字体大小发生变化,你需要相应地调整函数。

 类似资料:
  • 问题内容: 我正在设计一个新网站,希望它与尽可能多的浏览器和浏览器设置兼容。我试图确定我应该使用哪种度量单位来显示字体和元素的大小,但无法找到一个确定的答案。 我的问题是:我应该 在CSS中使用还是在CSS中使用? 到目前为止,我知道使用与在浏览器中调整基本字体大小的用户不兼容。 我忽略了s,因为与s 相比,它们在级联时更加麻烦。 有人说s与分辨率无关,因此更可取。但是其他人则说,大多数现代浏览器

  • 在线编辑器,有没有能实现 scss 转换成 css 的? 我有一款自己的编辑器,支持用户编写 scss 代码,但是发现问题 浏览器不识别 scss 需要编译成 css 现在的做法是 让用户先去在线网站编译完成 再拷贝过来 有没有直接能集成在项目中的 scss2css 的这种库? 补充一下 需要运行在浏览器环境的~

  • 本文向大家介绍解释下为什么css中值为0时可以不写单位吗?相关面试题,主要包含被问及解释下为什么css中值为0时可以不写单位吗?时的应答技巧和注意事项,需要的朋友参考一下 在尺寸意义上讲, === === === === === ,在 这个尺度上,所有的单位差异都被抹平了。

  • 1. 将静态文件中的 px 转换为 rem 的工具 2. 作为一个 webpack loader,实时转换

  • 本文向大家介绍你觉得在css中如果值是0时写单位好还是不写好呢?为什么?相关面试题,主要包含被问及你觉得在css中如果值是0时写单位好还是不写好呢?为什么?时的应答技巧和注意事项,需要的朋友参考一下 不写好,单位写了比较冗余,而且0与0px在浏览器中的表现形式也不一样,前者能够表示多种状态,后者只能表示0像素。

  • 试图弄清楚我是否可以使用spring kafka和spring kafka测试为@KafkaListener编写单元测试。 我的听众课。 我的测试类别: 我的测试配置类: 有什么简单的方法可以做到这一点吗? 或者我应该以其他方式测试@KafkaListener?在单元测试中,如何确保在Kafka中收到新消息时调用@KafkaListener。