Может быть, вы можете сделать что-то, используя flex со следующим HTML:
<div className="mainBody">
<div className="mainBodyContent">
Main Body Content
</div>
<div className="buttonsContainer">
<div className="nextButton">Next</div>
<div className="previousButton">Prev</div>
</div>
</div>
С этим измененным CSS:
.mainBody {
border: 1px solid rgba(0, 0, 0, 0.87);
width: 895px;
position: relative;
display: flex;
flex-direction: column;
justify-content: space-between;
top: 40px;
min-height: 310px;
}
.mainBodyContent {
padding-bottom: 8rem;
}
.buttonsContainer {
align-self: flex-end;
display: flex;
flex-direction: row;
}
.previousButton {
padding: 10px;
}
.nextButton {
padding: 10px;
}
У меня есть пример вследующий JSFiddle для тестирования: https://jsfiddle.net/9ey35uwt/
Примечания
Я изменил свойство height
, которое вы имели в .mainBody
, на min-height
потому что, как я понял ваш вопрос, высота тела является переменной, и в противном случае компонент не будет расти вместе с содержимым, но если это не так, вы можете легко изменить его обратно.
С тем же намерением я переместил padding
к содержимому вашего компонента.
- Я добавил несколько кнопок для кнопок, чтобы избежать ихнаходясь прямо на линии и касаясь друг друга, но вы можете изменить это.
- Я сгруппировал кнопки в один
.buttonsContainer
div, чтобы выполнить выравнивание кнопок в одном месте вместодублируя его в каждой из кнопок. - Я удалил
top
и position
из кнопок, так как они не нужны в примере, показанном с помощью flex, но вы должны отрегулировать точное расположение кнопок, как вам нравится, с помощью padding
и/ или margin
.