這個問題似乎是在右到左的背景下,<code>some:code;</code>
顯示爲;some:code
(即分號出現在左側,而不是右),即使direction
設定爲ltr
的code
元件上。
三替代方案,以優先順序:
1)使用dir
屬性在HTML爲code
元件(以及其它元素含有左到右文本在從右到左的環境):
<code dir=ltr>some:code;</code>
這使得冗餘的code
的CSS規則。
2)使用CSS代碼中的問題(雖然不需要在那裏!important
符),添加CSS規則
code { unicode-bidi: embed }
3)使用U + 202A LEFT-TO-RIGHT在嵌入啓動和U + 202C POP DIRECTIONAL FORMATTINGC在code
元素含量,例如的端部
<code dir=ltr>Êa;some:code;Êc;</code>
問題是由Unicode雙向性規則引起的。考慮<code>some:code;</code>
(字面)的例子中,設置direction: ltr
是不夠的。在從右到左的整體上下文中,方向中性的「;」字符遵循封閉內容的方向性,因此它位於左側。從某種意義上說,處於LTR和RTL文本之間的交匯點,它被自己的元素和父元素撕裂到不同的方向,而Unicode規則則表示父元素獲勝。
解決方案1修復了此問題,因爲HTML dir
屬性和CSS direction
屬性之間存在差異,如HTML5 CR第10.3.5條Bidirectional text中所述。該屬性導致「雙向嵌入」,這意味着元素內容在方向上呈現在新的嵌套級別。
解決方案2在CSS中使用unicode-bidi
屬性也是如此。請注意,HTML5 CR着重於says:「強烈建議作者使用dir屬性來指示文本方向,而不是使用CSS,因爲即使在沒有CSS的情況下,它們的文檔也會繼續正確呈現」。
解決方案3是另一種在角色層次上做同樣事情的方法。在大多數情況下,您也可以使用左對右標記字符(在開始和結束時),但這裏使用的字符是CSS 2.1建議的與unicode-bidi: embed
對應的字符。 HTML 4.01提到了方向性控制字符,但補充道:「標記方法爲文檔結構完整性提供了更好的保證,並且在使用簡單的文本編輯器編輯雙向HTML文本時緩解了一些問題,但有些軟件可能更適合使用[UNICODE]字符。如果同時使用這兩種方法,應格外小心,以確保正確嵌套標記和定向嵌入或覆蓋,否則渲染結果不確定。「
您的HTML錯誤。什麼是''?你可能需要''。 –
Vucko
這只是一個小錯誤,我會修復它,它不是原始的HTML標記,仍然不工作... – newbie
你能解釋什麼是不工作?波斯人角色如何產生影響?我錯過了一些... –