样式单位
Flor 的布局系统使用 Unit 和 Length 类型表示尺寸单位。所有单位在传递给布局引擎前都会转换为像素值。
Unit
Unit 是单位类型标记,用于标记数值属于哪种单位系统。
默认值是 Unit::Px。
Px(像素)
像素是绝对单位,不进行任何转换。布局引擎直接使用像素值。
Pt(点)
点(Point)是印刷单位,使用窗口 DPI 进行转换:
在标准 96 DPI 下,1pt = 1.333px,12pt = 16px。
Rem(Root em)
Rem 是相对于根元素字体大小的单位。Flor 使用窗口配置的 rem_px 作为换算基准:
默认 rem_px = 16.0,即 1rem = 16px。
Vw(视口宽度)
Vw 是相对于视口宽度的单位:
视口宽度等于窗口客户区宽度。50vw 表示视口宽度的一半。
Vh(视口高度)
Vh 是相对于视口高度的单位:
视口高度等于窗口客户区高度。50vh 表示视口高度的一半。
Length
Length 是带数值的长度类型,将数值和单位绑定在一起。
示例:
UnitMetrics
UnitMetrics 存储窗口级别的单位换算参数,每个窗口维护一份实例。
默认值
更新时机
这些值在窗口创建时初始化,并在以下时机更新:
- 窗口尺寸变化时,更新
viewport_width和viewport_height - DPI 变化时,更新
dpi_x和dpi_y - 用户修改
WindowOption::rem_px时,更新rem_px
单位换算公式
使用建议
- Px:用于精确尺寸,如边框宽度、图标尺寸
- Rem:用于字体大小、间距,便于响应式设计
- Pt:用于印刷相关场景,或需要与 CSS pt 保持一致时
- Vw / Vh:用于视口相关布局,如全屏容器、居中定位

