.flex-container {
display: flex;
width: 300px;
height: 100px;
background-color: gray;
justify-content: flex-end;
margin: 20px;
flex-direction: row /*default*/
}
span {
width: 100px;
height: 100px;
background-color: red;
}
<div class="flex-container" dir="ltr">
<span></span>
</div>
<div class="flex-container" dir="rtl">
<span></span>
</div>
Используйте flex-direction
со значением row
слева направо и row-reverse
справа налево.
Используйте justify-content
для выравнивания элементов по главной оси (flex-direction
со значением row
или row-reverse
- основная ось: x, column
или column-reverse
- главная ось: y).Где flex-end
или flex-start
будет означать конец или начало направления оси - использование flex-end
будет выравнивать вправо, если вы используете flex-direction: row
(ltr), и будет выравниваться влево, если вы используете flex-direction: row-reverse
(rtl).
Обновление
Все вышеперечисленное верно, но если вы укажете dir
для элемента, гибкий контейнер автоматически определит направление.(если вы установите dir="rtl"
, он будет вести себя как flex-direction: row-reverse
без фактической установки)
Зная это, вы можете проверить:
window.onload = () => {
if (navigator.language/*=== rtlLanguage*/) {
document.body.dir = "rtl";
}
};
.flex-container {
display: flex;
width: 300px;
height: 100px;
background-color: gray;
justify-content: flex-end;
margin: 20px;
flex-direction: row /*default*/
}
span {
width: 100px;
height: 100px;
background-color: red;
}
<body>
<div class="flex-container">
<span></span>
</div>
</body>