這是程式碼:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <ol class="meaning"> <li class="meaning-item">这是一个示例句子,其中长单词应该被连字符分隔 <ul class="sentences"> <li class="sentence">这是一个示例句子,其中长单词应该被连字符分隔</li> <li class="translation">这是一个示例句子,其中长单词应该被连字符分隔</li> </ul> </li> </ol> </body> </html> .meaning { list-style-type: none; counter-reset: item; font-size: calc(0.7em + 2.5vw); word-break: break-all; hyphens: auto; } .meaning > li { position: relative; } .meaning > li::before { content: counter(item); counter-increment: item; position: absolute; top: 0; text-align: center; margin-left: calc(-0.7em - 2.5vw); } .sentences { list-style-type: none; padding-left: 0; }
單字被按照我想要的方式換行,但是連字符本身(“-”)沒有顯示在單字換行的位置。
此外,我想要明確地告訴瀏覽器中的文字是英文(en),
中的文字是德語(de)。我知道並非所有瀏覽器都有針對特定語言的連字符內建指令,但我想試一試。
我也將此程式碼保存在JS Bin中。
謝謝!
1.) 不要使用
word-break: break-all;
- 它會在任何位置斷開單字,而不考慮連字符規則。2.) 在
html
標籤中使用lang
屬性和hyphens: auto;
結合起來,以啟用自動連字符。3.) 您可以在包含其他語言的任何元素中使用不同的
lang
屬性- 請看下面我如何將lang="de"
套用於最後一個li
元素。