HTMLayout %% length units
Strange and wonderful dance Strange and wonderful dance
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.
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: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:150px
Two "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: gold
DIV 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.
Super OBSCURE HTML '%%' Length Units
erin and Radical Moose Lamb liked your Tweet ...
Published on Jan 29, 2012 Elvis Jerry Lee Lewis ~ Graceland Invasion F or the first and only time, JERRY LEE LEWIS recount...
Dog Meat (mrjyn) motionmaker 5.5M views 878 followers 848 videos 32 playlists Most Recent 0...
Our Favorite Band: Look at the back, two guys are still sitting in a car, and they have kinda long hairThe Perfect American DIY 7" Our Favorite Band! s/t 7" (Praxis, 1982 ) Here is another one I bought blind . I'm ...
Published on Sep 9, 2011 Jerry Lee Lewis Drunkest Whole Lotta Shakin' Comments • 447 1,...
Notifications All / People you follow ...
C aro l C utsha l l is fantastic The style is refreshing and inspirational. I know she wasn't there last year, ...
Dixie becomes sexually experienced Director: Rick Bea...
chronologically i know you're young, but when you kissed me in the club you bit my tongue Mrjyn @ mrjyn ...
I reckon he’s some unattractive lost soul who speaks little or no English and is trying to save enough money from his splog to pay for a penis enlargementI reckon he’s some unattractive lost soul who speaks little or no English, and is trying to save enough money from his splog to pay fo...