Рассмотрим этот сценарий: вы разрабатываете многоязычное веб-приложение. Если все языки, на которые вы ориентируетесь, являются либо LTR
, либо RTL
, вам не нужны правила CSS для языка. Однако, если ваши целевые языки представляют собой сочетание языков LTR
и RTL
, вам необходимо указать направление чтения страницы для каждого языка.
Если вы добавите dir='ltr'
или dir='rtl'
в элемент <body>
, вы логически должны ожидать, что он должен сделать необходимую магию.
Однако вам действительно нужно переключить все настройки right
и left
в правилах, таких как text-direction
и margin
. Вам также необходимо изменить правила, такие как margin: 0 10px 0 20px;
на margin: 0 20px 0 10px;
Стандарт W3C мог бы избежать этой проблемы, разрешив еще два значения для правил, связанных с направлением. Другими словами, вместо -right
и -left
(как в margin-right
и margin-left
), они могут допускать следующее:
div.foo { margin-near: 100px; }
/* This would be equivalent to margin-left in LTR, and margin-right in RTL */
div.bar { margin-far: 100px; }
/* This would be equivalent to margin-right in LTR, and margin-left in RTL */
В сущности, во всех правилах/значениях, в которых вы можете в настоящее время ввести слово с привязкой left
или right
, вместо этого вы можете написать near
или far
.
Учитывая текущие недостатки в текущей версии CSS, я ищу некоторые предложения по оптимизации создания и обслуживания двунаправленных больших веб-приложений.