CSS Conformance
Antenna House Formatter V7.4's CSS implementation is based on the following specifications:
- [CSS 2.1] Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) (W3C Recommendation 07 June 2011)
- [CSS3-Align] CSS Box Alignment Module Level 3 (W3C Working Draft, 17 February 2023)
- [CSS3-Background] CSS Backgrounds and Borders Module Level 3 (W3C Recommendation 17 October 2017)
- [CSS3-Box] CSS basic box model (W3C Working Draft 9 August 2007)
- [CSS3-Break] CSS Fragmentation Module Level 3 (W3C Candidate Recommendation 9 February 2017)
- [CSS3-Color] CSS Color Module Level 3 (W3C Proposed Recommendation 15 March 2018)
- [CSS3-Content] CSS Generated Content Module Level 3 (W3C Working Draft 2 June 2016)
- [CSS3-CounterStyles] CSS Counter Styles Level 3 (W3C Candidate Recommendation 14 December 2017)
- [CSS3-FlexBox] CSS Flexible Box Layout Module Level 1 (W3C Candidate Recommendation 19 November 2018)
- [CSS3-Fonts] CSS Fonts Module Level 3 (W3C Candidate Recommendation 15 March 2018)
- [CSS3-GCPM] CSS Generated Content for Paged Media Module (W3C Working Draft 13 May 2014)
- [CSS3-Grid] CSS Grid Layout Module Level 2 (W3C Candidate Recommendation Draft 18 December 2020)
- [CSS3-Images] CSS Image Values and Replaced Content Module Level 3 (W3C Candidate Recommendation 17 April 2012)
- [CSS3-Inline] CSS Inline Layout Module Level 3 (W3C Working Draft 8 August 2018)
- [CSS3-Line] CSS3 module: line (W3C Working Draft 15 May 2002)
- [CSS3-Lists] CSS Lists and Counters Module Level 3 (W3C Working Draft 20 March 2014)
- [CSS3-Logical] CSS Logical Properties and Values Level 1 (W3C Working Draft 27 August 2018)
- [CSS3-Multicol] CSS Multi-column Layout Module Level 1 (W3C Working Draft 5 October 2017)
- [CSS3-Namespaces] CSS Namespaces Module Level 3 (W3C Recommendation 29 September 2011, edited in place 20 March 2014)
- [CSS3-Page] CSS Paged Media Module Level 3 (W3C Working Draft 18 October 2018)
- [CSS3-Ruby] CSS Ruby Layout Module Level 1 (W3C Working Draft 5 August 2014)
- [CSS3-Selectors] Selectors Level 3 (W3C Candidate Recommendation 30 January 2018)
- [CSS4-Selectors] Selectors Level 4 (W3C Working Draft 11 November 2022)
- [CSS3-Text] CSS Text Module Level 3 (W3C Working Draft 22 August 2017)
- [CSS3-TextDecor] CSS Text Decoration Module Level 3 (W3C Candidate Recommendation 1 August 2013)
- [CSS3-Transforms] CSS Transforms Module Level 1 (W3C Working Draft 30 November 2017)
- [CSS3-UI] CSS Basic User Interface Module Level 3 (W3C Proposed Recommendation 14 December 2017)
- [CSS3-Values] CSS Values and Units Module Level 3 (W3C Candidate Recommendation 29 September 2016)
- [CSS3-WritingModes] CSS Writing Modes Module Level 3 (W3C Candidate Recommendation 7 December 2017)
- [CSS3-CustomProperties] CSS Custom Properties for Cascading Variables Module Level 1 (W3C Candidate Recommendation 3 December 2015)
Many of CSS3/CSS4 specifications are still under the draft or the state before draft. Although the specifications above are linked to the versions based on the Antenna House Formatter V7.4 implementation, Antenna House Formatter V7.4 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
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.
|
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 | partial | “print” and “all” media types are supported. You can specify a media type called “ah-formatter” and that @media will be applied. If you use other than Antenna House Formatter V7.4, it will be treated as an invalid media type. Although media-query is not supported, you can specify not, such as not screen. |
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 | The value is extended. ☞ <border-style> |
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 Antenna House Formatter V7.4, 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
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' | partial | collapse is considered 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. In Antenna House Formatter V7.4, “content” has been extended to apply to any element. |
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 considered 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. |
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: ' ' | 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
Name | Condition | Comments |
---|---|---|
18.1 Cursors: 'cursor' | no | |
18.4 Dynamic outlines: 'outline' | no |
CSS3/CSS4
As for the implemented CSS3/CSS4 properties and their corresponding XSL-FO properties, see “XSL/CSS Properties”.
Selectors
Name | Condition | Comments |
---|---|---|
Subsequent-sibling combinator (E ~ F) | yes | [CSS3-Selectors] |
Substring matching attribute selectors ([att^=val], [att$=val], [att*=val]) | yes | [CSS3-Selectors] |
Namespaces
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] overflow is invalid. |
@top-left | yes | |
@top-center | yes | |
@top-right | yes | |
@top-right-corner | yes | |
@left-top | yes | |
@left-middle | yes | |
@left-bottom | yes | |
@right-top | yes | |
@right-middle | yes | |
@right-bottom | yes | |
@bottom-left-corner | yes | |
@bottom-left | yes | |
@bottom-center | yes | |
@bottom-right | yes | |
@bottom-right-corner | yes | |
@counter-style | partial | [CSS3-CounterStyles] Specifying url() 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 | [CSS4-Selectors] S in [of S] cannot contain pseudo-elements. V7.4 |
:nth-last-child() | yes | [CSS4-Selectors] S in [of S] cannot contain pseudo-elements. V7.4 |
: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 | [CSS4-Selectors] :not() is not effective if any of selectors of the argument are pseudo-elements or invalid pseudo-classes. V7.4 |
:is() | yes | [CSS4-Selectors] V7.4 |
:where() | yes | [CSS4-Selectors] V7.4 |
:has() | yes | [CSS4-Selectors] V7.4 |
:nth() | partial | [CSS3-GCPM] <custom-ident> is not supported. |
CAUTION: | When there is an element that may not generate an area, such as when -ah-suppress-duplicate-page-number="true" is specified, :first-child, etc. may not be applied as expected. |
---|
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] This rule is extended. V7.4 no-LT ☞ CSS ::before / ::after |
::after | yes |
Functions
Name | Condition | Comments | ||
---|---|---|---|---|
content() | yes | [CSS3-GCPM] | ||
string() | yes | [CSS3-GCPM] | ||
running() | yes | [CSS3-GCPM] | ||
element() | yes | [CSS3-GCPM] element() cannot be used with any other values. Use it alone. | ||
leader() | yes | [CSS3-GCPM] | ||
target-counter() | yes | [CSS3-GCPM] | ||
target-counters() | no | [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() | yes | [CSS3-CustomProperties] | ||
repeat() | partial | [CSS3-Grid] Interpolation of two repeat() is not supported. no-LT V7.4 |