// 屏幕适配工具(支持容器查询) // 设计稿基准:1920px (宽) × 982px (高,不含头部) // // 容器查询支持: // 当组件嵌入到其他系统时,会自动使用容器单位(cqw/cqh)而非视口单位(vw/vh) // 这确保了子组件相对于父容器而非整个视口进行缩放 // // 回退策略: // 使用 CSS 变量 --cq-inline-100 和 --cq-block-100 提供渐进增强 // 不支持容器查询的浏览器会回退到视口单位 $design-width: 1920; $design-height: 982; // 将 px 转换为容器宽度单位(基于设计稿宽度 1920px) // 在支持容器查询的浏览器中使用 cqw,否则回退到 vw @function vw($px) { @return calc($px / $design-width * var(--cq-inline-100, 100vw)); } // 将 px 转换为容器高度单位(基于设计稿内容区域高度 982px) // 在支持容器查询的浏览器中使用 cqh,否则回退到 vh @function vh($px) { @return calc($px / $design-height * var(--cq-block-100, 100vh)); } // 字体大小转换(使用容器宽度确保响应式) // 字体随容器宽度缩放,保持与其他元素的比例关系 @function fs($px) { @return vw($px); } // 使用示例: // width: vw(580); // 580px → cqw (或 vw 作为 fallback) // height: vh(400); // 400px → cqh (或 vh 作为 fallback) // font-size: fs(16); // 16px → cqw (或 vw 作为 fallback) // // 注意:这些函数需要父容器设置了 container-type: inline-size 或 size // 例如在 CockpitLayout.vue 中已经设置了相应的容器类型