Ответ 1
Да!
Не только это, мы можем сделать это лучше, используя vw
и calc
.
Просто установите ширину дочерних элементов на 100% ширины окна просмотра, используя vw
(процентные единицы просмотра), а затем установите их левое поле на отрицательное вычисленное значение на основе этого, за вычетом ширины обертка. Помимо необязательного max-width
родителя, все остальное вычисляется автоматически. Вы можете динамически изменять ширину родительского контейнера, и дети будут автоматически изменять размер и выравнивать по мере необходимости, не размещаясь.
body,
html,
.parent {
height: 100%;
width: 100%;
text-align: center;
padding: 0;
margin: 0;
}
.parent {
width: 50%;
max-width: 800px;
background: grey;
margin: 0 auto;
position: relative;
}
.child {
width: 100vw;/* <-- children as wide as the browser window (viewport) */
margin-left: calc(-1 * ((100vw - 100%) / 2));/* align left edge to the left edge of the viewport */
/* The above is basically saying to set the left margin to minus the width of the viewport MINUS the width of the parent, divided by two, so the left edge of the viewport */
height: 50px;
background: yellow;
}
<div class='parent'>
parent element
<div class='child'>child element</div>
</div>