Software engineer on the Web Engine team at Adobe
article {
flow-into: article_flow;
}
#region1, #region2,
#region3, #region4 {
flow-from: article_flow;
}
.circle {
wrap-flow: end;
shape-outside: circle(50%, 50%, 50%);
shape-margin: 10px;
shape-inside: shape-outside;
shape-padding: 10px;
}
A complex layout may have several areas that are chained: when the first one fills up, the rest of the text flows to the second, etc. For example, a newspaper often has one small column of a story on the front page, and then the rest on other pages.

interface Region {
readonly attribute DOMString regionOverset
throws DOMException;
readonly attribute DOMString flowFrom
throws DOMException;
sequence<Range>? getRegionFlowRanges()
throws DOMException;
CSSStyleDeclaration getComputedStyle(Element elt);
CSSStyleDeclaration getComputedStyle(Element elt,
DOMString pseudoElt);
};
Element implements Region;
var element = document.getElementById("region1");
try {
/* handle region cases */
switch(element.regionOverset) {
case "overset":
case "fit":
case "empty": break;
}
} catch (err) {
/* handle non-region case */
}
var element = document.getElementById("region1");
/* handle all cases */
switch(element.regionOverset) {
case "overset":
case "fit":
case "empty":
default: break;
}
var element = document.createElementById("div");
for (var property in element) {
console.log(property + ":" + element[property]);
}
interface Region {
readonly attribute DOMString regionOverset
throws DOMException;
readonly attribute DOMString flowFrom
throws DOMException;
sequence<Range>? getRegionFlowRanges()
throws DOMException;
CSSStyleDeclaration getComputedStyle(Element elt);
CSSStyleDeclaration getComputedStyle(Element elt,
DOMString pseudoElt);
};
Element implements Region;
#webkit on irc.freenode.net | webkit-dev@lists.webkit.org