justify-self: end; не выравнивает флекс-блок по правому краю row flex-контейнера
Не могли бы вы бросить взгляд, и помочь понять, почему div class="button" не хочет расположиться справого края по горизонтали? а вместо этого прилепились друг к другу и висят в центре? И, возможно, вы знаете как этого достичь?
https://jsfiddle.net/pkqjw0d1/4/
<body>
<header>
<div class="h1">Заголовок страницы</div>
<div class="button">Блок-кнопка</div>
</header>
<div class="mainArea"></div>
</body>
body {
display: flex;
flex-direction: column;
}
header {
display: flex;
align-items: center;
justify-content: center;
position: fixed; /*КРИТИЧНО!*/
width: 100%;
height: 6em;
margin-bottom: 0.5em;
border-bottom: 1px solid #a08a4a;
background: linear-gradient(to top, rgba(255, 253, 210), rgba(250, 161, 32));
box-shadow: 0 0.1em 0.2em 0.1em #716b5a;
}
.h1 {
font-size: 3em;
text-align: center;
}
.button {
justify-self: end;
width: 10%;
height: 3em;
padding: 2px;
border: 1px solid #000;
text-align: center;
font-size: 1em;
}
.mainArea {
display: flex;
margin-top: 6em;
}
Ответы (1 шт):
Во flexbox контейнере свойство justify-self игнорируется.
Эту задачу можно понять двояко: если вам надо разместить заголовок прям точнехонько в центре хедера, то button должен быть вне потока документа и тогда его позиционируем с помощью position: absolute. Если вам достаточно того, чтобы заголовок был в центре оставшейся от кнопки области, то в комментарии выше @frozencoast описал решение.
.h1 {
flex-grow: 1;
font-size: 3em;
text-align: center;
}
.button {
width: 10%; // не очень понятно это свойство, по-моему его просто можно удалить
height: 3em;
padding: 2px;
border: 1px solid #000;
text-align: center;
font-size: 1em;
}
У родительского контейнера удаляем свойство justify-content.