To make the second block is right center of the page, you can do a "hack" to add 1 more block after that, then use flexbox with justify-content: space-between;
.
However, the last requirement, I'm not sure whether any other solutions without using Javascript or media queries. In this example, I'm using @media
cause I haven't come up with any better ideas instead.
You can play around with this Codepen.
.wrapper {
display: flex;
justify-content: space-between;
align-items: center;
.box {
min-width: 200px;
padding: 12px;
box-sizing: border-box;
background-color: crimson;
color: white;
text-align: center;
&.box--hide {
background: none;
}
}
}
@media screen and (max-width: 660px) {
.box--hide {
display: none;
}
}
<div class="wrapper">
<div class="box">Block 1</div>
<div class="box">Block 2</div>
<div class="box box--hide"></div>
</div>