У меня есть макет, в котором отсутствует иногда «левый» элемент. В таких случаях я все равно хочу, чтобы «правильный» элемент был выровнен по правому краю.
Я думал, что смогу сделать это с justify-self, но, похоже, это не так.
Есть ли свойство flexbox для выравнивания по правому краю?
.row {
border: 1px solid black;
display: flex;
justify-content: space-between;
align-items: center;
}
.left,
.right {
display: inline-block;
background-color: yellow;
}
.right {
justify-self: flex-end;
}<div class = "row">
<!--<div class = "left">left</div>-->
<div class = "right">right</div>
</div>





Вместо этого вы можете использовать margin-left: auto в элементе right. Также, когда вы используете display: flex на родительском элементе, display: inline-block на дочерних элементах не будет работать.
.row {
border: 1px solid black;
display: flex;
align-items: center;
}
.left,
.right {
background-color: yellow;
}
.right {
margin-left: auto;
}<div class = "row">
<!--<div class = "left">left</div>-->
<div class = "right">right</div>
</div>Чтобы добавить к этому ответу, justify-self просто не поддерживается в flexbox, потому что он оправдывает все свои элементы как группу. Подробнее здесь (вместе с подсказкой о марже): developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Alignment/…
Я создал перо, чтобы подражать этому: codepen.io/srsgores/pen/abNLGgr
margin-left / margin-right не помогли мне разделить их - вместо этого они центрировались.
маржа: авто не отвечает, как я тестировал