Adakah mungkin untuk menggunakan sempang atau sempang lembut dalam CSS supaya sempang tidak diberikan tanpa perlu?
Matlamat saya adalah untuk mengekalkan teks asal sebanyak mungkin dan mengeluarkan sebarang perkataan melainkan benar-benar kritikal kerana ia terlalu panjang untuk dimuatkan dalam lebar bekas.
Saya mahu memaparkan teks "Hai Superman" seperti ini:
Jika perkataan "Superman" terlalu panjang untuk dimuatkan ke dalam bekas, saya mahu tanda sempang entah bagaimana, seperti:
Hi Super- lelakiWalau bagaimanapun, jika perkataan "Superman" boleh dimuatkan ke dalam bekas, ia mesti diterjemahkan tanpa tanda sempang
Hai SupermanJika situasi di atas mungkin ("Superman" boleh digunakan tanpa tanda sempang), maka menambah tanda sempang yang tidak perlu
Hi Super- lelakiSaya boleh menukar HTML jika perlu. Saya boleh memasukkan sempang dengan cara yang bermakna (asalkan terdapat lebih daripada 3 huruf antara setiap sempang. "Superma-n" tidak pernah bagus)
Apa yang saya cuba
Saya rasa tanda sempang lembut adalah penyelesaiannya. Jadi saya menggunakan:
Hai Superman
Tetapi saya dapati bahawa ini membawa kepada situasi "sempang tidak perlu" yang tidak boleh diterima yang ditunjukkan di atas.
Tunjukkan coretan yang gagal:
body { jidar-kiri: 30px; } div { sempadan: pepejal 1px hitam; } .lebar { sempadan: pepejal 1px biru; lebar: 500px; } .sempit { sempadan: pepejal 1px merah; lebar: 360px; } h2 { font-family: 'Courier New'; berat fon: 400; saiz fon: 87px; } kod { warna latar belakang: #eee; }
Super&malu;man
perkataan penuh "Superman" tidak sesuai
Hi Super&malu;man
Tetapi dalam kes ini, perkataan "Superman" akan sesuai dengan tidak digembar-gemburkan pada baris kedua Tetapi CSS yang terkutuk itu memutuskan untuk menambah tanda sempang juga tidak boleh diterima! Sekali lagi, ini menggunakan kod yang sama seperti contoh sebelumnya
lelaki super&malu Hai Super&malu;lelaki
Saya juga cuba menambah teg pemecah kata sebelum "Superman", seperti ini
Hai
;manusia super&malu
Hai
Lelaki yang sangat&pemalu Bolehkah saya menyelesaikan contoh di atas menggunakan CSS sahaja? (Mencuba atribut
word-break
berbeza tanpa kejayaan)Tekaan saya kerana sifat CSS, adalah mustahil untuk menyelesaikan masalah ini hanya menggunakan HTML dan CSS biasa. Saya mengandaikan CSS hanya menghuraikan teks baris demi baris, ia tidak dapat mengetahui sama ada perkataan "sesuai dengan lebih baik" dalam baris teks seterusnya. Jika tanda sempang ditemui, ia akan cuba memuatkan bilangan maksimum aksara dalam baris teks semasa.
Saya ingin menyelesaikan masalah ini hanya menggunakan HTML dan CSS, atau tidak sama sekali.
Terbaik:
Tidak menggunakan JavaScript untuk penghuraian teks.
Saya tidak mahu perlu menetapkan sifat CSS yang berbeza untuk setiap div berdasarkan lebar div dan sama ada saya fikir teks itu memerlukan tanda sempang.
Tidak mahu menambah pembalut pada teks saya
Tiada tanda sempang automatik menyebabkan tanda sempang yang tidak masuk akal seperti "Superma-n" (tetapi dalam keadaan semput, saya boleh menggunakan tanda sempang automatik asalkan terdapat 3 aksara antara setiap sempang . Contohnya "Sup -erman")
CSS 3 termasuk atribut "
Tiada, jadi tiada tanda sempang akan dipaparkanhyphens
”属性,可根据指定的lang
" untuk menetapkan tanda sempang Tetapi ini hanyalahdraf berfungsi, jadi sokongan masih Anda boleh menetapkannya kepada­
auto, yang secara automatik menambah tanda sempang jika diperlukan berdasarkan penyetempatan..Ini adalah contoh, jika anda menjalankan windows/linux pastikan anda menyemak perbezaan antara Firefox dan chrome.
auto
: hyphen where the algorithm is deciding (if needed)An extremelyasdasd long English word
manual
: hyphen only at ‐ or ­ (if needed)An extremelyasd long English word
none
: no hyphen; overflow if neededAn extremelyasd long English word
Gunakan bekas dengan
display: inline-block
di sekeliling perkataan panjang.