CSS Conformance

AH Formatter V7.1'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.1 implementation, AH Formatter V7.1 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.)

  • [yes] in the list means that the formatting object or property is implemented.
  • [partial] means that the formatting object or property is partially implemented.
  • [no] means not implemented.

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

4.3.5 Counters: counter(), counters()yes  counter()
4.4 @charsetyes  Encodings

5 Selectors

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-classyes
5.11.2 The link pseudo-classes: :link and :visitedpartial :visited is not supported.
5.11.3 The dynamic pseudo-classes: :hover, :active and :focusno
5.11.4 The language pseudo-class: :langyes
5.12.1 The :first-line pseudo-elementyes
5.12.2 The :first-letter pseudo-elementyes 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-elementsyes

6 Assigning property values, Cascading, and Inheritance

6.2.1 The 'inherit' valueyes
6.3 The @import ruleyes
6.4.2 !important rulesyes

7 Media types

7.2.1 The @media rulepartial“print” and “all” media types are supported. media-query is not supported.

8 Box model

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'yesThe 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

9.2.4 The 'display' propertyyes 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'yesThe 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

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.1, 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 With regard to table, there is no distinction between min-height and height. When both are specified, the larger value is adopted as height.
10.8 Line height calculations: 'line-height', 'vertical-align'yes

11 Visual effects

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 hidden.

12 Generated content, automatic numbering, and lists

12.2 The 'content' propertyyes open-quote, close-quote, no-open-quote and no-close-quote are supported.
12.3.1 Specifying quotes with the 'quotes' propertyyes
12.4 Automatic counters and numbering: 'counter-reset', 'counter-increment'yesWhen 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

13.2 Page boxes: the @page ruleyes
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

14.1 Foreground color: 'color'yesThe value is extended.  <color>
14.2.1 Background properties: 'background-color'yesThe 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

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.
15.7 Font size: 'font-size'yes
15.8 Shorthand font property: 'font'yes

16 Text

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

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

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”.


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


Qualified Names (ns|E)yes[CSS3-Namespaces]

@ rules

@font-facepartial[CSS3-Fonts]  <axf:font-face> / @font-face
@footnoteyes[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 :left, :right, :first, :blankyes[CSS3-Page] This rule is extended.  @page
@counter-stylepartial[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


Pseudo Elements

::footnote-callyes[CSS3-GCPM]  Footnotes/sidenotes by CSS
::footnote-markeryes[CSS3-GCPM]  Footnotes/sidenotes by CSS
::sidenote-callyes[CSS3-GCPM] (@sidenote has been removed from GCPM on and after June 8, 2010)  Footnotes/sidenotes by CSS
::sidenote-markeryes[CSS3-GCPM] (@sidenote has been removed from GCPM on and after June 8, 2010)  Footnotes/sidenotes by CSS
::marker yes[CSS3-Lists]


running() yes[CSS3-GCPM]
element() 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)
counter()yes[CSS3-Page]  counter()
counters()yes[CSS3-Page]  counter()
attr()yes[CSS3-Values]  attr()
url()yes[CSS3-Values]  URI
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
var()partial[CSS3-CustomProperties] Limitation: It's not supported to specify var() for the value of the shorthand property. V7.1