HTMLayout %% length units
Strange and wonderful dance Strange and wonderful dance
- Strange
- and dance
- wonderful
- wonderful
- strange_dance.mp4 Watch on Posterous
In short, %% units are "percentage from free space". They also known as flex units or relative length units.
The engine supports two forms of flex units: "spring coil" notation - 100%% and star notation - 1* and these forms are related as:
100%% = 1*%% units are applicable to border, padding, margin, width and height CSS attributes only. HTMLayout will effectively compute them for all blocks in 'normal' flow. Thus width:100%% of floated block will not be interpreted at all (will be treated as undefined).
Formal definition of %% length units computation:
When allotting space among element attributes competing for space along axis, HTMLayout engine allot all values for attributes having other than %% lengths first, then divide up remaining available space among %% lengths. Each %% length receives a portion of the available free space that computed as a percentage from total sum of all %% units along axis. If total sum of all %% lengths along axis is less then 100 then 100%% value is used as a total sum of all %% units. Thus, if 100 pixels of space are available after the user agent allots pixel and percentage space, and the competing relative lengths are 10%%, 20%%, and 70%%, the 10%% will be alloted to 10 pixels, the 20%% will be alloted 20 pixels, and the 70%% will be alloted 70 pixels. If 100 pixels of space are available, and the competing relative lengths are 10%%, 20%%, and 30%%, the 10%% will be alloted to 10 pixels, the 20%% will be alloted 20 pixels, the 30%% will be alloted 30 pixels, and remaining 40 pixels will be left undistributed.Example:
In the example below I am using HTML table to model layout which could be done by %% units without need to use tables. Some %% use cases cannot be reproduced even by HTML tables.
Imagine that four blocks below declared in CSS as:
width:100px
![]()
width:30%% width:70%% width:150px
![]()
Below is the same layout but with %% units use. Could be viewed properly only in HTMLayout engine so far:
width:100pxwidth:30%%width:70%%width:150pxTwo "tables" above have same structure and dimensions of "cells" in HTMLayout engine.
And following example is just one DIV having left and right border set to 30%% and 70%% respectively.
border-left:solid tan 30%%; border-right:solid tan 70%%; border-top:solid tan 4px; border-bottom:solid tan 4px; width:50%; background: goldDIV above takes all available width of its container in HTMLayout engine.
To see examples of %% units alive download HTMLayoutDemo.zip - HTMLayout engine and its demo application with samples.
@mrjyn
May 20, 2011
Super OBSCURE HTML '%%' Length Units
Blink and You'd Miss it! Don't use “custom DTDs”!
Don't use “custom DTDs”!
What's with the <blink>?
The W3C Style page contains a <blink> element. <blink> is not an HTML element and yet the page is valid according to some HTML validators. What's the trick?
In fact, the page is syntactically valid, because the element is declared in the document. As long as elements are properly declared, the page is valid in the SGML/XML sense.
But the page is not semantically valid. It is an SGML document, but it is not an HTML document. There is no official standard that defines what <blink> means.
The W3C Style page uses a non-standard element as a joke. If you know the history of CSS you may remember that one of the reasons for CSS was precisely to avoid that every browser invented its own non-standard elements, such as <blink>.
Don't use “custom DTDs”! What's with the
Hint.
via microsoft.com ...»See Ya
Strange and wonderful dance
Strange and wonderful dance Strange and wonderful dance
- Strange
- and dance
- wonderful
Strange and wonderful dance Strange and wonderful dance Strange and dance wonderful strange_dance.mp4 Watch on Posterous ...»See Ya
Ever gone broke in a big way Ever done the opposite of what the experts say
Bob
Tell
|
Ever gone broke in a big way Ever done the opposite of what the experts say
Me
Dylan
ell me Tell me Are you lookin' at me and thinking of somebody else Can you feel the heat and the beat of my pulse Do you have any secrets That will only come out in time Do you lay in bed and stare at the stars Is your main friend someone who's an old acquaintance of ours --I've got to know An has it died out and melted like the snow
T
ell meTell me Tell me--
T
ell me--T
ell me Tell me Tell me--T
ell me -CLARK
HAIRLINE
T ell me Tell me Are you lookin' at me and thinking of somebody else Can you feel the heat and the beat of my pulse Do you have any secrets That will only come out in time Do you lay in bed and stare at the stars Is your main friend someone who's an old acquaintance of ours
--I've got to know
T
Does that flame still burn, Does that fire still glow Or has it died out and melted like the snow
T ell me Tell me Tell me--
T
ell me--T ell me Tell me Tell me--what's in back of them pretty brown eyes Tell me--behind what door your treasure lies Ever gone broke in a big way Ever done the opposite of what the experts say Tell me
T
ell me
T ell
ME
-
is my name in your book Tell me--will you go back and take another look
Tell meZwei Boxkämpfer jagen Eva quer durch Sylt.Bob
Tell
|
Me
Dylan
MORE Dogmeat »
TYPE DESIGN
CUSTOM TYPE
ABOUT
SORRY, BOB!-
Get more discussion results