У меня есть div (красная коробка), которая находится в горизонтальной гибкой коробке (черный контур).Его высота рассчитывается в соответствии с высотой других вещей в гибкой коробке, в данном случае это высокие синие коробки;это все хорошо.
У красного div есть ребенок - зеленое поле на картинке.Который расположен относительно красной коробки.Я бы хотел, чтобы зеленая коробка точно покрывала красную коробку.Ширина не проблема, так как красная коробка имеет фиксированную ширину.Но как я могу сказать, что высота зеленого прямоугольника должна равняться высоте его родителя, красного прямоугольника?
Причина, по которой зеленый прямоугольник расположен над красным прямоугольником, заключается в том, что я хочу, чтобы зеленый прямоугольникразвернуть горизонтально при наведении, но я не хочу, чтобы это расширение влияло на расположение других элементов.Вот так:
Здесь есть JSFiddle
div.dropZone {
position: relative;
font-family: serif;
margin: 0px;
border-radius: 5px;
left: 0px;
top: 0px;
width: 2em;
height: inherit;
min-height: 3ex;
background-color: green;
}
div.dropZone:hover {
width: 4em;
left: -1em;
}
div.dzContainer {
position: static;
font-family: serif;
margin: 0px 0px 0px 0px;
-webkit-align-self: stretch;
align-self: stretch;
width: 2em;
height: auto;
min-height: 3ex;
background-color: red;
}
div.tall {
position: static;
font-family: serif;
margin: 0px 0px 0px 0px;
-webkit-align-self: stretch;
align-self: stretch;
background-color: blue;
width: 3em;
height: 10ex;
}
.H {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-direction: row;
flex-direction: row;
-webkit-flex-wrap: nowrap;
flex-wrap: nowrap;
-webkit-justify-content: flex-start;
justify-content: flex-start;
-webkit-align-items: flex-start;
align-items: flex-start;
border: 1px solid black;
}
<div class="H">
<!-- black flex-->
<div class="tall"> </div>
<!-- blue static-->
<div class="dzContainer">
<!-- red static-->
<div class="dropZone"> </div>
<!-- green relative-->
</div>
<div class="tall"> </div>
<!-- blue static-->
</div>