媒体查询动态修改less变量

背景

有个网站需要兼容手机和pc,对字体做了变量处理,考虑的是在媒体查询时,修改less的变量值,从而兼容,不需要去逐个修改元素的字体了。

解决方案

实现代码如下,原理是在媒体查询中动态修改css变量

less 复制代码
:root {
  --font-color: #363636;
  --font-size-medium: 16px;
  --font-size-small: 14px;
  --font-size-x-small: 12px;
  --font-size-large: 24px;
}

@font-color: var(--font-color);
@font-size-medium: var(--font-size-medium);
@font-size-small: var(--font-size-small);
@font-size-x-small: var(--font-size-x-small);
@font-size-large: var(--font-size-large);

// 手机端适配
@media screen and (max-width: 768px) {
  :root {
    --font-size-large: 16px;
    --font-size-medium:14px
  }
}

思考过程

初始代码如下,最初想直接修改less变量

less 复制代码
@font-color: #333333;
@font-size-medium: 16px;


@media screen and (max-width: 768px) {
  @font-color: #666666;
  @font-size-medium: 14px;
}

结果媒体查询less变量更改不生效,查了一些资料,有的说使用modifyVars 方法来修改,如下所示,同样不生效

js 复制代码
import less from 'less'

const modifyVars = () => {
  less.modifyVars({
    '@font-color': 'red'
  })
}

猜测是less的变量在编译成css之后,已经是具体的值,不具有动态变化的情况

less编译成css,直接用less变量,编译后如下

使用css变量,后面在媒体查询里修改 --font-color,会刷新css样式。

相关推荐
鬼手点金2 小时前
nanoGPT/nanochat 能做出 DeepSeek/Qwen 这样的大模型吗?
服务器·前端·javascript·bug·openclaw
软件技术NINI2 小时前
美妆商城html+Css+js 4页
javascript·css·html
蛋蛋的就会顺顺的2 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
程序员Sunday2 小时前
TypeScript 的 any、unknown、never 有什么区别?
前端·面试·typescript
朱涛的自习室2 小时前
70 美金的 Beyond Compare,我让 Gemini 4 和 DeepSeek 造个开源免费版(Day 2)
android·前端·人工智能
码艺-Alimjan3 小时前
Tauri 源码备份 · 打包 & 解压 总结,源码收集之路
前端·javascript·vue.js
小马不起床3 小时前
零基础玩转 FastAPI_11:前端后台管理页面
前端·状态模式·fastapi
子非鱼a4 小时前
【文件上传】一个普普通通的edu16
前端
美狐美颜SDK开放平台5 小时前
直播APP如何实现美白滤镜功能?视频美颜SDK技术开发方案详解
前端·数据库·人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk
pride.li5 小时前
第03章 Python 教程-基础语法:注释与变量
服务器·前端·后端·python·算法·计算机视觉