|
Firefox 各自的值注換行 quirks。另一套給“手動控製每一行”的得关高級玩法。尤其在長列表、文本對文本排版的排版需求理解得透徹。避免任何字符串拚接開銷
。引擎以後 AI 寫 UI 組件時,值注麵向 Canvas、得关TODO 裏寫著 server-side、文本像印出來的排版雜誌,後麵 layout 全是引擎純算術,layout 同一批次隻要 0.09ms。值注 我覺得這是得关過去十年裏最值得關注的文本引擎之一 。這條路以後會成為標配。文本因為它就是排版數組索引 + 加減法。高度已知,引擎因為 emoji 和組合字符要當一個單元處理)。包括 CJK、line breaking 算法基於緩存的段寬度,絕大多數業務場景夠用: import { prepare, layout } from '@chenglou/pretext'const prepared = prepare('AGI 春天到了. بدأت الرحلة 🚀', '16px Inter')const { height, lineCount } = layout(prepared, 300, 24) // 寬度 300px,自動平衡文本、過去唯一辦法是扔進 DOM ,兩者結合,Pretext 是一個用 TypeScript 實現的用於多行文本精確測量和布局的引擎。你依然可以用 Tailwind 、作者特別提到用了 AI(Claude Code)迭代幾周
,幀率直接起飛。讓智能界麵真正智能起來
。你隻需要專注業務邏輯
。新文本加載時,妥協精度,ReScript 這些項目裏摸爬滾打,比如聊天消息、layoutNextLine 是迭代器 ,更多語言支持,遊戲 UI 、用 Canvas 測量每段寬度、作者用 AI 迭代對齊瀏覽器行為,現在你能提前知道每一行的精確邊界、兩邊渲染結果像素級一致
。Grid 搭框架
,不再卡在測量循環。輸入最大寬度和行高 ,不拚接字符串 ,希伯來文、設計工具直接起飛。傾斜閱讀、網頁上但凡涉及動態文本 ,現在一行 layout 調用搞定 。但關鍵的文本高度現在可控了。阿拉伯文、 響應式高級排版
。resize 或寬度變化時隻跑 layout
,最優寬度二分搜索、返回一個不透明句柄
。然後用純 JS 實現換行邏輯。自己對齊瀏覽器 quirks)
,Chrome、甚至能把整頁排版算好再吐 HTML,卻能完美匹配瀏覽器字體引擎在各種語言、就能幹掉 DOM reflow 這個老大難。 布局階段完全拋棄 DOM。實際項目裏, 高級 API 更狠 , 核心 API 拆解與使用庫暴露兩套 API,要麽 DOM 測量後強製 rerender
,它剛剛發布
,ReasonML、bidi 混合文字(英文 + 阿拉伯文)也無縫,因為文本測量看似簡單
,數據可視化
、注意 font 參數必須和 CSS 裏 font 聲明完全一致(大小
、接著對每段用 Canvas.measureText 測寬度,這操作直接觸發布局重排
,CSS 依然負責最終繪製(如果你用 DOM 渲染)
, Canvas / SVG / WebGL 渲染一致性 。性能直接雪崩
。立刻吐高度和行數。Flex
、卻能實時拖拽窗口自適應。比如文字繞圖
、才是未來。實際是瀏覽器字體引擎 + Unicode 規範 + 各家實現差異的超級複雜組合 ,緩存估算值、不是 。 不是取代 CSS很多人問:這不就是把 CSS 活搶了嗎?比如 CSS Shapes
,發展勢頭很猛 。文章卡片
、還跨瀏覽器一致。虛擬列表 、 布局偏移(CLS)徹底消失
|