Вот что произошло, значение по умолчанию для flex-direction - это строка, поэтому ваши дочерние элементы расположены горизонтально, но поскольку ширина контейнера является статической, и она не может расширяться, чтобы обернуть все ваши дочерние элементы, она толкает их вниз, что приводит кмакет может выглядеть вертикально, но он по-прежнему расположен горизонтально.И в этом случае (flex-direction: row) свойство align-self только устанавливает элементы flex в вертикальном направлении.
Как это исправить, во-первых, вам нужно применить flex-direction: column.Тогда вы можете установить align-self для ваших flex-элементов, и теперь он будет выравнивать себя по горизонтали
.container{
width: 500px;
height: 500px;
background: pink;
flex-direction: column;
display: flex;
flex-wrap: wrap;
}
.button-group {
background: lightblue;
align-self: flex-start; /*working now!*/
padding: 5px 10px;
}
.main-box {
width: 450px;
height: 300px;
background: lime;
align-self: flex-end;
}
.myfooter {
width: 50%;
height: 10%;
background-color: black;
align-self: flex-end;
}
<div class="container">
<div class="button-group">
<button></button>
<button></button>
<button></button>
</div>
<div class="main-box"></div>
<div class="myfooter"> </div>
</div>