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
everybody gets a smile from the happiest guy in the room — Mrjyn (@mrjyn) April 10, 2016 Tweet Activity ...
Fukuchan Monkey in wig, mask, works Restaurant! https://t.co/8Pmf7rRVt4 via @YouTube for all servers, this monkey wins —...
Dixie becomes sexually experienced Director: Rick Bea...
erin and Radical Moose Lamb liked your Tweet ...
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 Jan 29, 2012 Elvis Jerry Lee Lewis ~ Graceland Invasion F or the first and only time, JERRY LEE LEWIS recount...
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...
Published on Sep 9, 2011 Jerry Lee Lewis Drunkest Whole Lotta Shakin' Comments • 447 1,...
chronologically i know you're young, but when you kissed me in the club you bit my tongue ...
can you help me with this dating profile? There is something very Gatsby about ME. I am CREPUSCULAR WITH NIGHT signals and FLOWER...