2010-08-02 23 views
5

我正在編輯HTML中的圖書/文章。這些文本只打印一次,然後掃描它們,將它們轉換爲中間XML格式,然後將它們轉換爲HTML(通過XSLT)。由於其中一些文本在今天已經從市場上消失,並且只能通過主要圖書館提供,所以我希望以某種方式發佈它們,以便人們可以通過參考原始文檔中的頁碼來引用它們。爲此,我的中間XML格式有一個標記分頁符的元素。現在我正在處理XML-> HTML轉換,我在想自己如何在HTML中轉換這些分頁符。他們不應該默認出現在最終的HTML中(所以簡單|不適合),但我打算用一些輕量級JavaScript來包裝這些文檔,這些JavaScript會在需要時顯示標記。我想到用<span> s |在它默認情況下是隱藏的。如何在HTML中表達分頁符在語義上正確?

有沒有更好的,可能是'語義'的方式來解決這個問題?

回答

3

分頁符都非常佈局的事情,而HTML不是用來描述佈局,所以你不會找到任何東西,是語言中的語義。

你可以希望的最好的是某種kludge。

由於段落中間可能出現分頁符,並且<p>元素只能包含內聯元素,所以可以從一開始就消除大部分選項。

這兩種暗示我自己的可能性是<span><a>。前者沒有語義,後者被設計爲鏈接到(使用name屬性)或from(使用href屬性),並且您可以從原始文檔中考慮一個頁面,您可能希望鏈接到該頁面。

無論您使用什麼元素,我都不會在其中包含標記,然後使用CSS隱藏它。這種表示標誌是我會考慮在樣式表中通過:before添加的(與可以使用JS切換的主體類的後代選擇器相結合,因爲您希望切換)

或者,如果您想要(非常)廣泛地看待「HTML」的含義,您可以考慮使用l element(來自已停用的XHTML 2草案)並標記原始文檔的每一行。添加一個類將指示新頁面開始的位置(並且您可以使用CSS計數器和邊框清楚地指出每個頁面和數字,如果您願意的話)。可惜瀏覽器供應商拒絕採用真正的語義標記語言,而是傾向於使用HTML 5。

+0

我想我必須把一些東西放入span或a,因爲Chrome似乎不喜歡空的(它會在下一個跨度出現之前吸入下一個元素,直到下一個跨度出現爲止 - 這就是我可以用開發工具看...) 無論如何,謝謝。因爲鏈接,我會去找一些帶有「a」的東西......稍後可能會有用處。 – Struce 2010-08-02 23:23:35

0

也許你可以使用不被html解析/解釋的xml標籤,如<pagebreak/>

通過這種方式查看html標籤將不會呈現,但使用jQuery或任何其他Javascript庫,當被問及時,這些特定標籤在標準
或任何視覺標記中轉換。

我覺得這可能是一個語義的方法...

+0

...但不是一個HTML的方式。 – Quentin 2010-08-02 22:46:34

+0

我可以通過爲這一個元素使用單獨的名稱空間來進行驗證嗎? (就像輸出到html時的單詞一樣)。那麼我還可以用javascript來做那些元素嗎? – Struce 2010-08-02 23:00:38

+0

是的,不是HTML方法,但可能是XHTML方法。 @Struce:您可以爲特殊標籤使用名稱空間,並讓Javascript處理它們,並在其他標準和可見的XHTML標籤中轉換它們。 – Impiastro 2010-08-03 07:04:39

2

使用<div class="Page">的每一頁,並有一個包含樣式表:

.Page { 
    page-break-after: always; 
} 
+1

...當分頁出現中段時? – Quentin 2010-08-02 22:45:47

相關問題