Based on what should happen when the screen get wider or narrower than the given 1100px, this answer might need some adjustment.
If you create 3 containers and then give the first 2 a flex-basis
(width) and the last flex-grow
(fill remaining space), you can accomplish that.
This sample will shrink the left
/right
when there is not enough space
.wrapper {
display: flex;
}
.wrapper .left {
flex-basis: 550px;
}
.wrapper .right {
flex-basis: 458px;
display: flex;
justify-content: flex-end; /* align right (at end) */
}
.wrapper .button {
flex-grow: 1;
}
/* style for this demo */
.wrapper > div {
padding: 5px;
box-sizing: border-box;
border: 1px dashed lightgray;
}
<div class="wrapper">
<div class="left">
Links left aligned
</div>
<div class="right">
Links right aligned
</div>
<div class="button">
Button
</div>
</div>
This sample will keep the left
/right
width when there is not enough space, cause a horizontal scrollbar to appear
.wrapper {
display: flex;
}
.wrapper .left {
flex-basis: 550px;
flex-shrink: 0; /* disallow to shrink */
}
.wrapper .right {
flex-basis: 458px;
flex-shrink: 0; /* disallow to shrink */
display: flex;
justify-content: flex-end; /* align right (at end) */
}
.wrapper .button {
flex-grow: 1;
}
/* style for this demo */
.wrapper > div {
padding: 5px;
box-sizing: border-box;
border: 1px dashed lightgray;
}
<div class="wrapper">
<div class="left">
Links left aligned
</div>
<div class="right">
Links right aligned
</div>
<div class="button">
Button
</div>
</div>
This sample will shrink/grow the left
/right
and keep the center mark you show in your image at center of its parent.
.wrapper {
display: flex;
}
.wrapper .left {
flex: 6 6 0; /* 6/12 */
overflow: hidden;
}
.wrapper .right {
flex: 5 5 0; /* 5/12 */
overflow: hidden;
display: flex;
justify-content: flex-end; /* align right (at end) */
}
.wrapper .button {
flex: 1 1 0; /* 1/12 */
overflow: hidden;
}
/* style for this demo */
.wrapper > div {
padding: 15px 0;
box-sizing: border-box;
border: 1px dashed lightgray;
}
.mark-center {
text-align: center;
font-size: 30px;
color: red;
}
<div class="wrapper">
<div class="left">
Links left aligned
</div>
<div class="right">
Links right aligned
</div>
<div class="button">
Button
</div>
</div>
<div class="mark-center">
↑
</div>