Могут ли таблицы стилей CSS быть двунаправленными? - PullRequest
3 голосов
/ 06 октября 2009

Может ли CSS быть двунаправленным или таблица стилей изначально связана с направлением сценария (RTL против LTR)?

т.е. может ли одна и одна таблица стилей работать для языков слева направо (английский) и справа налево (иврит)?

Если да, то какие руководящие принципы следует принимать во внимание?

Если нет, как преобразовать таблицу стилей ltr в rtl?

Ответы [ 3 ]

2 голосов
/ 06 октября 2009

Ранее я использовал CSSJanus для преобразования таблиц стилей ltr в rtl. Он поставляется как инструмент командной строки, что означает, что я могу запускать его каждый раз, когда создаю свое приложение, и мне нужно только поддерживать одну версию файла. Преобразование переключает все float: left на float: right (и некоторые другие трудно угадываемые свойства, такие как background-position). Не забудьте указать направление: ltr; в вашей таблице стилей по умолчанию!

Надеюсь, вы заставите его работать!

0 голосов
/ 02 августа 2010

Я бы не рекомендовал использовать одну таблицу стилей для поддержки стилей RTL и LTR. Вы будете загружать большой CSS-файл, чтобы использовать только половину его на странице.

Хотя, если вы хотите сделать это, вы можете добавить класс к тегу html, например ('rtl' и 'ltr') и использовать в таблице стилей, как показано ниже:

.ltr .class {padding-left:10px;}
.rtl .class {padding-right:10px;}

Вы можете проверить этот учебник , чтобы узнать, как «RTL» на странице LTR.

0 голосов
/ 07 октября 2009

Вы могли бы рассмотреть возможность использования подхода, используемого iGoogle, который имеет набор специальных переменных __BIDI_START_EDGE__, __BIDI_END_EDGE__, __BIDI_DIR__, and __BIDI_REVERSE_DIR__. Вы пишете свои правила CSS как обычно, за исключением того, что вместо написания чего-то вроде margin-left вы пишете margin-__BIDI_START_EDGE__. Затем напишите немного кода на стороне сервера, который принимает таблицу стилей и направление (ltr или rtl) и заполняет переменные значениями left, right, ltr и rtl в зависимости от ситуации.

Это не позволяет вам обслуживать один файл, но он достаточно надежен и имеет то преимущество, что все, что вы не хотите переворачивать, может быть написано буквально «влево» или «вправо».

(См. это электронное письмо из списка рассылки OpenAjaxIDE , в котором говорится, что «эксперты по локализации IBM подробно рассмотрели возможности BIDI в OpenSocial» и предлагает принять их для проекта OpenAjax.)

...