Изменить CSS на многоязычном веб-сайте
Я сделал сайт на двух языках, используя Angular 4 и ngx-translate
, один rtl
а другой ltr
, Как я могу изменить направление текста и выравнивание текста при смене языка?
Я не могу использовать, потому что я не знаю, как изменить этот атрибут в угловых.
html:lang(en) h1{
text-align: left;
}
В любом случае, я могу ориентироваться на каждый язык в style.css
??
2 ответа
Что нужно изменить, чтобы преобразовать таблицу стилей слева направо в таблицу справа налево:
+ Изменить
html
тег, так что становится<html dir="rtl">
, Это устанавливает базовое направление для всего документа справа налево.изменять
margin
значения, когдаmargin-left
а такжеmargin-right
какого-то элемента не равны. То же самое относится и кpadding
,Измените значения свойств позиции:
left
а такжеright
, Например:left: 200px
на каком-то элементе вltr
документ становитсяright: 200px
вrtl
документ.
После этого взгляните на страницу и посмотрите, нужны ли вам какие-либо дополнительные незначительные изменения, такие как box-shadow
, text-shadow
, так далее.
CSSJanus
Вы можете использовать CSSJanus, чтобы выполнить второй и третий шаги выше для вас. Тем не менее, вам нужно будет сделать <html>
шагни сам.
Для дополнительной информации
Посетите эту страницу от W3C, которая отвечает на вопрос:
Как мне использовать атрибут dir и связанную разметку, чтобы установить направление текста для структурных элементов в HTML?
Если у вас есть разные файлы css для каждого языка. попробуй это.
changeLanguage() {
if(use your condition here){
document.documentElement.lang = 'ar';
document.documentElement.dir = 'rtl';
sessionStorage.setItem('lang','ar');
let tag = document.getElementById("mainCss");//add id to link tag of your css file
tag.setAttribute('href', "assets/css/styleAr.css");
}else{
document.documentElement.lang = 'en';
document.documentElement.dir = 'ltr';
sessionStorage.setItem('lang','en');
let tag = document.getElementById("mainCss");
tag.setAttribute('href', "assets/css/style.css");
}
}