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

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

5 Selectors

NameConditionComments
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
 (-ah-)initial-letters
5.12.3 The :before and :after pseudo-elementsyes

6 Assigning property values, Cascading, and Inheritance

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

7 Media types

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

8 Box model

NameConditionComments
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

NameConditionComments
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

NameConditionComments
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

NameConditionComments
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

NameConditionComments
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

NameConditionComments
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

NameConditionComments
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

NameConditionComments
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

NameConditionComments
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

NameConditionComments
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
17.6.1.1 Borders and Backgrounds around empty cells: 'empty-cells'yes
17.6.2 The collapsing border model: 'border-collapse'yes

18 User interface

NameConditionComments
18.1 Cursors: 'cursor'no
18.4 Dynamic outlines: 'outline'no

CSS3

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

Selectors

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

Namespaces

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

@ rules

NameConditionComments
@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
@pageyes[CSS3-Page]
@page :left, :right, :first, :blankyes[CSS3-Page] This rule is extended.  @page
@top-left-corneryes[CSS3-Page]
@top-leftyes[CSS3-Page]
@top-centeryes[CSS3-Page]
@top-rightyes[CSS3-Page]
@top-right-corneryes[CSS3-Page]
@left-topyes[CSS3-Page]
@left-middleyes[CSS3-Page]
@left-bottomyes[CSS3-Page]
@right-topyes[CSS3-Page]
@right-middleyes[CSS3-Page]
@right-bottomyes[CSS3-Page]
@bottom-left-corneryes[CSS3-Page]
@bottom-leftyes[CSS3-Page]
@bottom-centeryes[CSS3-Page]
@bottom-rightyes[CSS3-Page]
@bottom-right-corneryes[CSS3-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

NameConditionComments
:rootyes[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-childyes[CSS3-Selectors]
:last-childyes[CSS3-Selectors]
:first-of-typeyes[CSS3-Selectors]
:last-of-typeyes[CSS3-Selectors]
:only-childyes[CSS3-Selectors]
:only-of-typeyes[CSS3-Selectors]
:emptyyes[CSS3-Selectors]
:not()yes[CSS3-Selectors]

Pseudo Elements

NameConditionComments
::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]
::beforeyes[CSS3-Selectors]
::afteryes[CSS3-Selectors]

Functions

NameConditionComments
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
var()partial[CSS3-CustomProperties] Limitation: It's not supported to specify var() for the value of the shorthand property. V7.1