2012-12-27 10 views
7

Rtl ve ltr dillerini bir metin içinde birleştirmek için en zarif çözümü arıyorum: ör. arapça ve html birlikte. İç içe taban dillerini dinamik olarak textarea'da nasıl uygulanır?

The standards

css kullanarak yaratmak değil ki: html iç içe metin sorunu var olarak

direction: rtl; 
unicode-bidi: embed; 

Bu, zaten benim için çalışmaz. Arapça sağa hizalı ama html bozuldu.

Bunu dinamik olarak yapmanın bir yolu var mı? Standart, iç içe geçmiş bir yayılma etiketi eklemek istiyor, ancak bir kullanıcı bunu dinamik olarak yazdığından, her bir karakterin sonunu tespit etmeksizin nasıl mümkün olduğunu görmüyorum.

cevap

9

textarea'un içeriği düz metin olarak alındığından, herhangi bir span işaretini veya herhangi bir başka işaretlemeyi kullanamazsınız ve geri kalan kısmından farklı şekilde stil uygulayamazsınız (ilk satır veya pseudo-elements kullanan ilk karakter). Bununla birlikte, düz metin düzeyinde, çift yönlü yerleştirme, kontrol karakterleri kullanılarak zorlanabilir. Eleman üzerinde bir bütün olarak direction: rtl ayarlandığını (kullanıcıların sağdan sola dilde veri girmesini beklediklerini varsayarsak), kullanıcılar İngilizce gibi soldan sağa metin girmek için U + 202A SOL-TO-RIGHT EMBEDDING yazabilirler. HTML işaretlemesi yapın ve ardından U + 202C POP YÖNLENDİRİCİ FORMATTING yazarak sağdan sola moduna geri dönün. Çoğu insan rahatlıkla bu karakterlerin nasıl bilmiyorum beri hiç değilse

, sayfa üzerinde kendileri için düğmeler olabilir:

<textarea id=msg name=msg rows=10 cols=40> 
</textarea> 
<br> 
<button type=button onclick="append('\u202A')">→</button> 
<button type=button onclick="append('\u202C')">←</button> 
<script> 
var msg = document.getElementById('msg'); 
function append(ch) { 
    msg.innerHTML += ch; 
    msg.focus(); 
} 
</script> 
+0

ama nasıl konumunu sola aling için? –

+0

@ BerkerYüceer, "text align align: left" öğesini ayarlayabilirsiniz. İsterseniz, bu özelliği değiştirerek hizalamayı değiştiren bir düğme ekleyebilirsiniz. –

+0

Bunu sadece ltr karakterleri içeren çizgiye uygulamak istiyorum. –

İlgili konular