Я вижу, что вы используете display: table
для достижения этого эффекта. Я очень рекомендую сначала прочитать больше, прежде чем продолжить работу или проект. Вот некоторые концепции компоновки: grid и flex . В вашем случае мы можем использовать концепцию flexbox для решения вашей проблемы.
flex
в основном это метод, который позволяет более легко распределять пространство между элементами. В вашем случае вы можете получить то, чего пытаетесь достичь, используя flex-grow
и flex-basis
. flex-basis
определяет, каким изначально должен быть длинный / высокий элемент внутри гибкого контейнера. flex-grow
определяет, как элемент внутри гибкого контейнера может расширяться (расти) по ширине / высоте в зависимости от оставшегося пространства контейнера.
В вашем случае мы можем просто установить ширину гибкого контейнера (ваше обертывание). div) до 100%. Чтобы равномерно распределить пространство между элементами, мы можем установить начальную ширину всех элементов равной 0. Затем равномерно распределить оставшееся пространство контейнера (которое по-прежнему составляет 100%), используя flex-grow
в 1 для каждый элемент flexbox. Однако это сделает все элементы одинаковыми по ширине. Чтобы сделать центральный div шире, вы можете установить flex-grow
в 2. Это позволит сделать так, чтобы левый div, center div и right div имели 25%, 50% и 25% от оставшихся контейнера. пространство по ширине соответственно. Я действительно рекомендую прочитать дальше о flex, чтобы понять, что я имею в виду. После прочтения о flex в приведенной выше ссылке, попробуйте посетить this и this , чтобы узнать больше о flex-basis
и flex-grow
.
Вот рабочее решение с использованием flex
. Опять же, я рекомендую прочитать больше о flex, чтобы вы могли лучше использовать flex.
* {
box-sizing: border-box;
margin: 0;
padding: 0;
font-family: Helvetica;
}
body,
html {
width: 100%;
height: 100%;
}
#wrapper {
display: flex;
width: 100%;
}
#wrapper * {
padding: 30px;
text-align: center;
color: white;
}
.left-align,
.right-align {
flex-basis: 0;
flex-grow: 1;
}
.center-align {
flex-basis: 0;
flex-grow: 2;
}
.left-align {
background: #121212;
}
.center-align {
background: #232323;
}
.right-align {
background: #454545;
}
<div id="wrapper">
<div class="left-align">Some content</div>
<div class="center-align">Some content</div>
<div class="right-align">Some content</div>
</div>