| Html5 Theme / Understanding layouting with the HTML5 theme | |
The HTML5 theme uses a two-phase JavaScriptâ„¢ algorithm to apply the layout.
The layout algorithm is a two-phase process.
/* use the box-model */
* {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-o-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;r>
}
html, body {
overflow: hidden;
position: absolute;
left: 0px;
top: 0px;
right: 0px;
bottom: 0px;
}
/* the root layout container */
#gGridLayoutRoot {
height: 100%;
}
/* Genero containers */
.gForm, .gGroup {
position: relative;
display: inline-block;
vertical-align: top;
}
/* layout containers */
[data-g-layout-container] {
position: relative;
}
/* layout container items */
[data-g-layout-container] > * {
position: absolute;
}
As was pointed out, the two steps of the layout algorithm can be contradictory and sometimes a style must be applied in one of the two phases only. To enable that possibility, a reserved class called gLayoutMeasuring is added to the element identified by gGridLayoutRoot during the first phase. It may be used to set a style during the measure phase "#gGridLayoutRoot(.gLayoutMeasuring)" or during the size and position phase "#gGridLayoutRoot:not(.gLayoutMeasuring)".
#gGridLayoutRoot:not(.gLayoutMeasuring) .gScrollView {
width: 100%;
height: 100%;
}
Sets the width and height to 100% during the size and
position phase. During the measuring phase, the element takes its
natural size. /* layout container items */
[data-g-layout-container] > * {
left: <left>;
top: <top>;
width: <width>;
height: <height>;
}
/* stretch layout policy elements that have an
horizontalStretching or verticalStretching property at true */
<inline style> {
width: <computed width>;
height: <computed height>;
}