惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
WordPress大学
WordPress大学
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
罗磊的独立博客
月光博客
月光博客
IT之家
IT之家
爱范儿
爱范儿
Google DeepMind News
Google DeepMind News
小众软件
小众软件
C
Check Point Blog
B
Blog RSS Feed
H
Help Net Security
博客园 - 司徒正美
L
LangChain Blog
MongoDB | Blog
MongoDB | Blog
B
Blog
The Cloudflare Blog
Apple Machine Learning Research
Apple Machine Learning Research
Microsoft Security Blog
Microsoft Security Blog
M
MIT News - Artificial intelligence
N
Netflix TechBlog - Medium
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - 微宇宙

claude-code 接入阿里云百炼(Model Studio)模型 小程序 - 旧请求 组件计时器 小程序-微信支付和商户接入的流程 弹出框 mp-half-screen-dialog css- around 内容换行 自动贴边显示 echart - 饼图显示数据值 小程序 - 组件内部引入公共 css 样式 git push 错误 js-金额相加 小程序- 字符数据换行 antd-输入框去掉光晕 大屏显示 echarts - 原型的方向盘动画 小程序- 自定义导航栏组件封装 小程序-echart动画git仓库 小程序- 隐私协议完善 小程序- 日期picker样式问题 echart - 折线图显示设置 echart - 移动端提示内容无阴影 echart 柱状图 - 零界点 正负方向展示 小程序 - 导航栏 图标设置 小程序 - 错误问题记录 react项目全屏功能 react-大屏显示antd浮窗 React andt库设置主题色彩 React闭包陷阱 git 操作 小程序 - 订阅消息通知 小程序-分包 mysql安装使用
大屏缩放布局
微宇宙 · 2026-06-12 · via 博客园 - 微宇宙

中间值就是 具体值 根据窗口分辨率最大的宽计算的来的。

中间值 = 66 / 1920 * 100vw

左右两边分别是最小值,和最大值。

height: clamp(16px, (66 / 1920) * 100vw, 66px);

封装了基于less写法的函数。直接 调用即可 .box { .height-rem(30) } 。

// 响应式尺寸封装函数(基于1920设计稿)
// 使用方式: .responsive-size(font-size, 48px);
// 参数说明:
//   @property: CSS属性名 (如 font-size, height, margin-bottom)
//   @value: 设计稿中的像素值 (如 48)
//   @minRatio: 最小比例 (默认0.67, 即设计稿值的67%)
//   @maxRatio: 最大比例 (默认1, 即设计稿值)
.responsive-size(@property, @value, @minRatio: 0.67, @maxRatio: 1) {
  // 关键:用 unit() 提取数字部分,然后重新加单位
  @num: unit(@value);  // 30px → 30, 30 → 30
  
  // 直接用 Less 运算,不要套 unit()
  @min: @num * @minRatio * 1px;           // 最小尺寸(带px单位)
  @preferred: (@num / 19.2) * 1vw;       // 理想值(带vw单位)
  @max: @num * @maxRatio * 1px;           // 最大尺寸(带px单位)
  
  @{property}: clamp(@min, @preferred, @max);
}

// 字体专用封装(符合项目字体规范)
.font-rem(@value, @minRatio: 0.67, @maxRatio: 1) {
  .responsive-size(font-size, @value, @minRatio, @maxRatio);
}

// 高度专用封装
.height-rem(@value, @minRatio: 0.5, @maxRatio: 1) {
  .responsive-size(height, @value, @minRatio, @maxRatio);
  .responsive-size(line-height, @value, @minRatio, @maxRatio);
}

// 间距专用封装(同时设置margin和padding)
.space-rem(@value, @minRatio: 0.5, @maxRatio: 1) {
  .responsive-size(margin, @value, @minRatio, @maxRatio);
  .responsive-size(padding, @value, @minRatio, @maxRatio);
}

// 单独设置 margin 的封装
.margin-rem(@value, @minRatio: 0.5, @maxRatio: 1) {
  .responsive-size(margin, @value, @minRatio, @maxRatio);
}

// 单独设置 padding 的封装
.padding-rem(@value, @minRatio: 0.5, @maxRatio: 1) {
  .responsive-size(padding, @value, @minRatio, @maxRatio);
}

//   width: calc(724 / (1315 + 724) * 100%);