CSS Conformance

AH Formatter V7.0's CSS implementation is based on the following specifications:

Many of CSS3 specifications are still under the draft or the state before draft. Although the specifications above are linked to the versions based on the AH Formatter V7.0 implementation, AH Formatter V7.0 does not implement them perfectly. Each property in this document includes the link to the specification that is the base of the implementation. ([CSS3-GCPM] etc. written at the beginning is an abbreviated name when referring to the specification.)

Sometimes items with [yes] have some limitation(s) that do not affect their ability to accomplish the specified tasks.

CSS Level 2 Revision 1 (CSS 2.1)

4 Syntax and basic data types

Name Condition Comments
4.3.5 Counters: counter(), counters() yes counter()
4.4 @charset yes Encodings

5 Selectors

Name Condition Comments
5.2.1 Grouping (,) yes
5.3 Universal selector (*) yes
5.4 Type selectors (E) yes
5.5 Descendant selectors (E F) yes
5.6 Child selectors (E > F) yes
5.7 Adjacent sibling selectors (E + F) yes
5.8.1 Matching attributes and attribute values ([att], [att=val], [att~=val], [att|=val]) yes
5.8.3 Class selectors (.class) yes
5.9 ID selectors (#id) yes
5.11.1 The :first-child pseudo-class yes
5.11.2 The link pseudo-classes: :link and :visited partial :visited is not supported.
5.11.3 The dynamic pseudo-classes: :hover, :active and :focus no
5.11.4 The language pseudo-class: :lang yes
5.12.1 The :first-line pseudo-element yes
5.12.2 The :first-letter pseudo-element yes Only the display model elements below have effects.
  • block
  • list-item
  • table-cell
  • table-caption
  • inline-block
Finds the first text in the specified element, but ::first-letter is ignored if images or the following display model elements appear before the text.
  • block elements other than block
  • inline-table
  • inline-block
  • ruby
5.12.3 The :before and :after pseudo-elements yes

6 Assigning property values, Cascading, and Inheritance

Name Condition Comments
6.2.1 The 'inherit' value yes
6.3 The @import rule yes
6.4.2 !important rules yes

7 Media types

Name Condition Comments
7.2.1 The @media rule yes “print” and “all” media types are supported.

8 Box model

Name Condition Comments
8.3 Margin properties: 'margin-top', 'margin-right', 'margin-bottom', 'margin-left', 'margin' yes
8.4 Padding properties: 'padding-top', 'padding-right', 'padding-bottom', 'padding-left', 'padding' yes
8.5.1 Border width: 'border-top-width', 'border-right-width', 'border-bottom-width', 'border-left-width', 'border-width' yes
8.5.2 Border color: 'border-top-color', 'border-right-color', 'border-bottom-color', 'border-left-color', 'border-color' yes The value is extended. <color>
8.5.3 Border style: 'border-top-style', 'border-right-style', 'border-bottom-style', 'border-left-style', 'border-style' yes
8.5.4 Border shorthand properties: 'border-top', 'border-right', 'border-bottom', 'border-left', 'border' yes

9 Visual formatting model

Name Condition Comments
9.2.4 The 'display' property yes This property is extended. display
9.3.1 Choosing a positioning scheme: 'position' yes
9.3.2 Box offsets: 'top', 'right', 'bottom', 'left' yes
9.5.1 Positioning the float: 'float' yes The page break (column break) in the float is supported.
9.5.2 Controlling flow next to floats: 'clear' yes
9.9.1 Specifying the stack level: 'z-index' yes
9.10 Text direction: 'direction', 'unicode-bidi' yes

10 Visual formatting model details

Name Condition Comments
10.2 Content width: 'width' yes
10.4 Minimum and maximum widths: 'min-width', 'max-width' yes
10.5 Content height: 'height' yes The setting using the % value for other than the root element is to be ignored if the height is not explicitly specified in the parent block. In AH Formatter V7.0, when a block with height specified is rotated or when values other than visible or auto are specified for the overflow property, it is not ignored.
10.7 Minimum and maximum heights: 'min-height', 'max-height' yes
10.8 Line height calculations: 'line-height', 'vertical-align' yes

11 Visual effects

Name Condition Comments
11.1.1 Overflow: 'overflow' yes Limitation: scroll is not supported. This property is extended. overflow
11.1.2 Clipping: 'clip' yes
11.2 Visibility: 'visibility' yes visibility:collapse specified to table-column is considered as hidden.

12 Generated content, automatic numbering, and lists

Name Condition Comments
12.2 The 'content' property yes open-quote, close-quote, no-open-quote and no-close-quote are supported.
12.3.1 Specifying quotes with the 'quotes' property yes
12.4 Automatic counters and numbering: 'counter-reset', 'counter-increment' yes When an illegal value (such as 0) is specified for counter-reset, “previous page number + 1” is assumed to be specified.
12.5.1 Lists: 'list-style-type' yes
12.5.1 Lists: 'list-style-image' yes
12.5.1 Lists: 'list-style-position' yes
12.5.1 Lists: 'list-style' yes

13 Paged media

Name Condition Comments
13.2 Page boxes: the @page rule yes
13.2.2 Page selectors: selecting left, right, and first pages (:left, :right, :first) yes
13.3.1 Page break properties: 'page-break-before', 'page-break-after', 'page-break-inside' yes
13.3.2 Breaks inside elements: 'orphans', 'widows' yes

14 Colors and Backgrounds

Name Condition Comments
14.1 Foreground color: 'color' yes The value is extended. <color>
14.2.1 Background properties: 'background-color' yes The value is extended. <color>
14.2.1 Background properties: 'background-image' yes
14.2.1 Background properties: 'background-repeat' yes
14.2.1 Background properties: 'background-attachment' yes
14.2.1 Background properties: 'background-position' yes
14.2.1 Background properties: 'background' yes

15 Fonts

Name Condition Comments
15.3 Font family: 'font-family' yes
15.4 Font styling: 'font-style' yes
15.5 Small-caps: 'font-variant' yes
15.6 Font boldness: 'font-weight' yes It has been extended to accept any values from 1 to 1000. V7.0
15.7 Font size: 'font-size' yes
15.8 Shorthand font property: 'font' yes

16 Text

Name Condition Comments
16.1 Indentation: 'text-indent' yes
16.2 Alignment: 'text-align' yes
16.3.1 Underlining, overlining, striking, and blinking: 'text-decoration' yes Limitation: blink is not supported.
16.4 Letter and word spacing: 'letter-spacing', 'word-spacing' yes
16.5 Capitalization: 'text-transform' yes
16.6 Whitespace: 'white-space' yes

17 Tables

Name Condition Comments
17.4.1 Caption position and alignment: 'caption-side' yes
17.5.2 Table width algorithms: 'table-layout' yes
17.6.1 The separated borders model: 'border-spacing' yes Borders and Backgrounds around empty cells: 'empty-cells' yes
17.6.2 The collapsing border model: 'border-collapse' yes

18 User interface

Name Condition Comments
18.1 Cursors: 'cursor' no
18.4 Dynamic outlines: 'outline' no


As for the implemented CSS3 properties and their corresponding XSL-FO properties, see “XSL/CSS Properties List”.


Name Condition Comments
Subsequent-sibling combinator (E ~ F) yes [CSS3-Selectors]
Substring matching attribute selectors ([att^=val], [att$=val], [att*=val]) yes [CSS3-Selectors]


Name Condition Comments
@namespace yes [CSS3-Namespaces]
Qualified Names (ns|E) yes [CSS3-Namespaces]

@ rules

Name Condition Comments
@font-face partial [CSS3-Fonts] <axf:font-face> / @font-face
@footnote yes [CSS3-GCPM] footnote-display is not supported yet. Footnotes/sidenotes by CSS
@sidenote yes [CSS3-GCPM] (@sidenote has been removed from GCPM on and after June 8, 2010) Footnotes/sidenotes by CSS
@page yes [CSS3-Page]
@page :left, :right, :first, :blank yes [CSS3-Page] This rule is extended. @page
@top-left-corner yes [CSS3-Page]
@top-left yes [CSS3-Page]
@top-center yes [CSS3-Page]
@top-right yes [CSS3-Page]
@top-right-corner yes [CSS3-Page]
@left-top yes [CSS3-Page]
@left-middle yes [CSS3-Page]
@left-bottom yes [CSS3-Page]
@right-top yes [CSS3-Page]
@right-middle yes [CSS3-Page]
@right-bottom yes [CSS3-Page]
@bottom-left-corner yes [CSS3-Page]
@bottom-left yes [CSS3-Page]
@bottom-center yes [CSS3-Page]
@bottom-right yes [CSS3-Page]
@bottom-right-corner yes [CSS3-Page]
@counter-style partial [CSS3-CounterStyles] Specifying utl() for symbols and additive-symbols etc. is not available. speak-as is not supported. <axf:counter-style> / @counter-style no-LT

Pseudo Classes

Name Condition Comments
:root yes [CSS3-Selectors]
:nth-child() yes [CSS3-Selectors]
:nth-last-child() yes [CSS3-Selectors]
:nth-of-type() yes [CSS3-Selectors]
:nth-last-of-type() yes [CSS3-Selectors]
:first-child yes [CSS3-Selectors]
:last-child yes [CSS3-Selectors]
:first-of-type yes [CSS3-Selectors]
:last-of-type yes [CSS3-Selectors]
:only-child yes [CSS3-Selectors]
:only-of-type yes [CSS3-Selectors]
:empty yes [CSS3-Selectors]
:not() yes [CSS3-Selectors]

Pseudo Elements

Name Condition Comments
::footnote-call yes [CSS3-GCPM] Footnotes/sidenotes by CSS
::footnote-marker yes [CSS3-GCPM] Footnotes/sidenotes by CSS
::sidenote-call yes [CSS3-GCPM] (@sidenote has been removed from GCPM on and after June 8, 2010) Footnotes/sidenotes by CSS
::sidenote-marker yes [CSS3-GCPM] (@sidenote has been removed from GCPM on and after June 8, 2010) Footnotes/sidenotes by CSS
::marker yes [CSS3-Lists]
::before yes [CSS3-Selectors]
::after yes [CSS3-Selectors]


Name Condition Comments
content() yes [CSS3-GCPM]
string() yes [CSS3-GCPM]
running() yes [CSS3-GCPM]
element() yes [CSS3-GCPM]
leader() yes [CSS3-GCPM]
target-counter() yes [CSS3-GCPM]
target-counters() yes [CSS3-GCPM]
target-text() yes [CSS3-GCPM]
device-cmyk() yes [CSS3-GCPM] (CYMK has been removed from GCPM on and after May 13, 2014)
rgb() yes [CSS3-Color]
rgba() yes [CSS3-Color]
hsl() yes [CSS3-Color]
hsla() yes [CSS3-Color]
counter() yes [CSS3-Page] counter()
counters() yes [CSS3-Page] counter()
attr() yes [CSS3-Values] attr()
url() yes [CSS3-Values] URI
calc() yes [CSS3-Values]
linear-gradient() yes [CSS3-Images] linear-gradient()
radial-gradient() yes [CSS3-Images] radial-gradient()
repeating-linear-gradient() yes [CSS3-Images] repeating-linear-gradient()
repeating-radial-gradient() yes [CSS3-Images] repeating-radial-gradient()
matrix() yes [CSS3-Transforms] Transformation
translate() yes [CSS3-Transforms] Transformation
translateX() yes [CSS3-Transforms] Transformation
translateY() yes [CSS3-Transforms] Transformation
scale() yes [CSS3-Transforms] Transformation
scaleX() yes [CSS3-Transforms] Transformation
scaleY() yes [CSS3-Transforms] Transformation
rotate() yes [CSS3-Transforms] Transformation
skew() yes [CSS3-Transforms] Transformation
skewX() yes [CSS3-Transforms] Transformation
skewY() yes [CSS3-Transforms] Transformation
symbols() partial [CSS3-CounterStyles] Specifying url() is not available. no-LT
CAUTION: The delimiter of the argument for symbols() is a white space. It isn't a comma. symbols("*", "†", "‡") is not correct, it should be symbols("*" "†" "‡").