Pure HTML on the screen is a sequence of blocks spanning full width of the window (a.k.a. view) and stacked one by one forming “tape” of blocks. Tape as a geometrical surface has only one fixed dimension – width. Length of the tape is unknown at the moment of loading of HTML document. That is why there is no such thing as height=”100%” attribute/value in HTML specification. At all. By design. Nothing to calculate percentage from.
As a consequence: there is no vertical alignment of content in standard html (execept of table cell content but this is separate story) .CSS follows this path too. Yes, it defines such things as height:100% but be careful – sometimes height:XX% there means XX% from the width of the element it applied. In other cases trying to define something as { height:100%; padding:10px; } will give you effects not exactly you wanted. Have you ever seen in stylesheets something like height:99%? I bet – you did. Do you think author wanted element to be exactly 99%? I am pretty sure – no.
In many UI design cases you do need to say: I want this element (panel, block, etc.) to span the whole available height of the form/window/view. Take a look on the window of your favorite browser as an example. Can you define its window layout in HTML? … And hey! Don’t touch < table >s !!! They are designed for tabular data representation only (as they say). Anyway you cannot use such thing as < table height="100%" > in standard HTML. Well, you could of course give it a try but nobody will tell you what this height=100% means. 100% from what? Not defined, non-standard – not reliable to use.
Continue reading “Sciter. Part II. Hey, where is my old tape recoder?!”