Извините за непонимание, из того, что я понял, вы хотите, чтобы ваш DIV имел три разных цвета с разной высотой. Это результат моего кода:
[/g2],
Если вы хотите попробовать этот код:
div {
height: 100px;
width:400px;
position: relative;
}
.c {
background: blue; /* Old browsers */
}
.c:after{
content: '';
position: absolute;
width:20%;
left:0;
height:110%;
background: yellow;
}
.c:before{
content: '';
position: absolute;
width:40%;
left:60%;
height:140%;
background: green;
}
<div class="c"></div>
Немного сложно сказать, что именно вызывает это, без публикации какого-либо кода, но flexbox - отличный инструмент для этого. https://css-tricks.com/snippets/css/a-guide-to-flexbox/ является хорошим справочным материалом. Насколько я понимаю, вы хотите предотвратить наложение элементов, и как бы я использовал это, чтобы предотвратить это, поместив их в отдельные элементы flexbox в одном контейнере. На эту тему есть множество отличных руководств на YouTube, если что-то в ссылке сбивает с толку.