2012-01-02 36 views
14

Xem xét danh hiệu này cho một trang web:
enter image description hereThay đổi hướng của HTML <title> thẻ sang phải sang trái

Đây là một văn bản hỗn hợp từ các ngôn ngữ từ phải sang trái và từ trái sang phải, và định hướng của toàn bộ văn bản có thể là:

  1. trái sang phải, nếu bạn nhúng rtl đoạn trong văn bản lít
    enter image description here

  2. phải sang trái, nếu bạn đoạn nhúng lít bên trong rtl văn bản
    enter image description here

Trong một số trang web, bạn cần phải cung cấp một sang trái phải tiêu đề, trộn lẫn với trái đoạn văn bản từ phải sang phải. Tuy nhiên, trình duyệt không định dạng chính xác. Nó hiển thị toàn bộ nội dung <title> với định hướng ltr. Điều này gây ra một tiêu đề, mà sẽ được hiển thị như
enter image description here
được hiển thị như
enter image description here

Tôi biết rằng CSS là không làm việc ở đó. Có cách nào để buộc trình duyệt hiển thị <title> với hướng chính xác không?

+0

Tại sao không viết toàn bộ danh hiệu ngược lại đối với một số ngôn ngữ cụ thể như sau: - *** enod eb t'nac sihT *** :-P –

Trả lời

10

Bạn có thể thử sử dụng ký tự OVERRIDE Unicode RIGHT-TO-LEFT. Xem here.
Tức là, bắt đầu văn bản tiêu đề với &#x202E;
Một thử nghiệm nhanh cho thấy rằng nó hoạt động, ít nhất là trên trình duyệt của tôi; không chắc chắn nếu nó sẽ hoạt động trên tất cả các trình duyệt. Và nó có thể viết pizza ngược. Sử dụng cẩn thận.

+3

Nó chắc chắn viết Pizza "ngược" (phải sang trái), vì đó là những gì * ghi đè * có nghĩa là ở đây. Đây là lý do tại sao RIGHT-TO-LEFT EMBEDDING là tốt hơn: nó không ảnh hưởng đến hướng viết của văn bản hướng mạnh mẽ, như “Pizza”, vì vậy bạn không cần phải viết nó trong nguồn là “azziP” (mà sẽ không làm tốt để xếp hạng công cụ tìm kiếm của bạn). –

0

Không có cách nào để buộc trình duyệt thay đổi hướng. Tất nhiên, bạn có thể viết câu theo cách khác, và có các API ngoài đó có thể nhận được một văn bản RTL có ý nghĩa và tạo ra một văn bản LTR mà kết quả cuối cùng của nó trông giống như một câu RTL hợp lệ.

Xin lưu ý rằng một số trình duyệt, đặc biệt là ở các địa điểm ngôn ngữ RTL, nhận được một trình duyệt RTL ở nơi đầu tiên. Đó là, tiêu đề của họ là RTL. Vì lợi ích và điều xấu. Vì vậy, ngay cả khi bạn áp dụng một RTL-to-LTR hack như tôi đã mô tả, những người dùng sẽ thấy nó ngược lại.

+0

Bạn có thể đặt tên API để làm điều đó không? –

+0

Tìm kiếm các thuật toán BiDi.dll hoặc BiDi. Có một cái nhìn này (tôi không chắc chắn nếu nó giúp): http://wiki.winehq.org/BiDi. Ngoài ra công cụ này cho phép bạn thay đổi RTL/LTR trên một giao diện web (không phải là một API nhưng bạn có thể mua một cái từ chúng): http://www.pixiesoft.com/flip. Đó là giao diện tiếng Do Thái nhưng bạn sẽ quản lý. –

4

Các bạn đã thử:

<title>left to right &#x202E;right to left</title> 

Đối với cơ thể, bạn có thể sử dụng CSS (direction: rtl;unicode-bidi: bidi-override;) hoặc đánh dấu (<bdo dir="rtl">).

Demo: http://jsfiddle.net/ThinkingStiff/hD5Sp/

HTML:

<span>left to right <bdo dir="rtl">"right to left"</bdo> left to right</span><br /> 
<span class="rtl">right to left <span class="ltr">"left to right"</span> right to left</span> 

CSS:

.rtl { 
    direction: rtl; 
    unicode-bidi: bidi-override; 
} 

.ltr { 
    direction: ltr; 
    unicode-bidi: bidi-override;  
} 

Output:

enter image description here

8

Sử dụng ký tự TỐI ĐA PHẢI TRÊN (RLE, U + 202B) khi bắt đầu title nội dung phần tử, ví dụ:

<title>&#x202b;אבג Hello ابثج</title> 

RLE thường được mô tả và sử dụng như một nhân vật được sử dụng (cùng với Định dạng hướng pop) cho nhúng một hoạt động của văn bản từ trái sang phải vào từ phải sang trái văn bản hoặc ngược lại, trong những tình huống không được xử lý đúng cách bởi các cơ chế tự động. Nhưng dường như nó cũng hoạt động với các thành phần title, ít nhất là trên IE, Firefox và Opera.

0

Có thể là một phần của tiêu đề là phải sang trái và một phần của nó được trái sang phải không?

ví dụ:

<title> This part is right to left | This part is left to right | This part is righ to left </title> 
0

Đơn giản chỉ cần sử dụng này quy tắc CSS để trang trải tất cả các tình huống:

*[dir="ltr"] { 
 
    direction: ltr; 
 
    unicode-bidi: embed; 
 
} 
 
*[dir="rtl"] { 
 
    direction: rtl; 
 
    unicode-bidi: embed; 
 
} 
 
bdo[dir="ltr"] { 
 
    direction: ltr; 
 
    unicode-bidi: bidi-override; 
 
} 
 
bdo[dir="rtl"] { 
 
    direction: rtl; 
 
    unicode-bidi: bidi-override; 
 
}

Các vấn đề liên quan