2011-05-04 24 views
2

這看起來似乎可能是一個死衚衕的問題,但在可能有某種方式去做我正在尋找的東西的時候,我想我會在放棄之前在stackoverflow上問天才。
任何類型的解決方案(Javascript,CSS等)都可以!在換行時帶元素寬度?

我想怎麼能夠做到可以在此頁面上可以看到: http://willdo.ca/test.php

我注意到,當行與自動寬度的元素包裝,(前inline-block的元素。)並設置最大寬度,空白仍然會導致元素填充到最大寬度,即使文本技術上沒有達到此最大寬度(儘管我明白爲什麼它的行爲是這樣的,因爲這在技術上是寬度該行被強制包裝之前的元素)。

希望我提供的頁面能更好地描述我在這裏嘗試的內容。
             第一個概述的元素是正常(正確)行爲。
               第二個概述的元素是我想創建的行爲(通過添加換行符來模擬)。

這裏查看/下載我如果需要使用的HTML鏈接:通過自動定義http://willdo.ca/test.txt

+0

嘗試使用白色空間propetry,其值爲pre – Jawad 2011-05-04 18:58:44

+0

未使用白色空間屬性pre line的線條纏繞 – 2011-05-04 20:41:31

回答

0

擺在首位的文本換行的唯一原因是因爲它擊中的元素的邊緣(父寬度)/ px /%或最大/最小寬度。然後將所有其他文本推送到下一行,保持單詞在一起(顯然)。

我能看到的唯一可行的方法是計算實際文本的寬度,並相應地在JS中確定框的大小。對於這樣的問題和嚴重的矯枉過正,這是非常困難的。它需要計算每個字符寬度(並非全部相同),並且它們依賴於客戶端的DPI,字體類型,瀏覽器縮放,可訪問性功能以及大量其他功能。

非常抱歉,這看起來不太可能,情況如何?在你的例子中,這是一個非常大的字體,目的在於放置長詞。