Одно решение будет использовать встроенный рендеринг + абсолютное позиционирование
внутри ...
Встроенный рендеринг"не жадный", и контейнер всегда старается использовать как можно меньше места.
Абсолютное позиционирование будет использоваться для размещения ваших кнопок в любом месте, в то время как самый близкий родитель, имеющий относительную позицию, будет эталоном.
Дополнительно преобразования будут полезны, так как они всегда используют измерения собственного элемента для расчетов, поэтому вы можете безопасно использовать -50%
для центрирования. Я действительно рекомендую это, потому что не имеет значения, насколько большие кнопки.
Я рекомендую вам немного поэкспериментировать с координатами и свойствами для лучшего понимания.
#container {
display: inline-block;
position: relative;
margin: 10px;
}
img {
background: grey;
width: 400px;
height: 150px;
}
#lefBTN,
#rightBTN {
position: absolute;
top: 50%;
transform: translateY(-50%);
padding: 10px;
background: darkblue;
color: white;
border: 1px solid darkblue;
}
#lefBTN {
left: -10px;
}
#rightBTN {
right: -10px;
}
<div id="container">
<img src="..."/>
<button id="lefBTN">lB</button>
<button id="rightBTN">rB</button>
</div>