Zzc 23ea3af0de feat(cockpit): 为可嵌入布局添加容器查询支持
增加对 CSS 容器查询的支持,从而在嵌入式场景中实现响应式缩放。
更新了 mixin,使其使用容器单位(cqw/cqh)并为不支持的浏览器提供视口回退。
修改了 CockpitLayout,使用 CSS 自定义属性实现灵活嵌入,包括窄容器的紧凑模式。
2025-11-11 18:03:50 +08:00

41 lines
1.5 KiB
SCSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 屏幕适配工具(支持容器查询)
// 设计稿基准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 中已经设置了相应的容器类型