less解决function中return写法在浏览器被识别成Object导致样式失败的问题

问题描述:

一开始写的是:

复制代码
@baseFontSize: 37.5px;//基于屏幕尺寸/10得出的基准font-size

// return失败,浏览器显示为[object Object],[object Object]
.pxToRem(@px){
  @value: @px / @baseFontSize * 1rem;
  @return @value;
}

使用height: .pxToRem(40px);之后浏览器却是这样:

解决方案一、(不使用return,改成属性名称: 属性值的形式)

复制代码
@baseFontSize: 37.5px;//基于屏幕尺寸/10得出的基准font-size

.px2rem(@name, @px){
  @{name}: @px / @baseFontSize * 1rem;
}

使用.px2rem(height, 40px);就正常了:

解决方案二、(使用自定义函数)

复制代码
.remMixin() {
  @functions: ~`(function(){
    var rem = 37.5;
    this.pxToRem = function(size) {
      return (size / rem) + 'rem';
    }
  })()`;
}
.remMixin();

使用:

复制代码
height: ~`pxToRem(40)`;

我的less插件和less-loader版本为 :

复制代码
"less": "3.13.1",
"less-loader": "5.0.0",

代码仓库地址:

命运推手/my_web

相关推荐
鹏多多4 分钟前
jsx/tsx使用cssModule和typescript-plugin-css-modules
前端·vue.js·react.js
ssshooter1 小时前
复古话题:Vue2 的空格间距切换到 Vite 后消失了
前端·vue.js·面试
IamZJT_1 小时前
拒绝做 AI 的“饲养员” ❌:前端程序员在 AI 时代的生存与进化指南 🚀
前端·ai编程
MM_MS1 小时前
Halcon控制语句
java·大数据·前端·数据库·人工智能·算法·视觉检测
程序员Agions1 小时前
程序员武学修炼手册(二):进阶篇——小有所成,从能跑就行到知其所以然
前端·程序员
小画家~1 小时前
第四十六: channel 高级使用
java·前端·数据库
小贵子的博客1 小时前
Ant Design Vue <a-table>
前端·javascript·vue.js·anti-design-vue
m0_502724951 小时前
vue动态设置背景图片后显示异常
前端·css
console.log('npc')2 小时前
vue2中子组件父组件的修改参数
开发语言·前端·javascript
奋斗吧程序媛2 小时前
vue3 Study(1)
前端·javascript·vue.js