Проблема в том, что объявление display: box;
в правиле .hbox
переопределяется display: block;
в правиле .vbox > *
.У вас есть два варианта:
1 Заставить display: box
переопределить более конкретные правила:
.hbox {
display: -webkit-box !important;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box !important;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box !important;
box-orient: horizontal;
box-align: stretch;
}
Рабочий пример подхода 1 здесь ,основным недостатком этого подхода является то, что вы нарушаете правила CSS по умолчанию, которые могут вызвать путаницу в других местах.
2 Удалите display: block
из более конкретных правил:
.vbox > * {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
}
Рабочий пример подхода 2 здесь , основным недостатком этого подхода является то, что вам понадобятся все прямые дочерние элементы .hbox
или .vbox
для элементов блочного уровня.