Work in progess, last updated 2014-07-02
This page documents documents how the functionality described in CSS Figures is implemented. Tested implementations are:
The table below lists many use cases for page floats and how they can be achieved using CSS Figures as well as existing implementation. The table is not complete, but gives an overview of the various syntaxes.
Figures | AntennaHouse | Prince | Opera Presto | Opera Webkit | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Traditional floats | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
floating to the left/right | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
float left in column | float: left | float: left | float: left | float: left | float: left | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
float right in column | float: right | float: right | float: right | float: right | float: right | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Page floats | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
floating to the top/bottom | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
float to top of column | float: top | float: top column OR, in longhand: float-y: top;float-reference: column | float: top-column | float: top | float: top | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
float to bottom of column | float: bottom | float: bottom column | float: bottom-column | float: bottom | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Floating to nearest edge: snap() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
snap elements to top/bottom when they naturally appear close | float: snap | float: prince-snap (?) | float: snap | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
float elements that otherwise would cause a column break | float: left auto-next | float: top unless-fit | float: snap(0) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
float elements that otherwise would cause a column break to bottom | ? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
float elements that appear within 3em from a column break | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Setting the page float reference | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
float to bottom of page | float-reference: page; float-y: bottom | float: bottom | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Deferring Page floats | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
float to top of next column | float: top; | float: top next column
Or, in longhand:
float-move: next; float-reference: column; float-y: top | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
float to top of last column | float: top; | float: top-corner | float: top-corner | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
float to top of next-to-last column | float: top;
| float to top of first column on next page | float: top; | float: top-next-page | float: top-next-page
| float to top of last column on next page | float: top; | float: top-corner-next-page | float: top-corner-next-page
| float to the bottom of the next column | float: bottom; | float-move: next; | OR, in shorthand: float: bottom next column
| Clearing page floats | ensure that element is the only page float at top of column | clear: top | clear: top
| ensure that element is the only page float at bottom of column | clear: bottom | clear: bottom
| ensure that element is the only page float in column | clear: column | clear: column
| ensure that element is the only page float on page | clear: page |
| ensure that element is the only page float on spread | clear: spread |
| Spanning columnsfloat to top, span two columns | float: top; column-span: 2 |
| float bottom, span all columns | float: bottom; column-span: all |
| float top right corner, span two columns | float: top; float-defer-column: last; column-span: 2 |
| Two-dimensional floatsfloat element 3cm into the inside margin area, vertically aligned with reference point | float: inside; float-offset: -3cm | float: inside; float-offset-x: 6cm; | longhand float-x: inside; float-offset-x: 6cm; float-y: normal
| Floating inside and outside pagesfloat inside | float: inside | float: inside | float: inside |
| float outside | float: outside | float: outside | float: outside |
| |
Documentation on the various implementations are here:
Another example that documents interoperability is this document, which has been formatted by AntennaHouse (AH) and Prince (PR), as discussed here.