2012-12-27 3 views
7

저는 rtl 및 ltr 언어를 모두 텍스트 영역에 넣는 가장 훌륭한 솔루션을 찾고 있습니다. 아랍어 및 html 함께. 텍스트 영역에서 중첩 된 기본 언어를 동적으로 적용하는 방법은 무엇입니까?

The standards

는 CSS를 사용하여 만들 수없는 말 : html로 중첩 된 텍스트 문제가로

direction: rtl; 
unicode-bidi: embed; 

이, 어쨌든 나를 위해 작동하지 않습니다. 아랍어는 오른쪽으로 정렬되지만 html은 깨졌습니다.

동적으로이 작업을 수행 할 수있는 방법이 있습니까? 표준에서는 중첩 된 span 태그를 추가하려고하지만 사용자가 동적으로이 태그를 입력하기 때문에 각 문자의 끝을 감지하지 않으면 어떻게되는지를 알 수 없습니다.

답변

9

textarea의 내용이 일반 텍스트로 사용되므로 span 마크 업 또는 다른 마크 업을 사용할 수 없으며 나머지 부분과 다른 부분으로 스타일을 지정할 수 없습니다 (첫 번째 줄 또는 첫 번째 줄 제외). 첫 번째 문자, 의사 요소 사용).

그러나 일반 텍스트 수준에서는 제어 문자를 사용하여 양방향 포함을 적용 할 수 있습니다. 요소 전체에 direction: rtl을 설정한다고 가정하고 (사용자가 오른쪽에서 왼쪽으로 쓰는 언어로 데이터를 입력 할 것을 기대) U + 202A 왼쪽에서 오른쪽으로 단어를 입력하여 왼쪽에서 오른쪽으로 쓰는 텍스트를 영어 또는 HTML 마크 업을 입력 한 다음 U + 202C POP DIRECTIONAL FORMATTING을 입력하여 오른쪽에서 왼쪽 모드로 돌아가려면이 작업을 끝내십시오. 대부분의 사람들이 편리하게 이러한 문자를 입력하는 방법을 알고하지 않기 때문에 모든 경우

, 당신은 페이지에 그들을 위해 버튼을 수 :

<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

하지만 어떻게 그 위치에서 왼쪽을 aling하는 방법? –

+0

@ BerkerYüceer,'text-align : left'을 설정할 수 있습니다. 원하는 경우이 속성을 변경하여 맞춤을 변경하는 버튼을 추가 할 수 있습니다. –

+0

ltr 문자가 시작된 줄에만 적용하고 싶습니다. –