2013-04-29 18 views
5

Metni sabit bir düzende sarmaya çalışıyorum ancak metin eğik çizgi içeriyorsa çalışmaz.tablo hücresi word-wrap eğik çizgi ile çalışmaz

Bu, Javascript'ten (saf CSS) boşluk eklemeden düzeltilebilir mi?

jsfiddle:

http://jsfiddle.net/HgBhk/1/

Not working: 
<div style="display:table; width:170px; background-color:cyan;"> 
    <div style="display:table-row"> 
     <div style="display:table-cell;word-wrap: break-word;">abfdbfdbfdb/dfbfdbdfbfbf/bdffbdbfdfbddfbdfbdfb</div> 
     <div style="display:table-cell; width:34px; background-color:red;">xxxxx</div>   
    </div> 
</div> 

</br> 
Working: 
<div style="display:table; width:170px; background-color:cyan;"> 
    <div style="display:table-row"> 
     <div style="display:table-cell;word-wrap: break-word;">abfdbfdbfdb dfbfdbdfbfbf bdffbdbfdfbddfbdfbdfb</div> 
     <div style="display:table-cell; width:34px; background-color:red;">xxxxx</div>   
    </div> 
</div> 
+1

Neden tablo verileri için div kullanıyorsunuz? Tabloları kullanın. Komik dünya eh ~ insanlar tabular veri ve tabloları için –

+0

tabloları kullanmak için ikinci durumda çalışır nedenleri, eğik çizgi olmaması değil boşluklar kullanın. Boşlukları kaldırırsanız ve bir uzun dizeye sahipseniz (ilk durumda olduğu gibi) işe yaramadı. – hexblot

+0

Performans nedeniyle tablo kullanmıyorum. Bu konuda uzun bir tartışma olduğunu biliyorum, artıları ve eksileri .. –

cevap

0

"tablo" div-elemana table-layout:fixed; ekleyin ve hücreye bir genişliğe atamak o satırları kırmak yapmak için:

JSFiddle

+0

evet, ama düzeltilmesini istemiyorum, kalan alanı –

+0

doldurmak istiyorum Sonra 'width: auto;' a ata, atleast ona bir genişlik ver… [JSFiddle] (http: // jsfiddle. net/HgBhk/5 /) –

+0

havalı, teşekkürler, cevabı kabul edeceğim –

1

Her 0'dan sonra bir <wbr> etiketi veya sıfır genişlikli boşluk &#x200b;'u ekleyin. Bir çizgi ya da başka bir karakterin kırılması, sonrasında direkt hat kesintisine izin vermesi gibi davranılmalıdır. Bu alternatifler arasındaki seçim biraz complicated'dur, ancak kodunuz zaten IE'nin eski sürümlerinde çalışmaz hale geldiğinden, onları da görmezden gelebilirsiniz ve bu da &#x200b;'u doğru seçim yapar. Yani, ör.

abfdbfdbfdb/&#x200b;dfbfdbdfbfbf/&#x200b;bdffbdbfdfbddfbdfbdfb 

Sorun, karakter düzeyinde değil, bir stil konusudur.

hiçbir boşluk karakterleri içeren bir dize ambalajda normalde bölünmez olduğunu ve güvenilir tarayıcılar yapmak ya kabul edilebilir kırılma noktalarında kırmak veya düzgün tirelenmez ve kullanım kelime bölme sürece, bu şekilde olmalıdır. word-wrap: break-word gibi bir ayar istisnai durumlar için, paketlemeyi kontrol etmek için iyi bir yol olmadığında ve taşmayı önlemek için bir ihtiyaç olduğunda acil molalar içindir.

+0

için başlangıç ​​yolunu işaretlemek, bu metni değiştirmek zorunda olduğum anlamına gelir .. javscript ile, değil mi? İlk soru, JS olmadan nasıl yapılır, artı yollarda tireleme gerekmez. Cevabın biraz kapalı olduğunu düşünüyorum. –

+0

Bu, HTML belgesini nasıl değiştirebileceğinize bağlıdır. Değiştirmek, * düzgün bir şekilde sarmalamanın doğru yoludur (sarma gerektiğinde; çoğu durumda, kullanıcılar uzun yol adları veya URL'ler görünür içeriğe girdiklerinde, kısa adlar gibi daha normal bir şey kullanmalıdırlar). Yollar tabiki hecelenmemelidir; Aksine, eğer böyle bir karakter var ise, “-” den sonra bölünmediklerinden emin olmalısınız. CSS * bu gibi şeyleri kaldıramaz (şimdi veya öngörülebilir gelecekte). –

+0

Günümü kurtardın! Teşekkür ederim! – shaosh

İlgili konular