2013-05-07 57 views
0

的Mozilla有其可用的自動錶格佈局算法:JavaScript中的自動錶格佈局策略?

https://developer.mozilla.org/en/docs/Table_Layout_Strategy

有沒有人見過的JavaScript庫類似的執行?

我想要做的是採取表格JSON數據並以類似於HTML的自動錶格佈局的方式計算適當的列寬。我對讓瀏覽器進行佈局,然後查看寬度等技巧不感興趣,我想用原始數據在JS中執行計算。

+0

我不明白,你想使用與瀏覽器相同的算法創建一個HTML表,但是你不想讓瀏覽器自動爲你做? – bfavaretto 2013-05-07 21:05:32

+1

是的,這正是我想要做的。儘管JavaScript沒有在瀏覽器中運行。 – Kong 2013-05-07 21:18:11

+0

是用於比例還是固定寬度的字體? – dandavis 2013-05-07 22:49:34

回答

0

如果不首先將文本內容渲染到屏幕上(因爲您必須應付不同的屏幕分辨率,用戶字體設置等等),您無法測量文本內容的寬度。

雖然有一個例外,但它並不完全準確。 canvas元素具有measure text dimensions的能力,但根據我的經驗,它不是精確的,因此不需要預渲染所有內容以獲得不準確的讀數的麻煩/開銷。

其他一些便宜的技巧包括明確地將內容的大小和字體設置爲可預測的寬度單間隔字符字體,然後計算字符串中的字符數......但是很快就會分崩離析內容換行/包裝以適應容器的情況。你也可以將你的文本「預渲染」到DOM中的一個隱藏容器中(比如display:hidden或z-index:-999),並以這種方式獲得容器測量結果,但通常情況下,列邏輯變得笨拙,需要改變一些道路。