CSS Logical Properties and Values Level 1

Editor’s Draft,

More details about this document
This version:
https://drafts.csswg.org/css-logical-1/
Latest published version:
https://www.w3.org/TR/css-logical-1/
Previous Versions:
Feedback:
CSSWG Issues Repository
Inline In Spec
Editors:
(Microsoft)
Elika J. Etemad / fantasai(Apple)
Suggest an Edit for this Spec:
GitHub Editor

Abstract

This module introduces logical properties and values that provide the author with the ability to control layout through logical, rather than physical, direction and dimension mappings. The module defines logical properties and values for the features defined in[CSS2].These properties are writing-mode relative equivalents of their corresponding physical properties.

CSSis a language for describing the rendering of structured documents (such as HTML and XML) on screen, on paper, etc.

Status of this document

This is a public copy of the editors’ draft. It is provided for discussion only and may change at any moment. Its publication here does not imply endorsement of its contents by W3C. Don’t cite this document other than as work in progress.

Please send feedback byfiling issues in GitHub(preferred), including the spec code “css-logical” in the title, like this: “[css-logical]…summary of comment…”. All issues and comments arearchived. Alternately, feedback can be sent to the (archived) public mailing list[email protected].

This document is governed by the03 November 2023 W3C Process Document.

1.Introduction

Note:See[css-writing-modes-4]for a proper introduction to writing modes; this module assumes familiarity with its terminology.

Because different writing systems are written in different directions, a variety ofwriting modesexist: left to right, top to bottom; right to left, top to bottom; bottom to top, right to left; etc. logical concepts like the “start” of a page or line map differently to physical concepts like the “top” of a line or “left edge” of a paragraph. Some aspects of a layout are actually relative to the writing directions, and thus will vary when the page is translated to a different system; others are inherently relative to the page’s physical orientation.

For example, lists, headings, and paragraphs are typically left-aligned in English; but actually they are start-aligned, because in Arabic the same constructs are right-aligned, and a multilingual document will need to accommodate both writing systems accordingly.

The following code exemplifies how using logical syntax can help you write code that works across different writing systems:

Rendering of the below code in a compatible browser
<blockquotedir="auto">Quotation in English</blockquote>
<blockquotedir="auto">اقتباس في العربية</blockquote>
blockquote{
text-align:start;/* left in latin, right in arabic */
margin-inline-start:0px;/* margin-left in latin, margin-right in arabic */
border-inline-start:5pxsolid gray;/* border-left in latin, border-right in arabic */
padding-inline-start:5px;/* padding-left in latin, padding-right in arabic */
}

Documents might need both logical and physical properties. For instance the drop shadows on buttons on a page must remain consistent throughout, so their offset will be chosen based on visual considerations and physical directions, and not vary by writing system.

Since CSS was originally designed with only physical coordinates in its controls, this module introduces text-flow–relative equivalents so that declarations in a CSS style sheet can be expressed inflow-relativeterms. It defines the mapping and cascading of equivalent properties, some new properties and values equivalent to those in CSS2.1, and the principles used to derive their syntaxes. Future CSS specifications are expected to incorporate both sets of coordinates in their property and value definitions, so this module will not track the introduction offlow-relativevariants of newer CSS features.

CSS Writing ModesAbstract Box Terminologysection defines how to map between flow-relative and physical terms. This mapping, which depends on theused valuesofwriting-mode,direction,andtext-orientation, controls the interpretation offlow-relativekeywords and properties.

Correspondence of physical and flow-relative terms in typical English text layout
Correspondence of physical and flow-relative terms in vertical Chinese text layout

Note:Due to its interaction withtext-orientation: upright, theuseddirectiondepends on thecomputed valuesofwriting-modeandtext-orientation.

Things That Are UnstableSince implementation of parts of this module is effectively required for shipping an implementation ofCSS Writing Modeson the Web (in order to correctly implement the default HTML styles), the CSSWG resolved that the requisite features in§ 2 Flow-Relative Values: block-start, block-end, inline-start, inline-endand§ 4 Flow-Relative Box Model Propertiesare approved for shipping. (SeeFPWD announcementfor additional background.)

However, there are a few significant open issues:

Comments, suggestions, and use cases are welcome on these issues. Please file them in GitHub, tweet them to @csswg, or send them to [email protected].

1.1.Value Definitions

This specification follows theCSS property definition conventionsfrom[CSS2]using thevalue definition syntaxfrom[CSS-VALUES-3]. Value types not defined in this specification are defined in CSS Values & Units[CSS-VALUES-3]. Combination with other CSS modules may expand the definitions of these value types.

In addition to the property-specific values listed in their definitions, all properties defined in this specification also accept theCSS-wide keywordsas their property value. For readability they have not been repeated explicitly.

2.Flow-Relative Values:block-start,block-end,inline-start,inline-end

Many CSS properties have historically accepteddirectional keywordvalues that arephysical(top,bottom,left,right). This specification introducesdirectional keywordvalues that areflow-relative:block-start,block-end,inline-start,inline-end.

A property’s effect can be either 1-dimensional or 2-dimensional. When contextually constrained to one dimension, the flow-relative keywords are abbreviated (tostartandend).

CSS Level 2 properties are here redefined to also acceptflow-relativedirectional keywords. Such values can be used in place of the corresponding physical values. For properties that take multiple keywords, combinations of flow-relative and physical values are not allowed (unless otherwise specified in a future specification).

Note:Newer CSS specifications are expected in most cases to defineflow-relativeorline-relativevalues instead of or in addition to anyphysicalones. In general, the mapping of such relative values are expected to use thewriting modeof thecontaining blockwhen affecting the box itself, and that of the box itself when affecting its contents. Regardless, whichwriting modesis used for the mapping needs to be explicitly defined.

2.1.Logical Values for thecaption-sideProperty

Name: caption-side
New values: inline-start|inline-end
Computed value: specified keyword

These two values are added only for implementations that supportleftandrightvalues forcaption-side. Theleftandrightvalues themselves are defined to beline-relative.

The existingtopandbottomvalues are idiosyncratically redefined as assigning to theblock-startandblock-endsides of the table, respectively.

The mapping on this property uses thewriting modeof the caption’scontaining block(that is, thetable wrapper box).

2.2.Flow-Relative Values for thefloatandclearProperties

Name: float,clear
New values: inline-start|inline-end
Computed value: specified keyword

The mapping on these properties uses thewriting modeof the element’scontaining block.

Note:These properties are 1-dimensional in CSS2, but are planned to be expanded to two dimensions, and therefore are given unabbreviatedflow-relativekeywords.

2.3.Flow-Relative Values for thetext-alignProperty

Name: text-align
New values: start|end
Computed value: specified keyword

These values are normatively defined in[css-text-3].

3.Flow-Relative Page Classifications

In CSS, all pages are classified by user agents as either left pages or right pages.[CSS2]Which page is first in a spread, however, depends on whether the page progression is left-to-right or right-to-left.

To allow control of page breaking to the page that is on the earlier or later side of a spread, rather than to the left or right side of a spread, this module introduces the following additional keywords for thepage-break-afterandpage-break-beforeproperties[CSS2]:

recto
Equivalent torightin left-to-right page progressions andleftin right-to-left page progressions.
verso
Equivalent toleftin left-to-right page progressions andrightin right-to-left page progressions.

These values are computed as specified and are further defined in[css-break-3].

Although authors typically place page numbers using physical placements, the contents of headers often follows conventions depending on which page in the spread is earlier. Therefore the following flow-relativepage selectorsare also added to support flow-relative page selection:

:recto
Equivalent to ':right' in left-to-right page progressions and ':left' in right-to-left page progressions.
:verso
Equivalent to ':left' in left-to-right page progressions and ':right' in right-to-left page progressions.

The flow-relative page selectors have specificity equal to the ':left' and ':right' page selectors.

4.Flow-Relative Box Model Properties

For many formatting effects, the axis or direction affected is encoded in the property name rather than in its value. The type of directional or axis mapping (flow-relativeorphysical) of each such property is called itsmapping logic. Historically, all properties have been encoded inphysicalterms; this specification introduces new CSS properties that areflow-relativeequivalents of CSS2’sphysicalbox model properties.

Note:Newer CSS specifications are expected in most cases to defineflow-relativeorline-relativeproperties instead of or in addition to anyphysicalones.

Each set of parallelflow-relativeproperties andphysicalproperties (ignoringshorthandproperties) related by setting equivalent styles on the various sides or dimensions of a box, forms alogical property group. For example, thepadding-*properties form a singlelogical property group, themargin-*properties form a separatelogical property group, theborder-*-styleproperties form anotherlogical property group, etc. (Eachlonghand propertycan belong to at most onelogical property group.)

Within eachlogical property group, correspondingflow-relativeandphysicalproperties are paired using the element’s owncomputedwriting mode. Although thespecified valueof each property remains distinct, paired properties share acomputed value. This shared value is determined bycascadingthe declarations of both properties together as one; in other words, thecomputed valueof both properties in the pair is derived from thespecified valueof the property declared with higher priority in the CSScascade.[CSS-CASCADE-3]

Note that this requires implementations to maintain relative order of declarations within a CSS declaration block, which was not previously required for CSS cascading. It also requires thatwriting-mode,direction,andtext-orientationbe computed as a prerequisite for cascading together theflow-relativeandphysicaldeclarations of alogical property groupto find theircomputed values.

For example, given the following rule:
p{
margin-inline-start:1px;
margin-left:2px;
margin-inline-end:3px;
}

In a paragraph with computedwriting-modebeinghorizontal-tband computeddirectionbeingltr, the computed value ofmargin-leftis2px, since for thatwriting-modeanddirection,margin-inline-startandmargin-leftshare a computed value, and the declaration ofmargin-leftis after the declaration ofmargin-inline-start. However, if the computeddirectionwere insteadrtl, the computed value ofmargin-leftis3px, sincemargin-inline-endandmargin-leftshare a computed value, and the declaration ofmargin-inline-endis after the declaration ofmargin-left.

[CSSOM]APIs that return computed values (such asgetComputedStyle()) must return the same value for each individual property in such a pair.

Note:Depending on the element’s ownwriting modefor mapping everyflow-relativeproperty to itsphysicalequivalent simplifies the cascading calculations and gives a straightforward model for authors to reason about. However, it is problematic in many cases, see for examplethis discussion. Authors may need to use nested elements to get the correct mapping behavior when changing an element’swriting modefrom its parent.

Inheritance of each property is from its corresponding property on the parent. For example, although theinline-startmargin of anrtlbox is its right margin,margin-inline-starton this box will inherit themargin-inline-startof anltrparent even though that happens to be the parent’sleftmargin.

Unless otherwise specified,shorthand propertiesthat encompass both logical and physical longhands (such as theallshorthand) set their physical longhands last. For example,all: inheritwill set all of themarginproperties toinherit, but since the physical longhands are set last, the child’s margins will inherit from their physical counterparts in the parent.

4.1.Logical Height and Logical Width: theblock-size/inline-size,min-block-size/min-inline-size, andmax-block-size/max-inline-sizeproperties

Name: block-size,inline-size
Value: <'width'>
Initial: auto
Applies to: Same asheightandwidth
Inherited: no
Percentages: As for the corresponding physical property
Computed value: Same asheight,width
Canonical order: per grammar
Animation type: by computed value type
Logical property group: size

These properties correspond to theheightandwidthproperties. The mapping depends on the element’swriting-mode.

Name: min-block-size,min-inline-size
Value: <'min-width'>
Initial: 0
Applies to: same asheightandwidth
Inherited: no
Percentages: As for the corresponding physical property
Computed value: Same asmin-height,min-width
Canonical order: per grammar
Animation type: by computed value type
Logical property group: min-size

These properties correspond to themin-heightandmin-widthproperties. The mapping depends on the element’swriting-mode.

Name: max-block-size,max-inline-size
Value: <'max-width'>
Initial: none
Applies to: same asheightandwidth
Inherited: no
Percentages: As for the corresponding physical property
Computed value: Same asmax-height,max-width
Canonical order: per grammar
Animation type: by computed value type
Logical property group: max-size

These properties correspond to themax-heightandmax-widthproperties. The mapping depends on the element’swriting-mode.

4.2.Flow-Relative Margins: themargin-block-start,margin-block-end,margin-inline-start,margin-inline-endproperties andmargin-blockandmargin-inlineshorthands

Name: margin-block-start,margin-block-end,margin-inline-start,margin-inline-end
Value: <'margin-top'>
Initial: 0
Applies to: Same asmargin-top
Inherited: no
Percentages: As for the corresponding physical property
Computed value: Same as correspondingmargin-*properties
Canonical order: per grammar
Animation type: by computed value type
Logical property group: margin

These properties correspond to themargin-top,margin-bottom,margin-left,andmargin-rightproperties. The mapping depends on the element’swriting-mode,direction,andtext-orientation.

Name: margin-block,margin-inline
Value: <'margin-top'>{1,2}
Initial: see individual properties
Applies to: see individual properties
Inherited: see individual properties
Percentages: see individual properties
Computed value: see individual properties
Animation type: see individual properties
Canonical order: per grammar

These twoshorthand propertiesset themargin-block-start&margin-block-endandmargin-inline-start&margin-inline-end, respectively. The first value represents thestartedge style, and the second value represents theendedge style. If only one value is given, it applies to both thestartandendedges.

4.3.Flow-Relative Offsets: theinset-block-start,inset-block-end,inset-inline-start,inset-inline-endproperties andinset-block,inset-inline,andinsetshorthands

Thetop,left,bottom,rightphysical properties, theirinset-block-start,inset-block-end,inset-inline-start,inset-inline-endflow-relative correspondents, and theinset-block,inset-inline,andinsetshorthands, are collectively known as theinset properties.

Name: inset-block-start,inset-block-end,inset-inline-start,inset-inline-end
Value: <'top'>
Initial: auto
Applies to: positioned elements
Inherited: no
Percentages: As for the corresponding physical property
Computed value: Same as correspondingtop/right/bottom/leftproperties
Canonical order: per grammar
Animation type: by computed value type
Logical property group: inset

These properties correspond to thetop,bottom,left,andrightproperties. The mapping depends on the element’swriting-mode,direction,andtext-orientation.

Name: inset-block,inset-inline
Value: <'top'>{1,2}
Initial: see individual properties
Applies to: see individual properties
Inherited: see individual properties
Percentages: see individual properties
Computed value: see individual properties
Animation type: see individual properties
Canonical order: per grammar

These twoshorthand propertiesset theinset-block-start&inset-block-endandinset-inline-start&inset-inline-end, respectively. The first value represents thestartedge style, and the second value represents theendedge style. If only one value is given, it applies to both thestartandendedges.

Name: inset
Value: <'top'>{1,4}
Initial: see individual properties
Applies to: see individual properties
Inherited: see individual properties
Percentages: see individual properties
Computed value: see individual properties
Animation type: see individual properties
Canonical order: per grammar

Thisshorthand propertysets thetop,right,bottom,andleftproperties. Values are assigned to itssub-propertiesas formargin.

4.4.Flow-Relative Padding: thepadding-block-start,padding-block-end,padding-inline-start,padding-inline-endproperties andpadding-blockandpadding-inlineshorthands

Name: padding-block-start,padding-block-end,padding-inline-start,padding-inline-end
Value: <'padding-top'>
Initial: 0
Applies to: Same aspadding-top
Inherited: no
Percentages: As for the corresponding physical property
Computed value: Same as correspondingpadding-*properties
Canonical order: per grammar
Animation type: by computed value type
Logical property group: padding

These properties correspond to thepadding-top,padding-bottom,padding-left,andpadding-rightproperties. The mapping depends on the element’swriting-mode,direction,andtext-orientation.

Name: padding-block,padding-inline
Value: <'padding-top'>{1,2}
Initial: see individual properties
Applies to: see individual properties
Inherited: see individual properties
Percentages: see individual properties
Computed value: see individual properties
Animation type: see individual properties
Canonical order: per grammar

These twoshorthand propertiesset thepadding-block-start&padding-block-endandpadding-inline-start&padding-inline-end, respectively. The first value represents thestartedge style, and the second value represents theendedge style. If only one value is given, it applies to both thestartandendedges.

4.5.Flow-Relative Borders

4.5.1.Flow-Relative Border Widths: theborder-block-start-width,border-block-end-width,border-inline-start-width,border-inline-end-widthproperties andborder-block-widthandborder-inline-widthshorthands

Name: border-block-start-width,border-block-end-width,border-inline-start-width,border-inline-end-width
Value: <'border-top-width'>
Initial: medium
Applies to: Same asborder-top-width
Inherited: no
Percentages: n/a
Computed value: Same as correspondingborder-*-widthproperties
Canonical order: per grammar
Animation type: by computed value type
Logical property group: border-width

These properties correspond to theborder-top-width,border-bottom-width,border-left-width,andborder-right-widthproperties. The mapping depends on the element’swriting-mode,direction,andtext-orientation.

Name: border-block-width,border-inline-width
Value: <'border-top-width'>{1,2}
Initial: see individual properties
Applies to: see individual properties
Inherited: see individual properties
Percentages: see individual properties
Computed value: see individual properties
Animation type: see individual properties
Canonical order: per grammar

These twoshorthand propertiesset theborder-block-start-width&border-block-end-widthandborder-inline-start-width&border-inline-end-width, respectively. The first value represents thestartedge width, and the second value represents theendedge width. If only one value is given, it applies to both thestartandendedges.

4.5.2.Flow-Relative Border Styles: theborder-block-start-style,border-block-end-style,border-inline-start-style,border-inline-end-styleproperties andborder-block-styleandborder-inline-styleshorthands

Name: border-block-start-style,border-block-end-style,border-inline-start-style,border-inline-end-style
Value: <'border-top-style'>
Initial: none
Applies to: Same asborder-top-style
Inherited: no
Percentages: n/a
Computed value: Same as correspondingborder-*-styleproperties
Canonical order: per grammar
Animation type: discrete
Logical property group: border-style

These properties correspond to theborder-top-style,border-bottom-style,border-left-style,andborder-right-styleproperties. The mapping depends on the element’swriting-mode,direction,andtext-orientation.

Name: border-block-style,border-inline-style
Value: <'border-top-style'>{1,2}
Initial: see individual properties
Applies to: see individual properties
Inherited: see individual properties
Percentages: see individual properties
Computed value: see individual properties
Animation type: see individual properties
Canonical order: per grammar

These twoshorthand propertiesset theborder-block-start-style&border-block-end-styleandborder-inline-start-style&border-inline-end-style, respectively. The first value represents thestartedge style, and the second value represents theendedge style. If only one value is given, it applies to both thestartandendedges.

4.5.3.Flow-Relative Border Colors: theborder-block-start-color,border-block-end-color,border-inline-start-color,border-inline-end-colorproperties andborder-block-colorandborder-inline-colorshorthands

Name: border-block-start-color,border-block-end-color,border-inline-start-color,border-inline-end-color
Value: <'border-top-color'>
Initial: currentcolor
Applies to: Same asborder-top-color
Inherited: no
Percentages: n/a
Computed value: Same as correspondingborder-*-colorproperties
Canonical order: per grammar
Animation type: by computed value type
Logical property group: border-color

These properties correspond to theborder-top-color,border-bottom-color,border-left-color,andborder-right-colorproperties. The mapping depends on the element’swriting-mode,direction,andtext-orientation.

Name: border-block-color,border-inline-color
Value: <'border-top-color'>{1,2}
Initial: see individual properties
Applies to: see individual properties
Inherited: see individual properties
Percentages: see individual properties
Computed value: see individual properties
Animation type: see individual properties
Canonical order: per grammar

These twoshorthand propertiesset theborder-block-start-color&border-block-end-colorandborder-inline-start-color&border-inline-end-color, respectively. The first value represents thestartedge color, and the second value represents theendedge color. If only one value is given, it applies to both thestartandendedges.

4.5.4.Flow-Relative Border Shorthands: theborder-block-start,border-block-end,border-inline-start,border-inline-endproperties andborder-blockandborder-inlineshorthands

Name: border-block-start,border-block-end,border-inline-start,border-inline-end
Value: <'border-top-width'>||<'border-top-style'>||<color>
Initial: see individual properties
Applies to: see individual properties
Inherited: see individual properties
Percentages: see individual properties
Computed value: see individual properties
Animation type: see individual properties
Canonical order: per grammar

These properties correspond to theborder-top,border-bottom,border-left,andborder-rightproperties. The mapping depends on the element’swriting-mode,direction,andtext-orientation.

Name: border-block,border-inline
Value: <'border-block-start'>
Initial: see individual properties
Applies to: see individual properties
Inherited: see individual properties
Percentages: see individual properties
Computed value: see individual properties
Animation type: see individual properties
Canonical order: per grammar

These twoshorthand propertiesset theborder-block-start&border-block-endorborder-inline-start&border-inline-end, respectively, both to the same style.

4.6.Flow-Relative Corner Rounding: theborder-start-start-radius,border-start-end-radius,border-end-start-radius,border-end-end-radiusproperties

Name: border-start-start-radius,border-start-end-radius,border-end-start-radius,border-end-end-radius
Value: <'border-top-left-radius'>
Initial: Same asborder-top-left-radius
Applies to: Same asborder-top-left-radius
Inherited: no
Percentages: Same asborder-top-left-radius
Computed value: Same as corresponding physicalborder-*-radiusproperties
Canonical order: per grammar
Animation type: by computed value type
Logical property group: border-radius

These properties correspond to theborder-top-left-radius,border-bottom-left-radius,border-top-right-radius,andborder-bottom-right-radiusproperties. The mapping depends on the element’swriting-mode,direction,andtext-orientation, with the first start/end giving the block axis side, and the second the inline-axis side (i.e. patterned as 'border-block-inline-radius').

4.7.Four-Directional Shorthand Properties: themargin,padding,border-width,border-style,andborder-colorshorthands

The shorthand properties for margin, padding, and border set values for physical properties by default. But authors can specify thelogicalkeyword at the beginning of the property value to indicate that the values map to the flow-relative properties instead of the physical ones.

The proposed syntax for this feature isunder discussionand is almost guaranteed to change from what is described here. This section remains in the draft to promote discussion of alternatives, to document the affected properties, and to specify the expected impact on the interpretation of whatever syntactic switch is ultimately chosen.

The following[CSS2]shorthand properties accept thelogicalkeyword:

The syntax for these properties is effectively changed by replacing

<value-type>{1,4}

with

logical?<value-type>{1,4}

When thelogicalkeyword is present in the value, the values that follow are assigned to its flow-relative longhands as follows:

In the following example, the two rules are equivalent:
blockquote{
margin:logical1em2em3em4em;
}
blockquote{
margin-block-start:1em;
margin-inline-start:2em;
margin-block-end:3em;
margin-inline-end:4em;
}

5.Acknowledgements

Cameron McCormack, David Baron, Oriol Brufau, Shinyu Murakami, Tab Atkins

6.Changes

Changes since theprevious Working Draftinclude:

Changes between the earlier Editors Drafts and the18 May 2017 First Public Working Draftinclude:

Privacy Considerations

No new privacy considerations have been reported on this specification.

Security Considerations

No new security considerations have been reported on this specification.

Conformance

Document conventions

Conformance requirements are expressed with a combination of descriptive assertions and RFC 2119 terminology. The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in the normative parts of this document are to be interpreted as described in RFC 2119. However, for readability, these words do not appear in all uppercase letters in this specification.

All of the text of this specification is normative except sections explicitly marked as non-normative, examples, and notes.[RFC2119]

Examples in this specification are introduced with the words “for example” or are set apart from the normative text withclass= "example", like this:

This is an example of an informative example.

Informative notes begin with the word “Note” and are set apart from the normative text withclass= "note",like this:

Note, this is an informative note.

Advisements are normative sections styled to evoke special attention and are set apart from other normative text with<strong class= "advisement" >,like this:UAs MUST provide an accessible alternative.

Tests

Tests relating to the content of this specification may be documented in “Tests” blocks like this one. Any such block is non-normative.


Conformance classes

Conformance to this specification is defined for three conformance classes:

style sheet
ACSS style sheet.
renderer
AUAthat interprets the semantics of a style sheet and renders documents that use them.
authoring tool
AUAthat writes a style sheet.

A style sheet is conformant to this specification if all of its statements that use syntax defined in this module are valid according to the generic CSS grammar and the individual grammars of each feature defined in this module.

A renderer is conformant to this specification if, in addition to interpreting the style sheet as defined by the appropriate specifications, it supports all the features defined by this specification by parsing them correctly and rendering the document accordingly. However, the inability of a UA to correctly render a document due to limitations of the device does not make the UA non-conformant. (For example, a UA is not required to render color on a monochrome monitor.)

An authoring tool is conformant to this specification if it writes style sheets that are syntactically correct according to the generic CSS grammar and the individual grammars of each feature in this module, and meet all other conformance requirements of style sheets as described in this module.

Partial implementations

So that authors can exploit the forward-compatible parsing rules to assign fallback values, CSS renderersmusttreat as invalid (andignore as appropriate) any at-rules, properties, property values, keywords, and other syntactic constructs for which they have no usable level of support. In particular, user agentsmust notselectively ignore unsupported component values and honor supported values in a single multi-value property declaration: if any value is considered invalid (as unsupported values must be), CSS requires that the entire declaration be ignored.

Implementations of Unstable and Proprietary Features

To avoid clashes with future stable CSS features, the CSSWG recommendsfollowing best practicesfor the implementation ofunstablefeatures andproprietary extensionsto CSS.

Non-experimental implementations

Once a specification reaches the Candidate Recommendation stage, non-experimental implementations are possible, and implementors should release an unprefixed implementation of any CR-level feature they can demonstrate to be correctly implemented according to spec.

To establish and maintain the interoperability of CSS across implementations, the CSS Working Group requests that non-experimental CSS renderers submit an implementation report (and, if necessary, the testcases used for that implementation report) to the W3C before releasing an unprefixed implementation of any CSS features. Testcases submitted to W3C are subject to review and correction by the CSS Working Group.

Further information on submitting testcases and implementation reports can be found from on the CSS Working Group’s website athttp://www.w3.org/Style/CSS/Test/. Questions should be directed to the[email protected]mailing list.

Index

Terms defined by this specification

Terms defined by reference

References

Normative References

[CSS-BACKGROUNDS-3]
Elika Etemad; Brad Kemper.CSS Backgrounds and Borders Module Level 3.URL:https://drafts.csswg.org/css-backgrounds/
[CSS-BOX-4]
Elika Etemad.CSS Box Model Module Level 4.URL:https://drafts.csswg.org/css-box-4/
[CSS-BREAK-3]
Rossen Atanassov; Elika Etemad.CSS Fragmentation Module Level 3.URL:https://drafts.csswg.org/css-break/
[CSS-CASCADE-3]
Elika Etemad; Tab Atkins Jr..CSS Cascading and Inheritance Level 3.URL:https://drafts.csswg.org/css-cascade-3/
[CSS-CASCADE-5]
Elika Etemad; Miriam Suzanne; Tab Atkins Jr..CSS Cascading and Inheritance Level 5.URL:https://drafts.csswg.org/css-cascade-5/
[CSS-CASCADE-6]
Elika Etemad; Miriam Suzanne; Tab Atkins Jr..CSS Cascading and Inheritance Level 6.URL:https://drafts.csswg.org/css-cascade-6/
[CSS-COLOR-5]
Chris Lilley; et al.CSS Color Module Level 5.URL:https://drafts.csswg.org/css-color-5/
[CSS-DISPLAY-4]
CSS Display Module Level 4.Editor's Draft. URL:https://drafts.csswg.org/css-display-4/
[CSS-POSITION-3]
Elika Etemad; Tab Atkins Jr..CSS Positioned Layout Module Level 3.URL:https://drafts.csswg.org/css-position-3/
[CSS-SCROLL-SNAP-1]
Matt Rakow; et al.CSS Scroll Snap Module Level 1.URL:https://drafts.csswg.org/css-scroll-snap-1/
[CSS-SIZING-3]
Tab Atkins Jr.; Elika Etemad.CSS Box Sizing Module Level 3.URL:https://drafts.csswg.org/css-sizing-3/
[CSS-TABLES-3]
François Remy; Greg Whitworth; David Baron.CSS Table Module Level 3.URL:https://drafts.csswg.org/css-tables-3/
[CSS-TEXT-3]
Elika Etemad; Koji Ishii; Florian Rivoal.CSS Text Module Level 3.URL:https://drafts.csswg.org/css-text-3/
[CSS-VALUES-3]
Tab Atkins Jr.; Elika Etemad.CSS Values and Units Module Level 3.URL:https://drafts.csswg.org/css-values-3/
[CSS-VALUES-4]
Tab Atkins Jr.; Elika Etemad.CSS Values and Units Module Level 4.URL:https://drafts.csswg.org/css-values-4/
[CSS-WRITING-MODES-3]
Elika Etemad; Koji Ishii.CSS Writing Modes Level 3.URL:https://drafts.csswg.org/css-writing-modes-3/
[CSS-WRITING-MODES-4]
Elika Etemad; Koji Ishii.CSS Writing Modes Level 4.URL:https://drafts.csswg.org/css-writing-modes-4/
[CSS2]
Bert Bos; et al.Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification.URL:https://drafts.csswg.org/css2/
[CSS22]
Bert Bos.Cascading Style Sheets Level 2 Revision 2 (CSS 2.2) Specification.URL:https://drafts.csswg.org/css2/
[CSSOM]
Daniel Glazman; Emilio Cobos Álvarez.CSS Object Model (CSSOM).URL:https://drafts.csswg.org/cssom/
[RFC2119]
S. Bradner.Key words for use in RFCs to Indicate Requirement Levels.March 1997. Best Current Practice. URL:https://datatracker.ietf.org/doc/html/rfc2119

Property Index

Name Value Initial Applies to Inh. %ages Anim­ation type Canonical order Com­puted value Logical property group
block-size <'width'> auto Same as height and width no As for the corresponding physical property by computed value type per grammar Same as height, width size
border-block <'border-block-start'> see individual properties see individual properties see individual properties see individual properties see individual properties per grammar see individual properties
border-block-color <'border-top-color'>{1,2} see individual properties see individual properties see individual properties see individual properties see individual properties per grammar see individual properties
border-block-end <'border-top-width'> || <'border-top-style'> || <color> see individual properties see individual properties see individual properties see individual properties see individual properties per grammar see individual properties
border-block-end-color <'border-top-color'> currentcolor Same as border-top-color no n/a by computed value type per grammar Same as corresponding border-*-color properties border-color
border-block-end-style <'border-top-style'> none Same as border-top-style no n/a discrete per grammar Same as corresponding border-*-style properties border-style
border-block-end-width <'border-top-width'> medium Same as border-top-width no n/a by computed value type per grammar Same as corresponding border-*-width properties border-width
border-block-start <'border-top-width'> || <'border-top-style'> || <color> see individual properties see individual properties see individual properties see individual properties see individual properties per grammar see individual properties
border-block-start-color <'border-top-color'> currentcolor Same as border-top-color no n/a by computed value type per grammar Same as corresponding border-*-color properties border-color
border-block-start-style <'border-top-style'> none Same as border-top-style no n/a discrete per grammar Same as corresponding border-*-style properties border-style
border-block-start-width <'border-top-width'> medium Same as border-top-width no n/a by computed value type per grammar Same as corresponding border-*-width properties border-width
border-block-style <'border-top-style'>{1,2} see individual properties see individual properties see individual properties see individual properties see individual properties per grammar see individual properties
border-block-width <'border-top-width'>{1,2} see individual properties see individual properties see individual properties see individual properties see individual properties per grammar see individual properties
border-end-end-radius <'border-top-left-radius'> Same as border-top-left-radius Same as border-top-left-radius no Same as border-top-left-radius by computed value type per grammar Same as corresponding physical border-*-radius properties border-radius
border-end-start-radius <'border-top-left-radius'> Same as border-top-left-radius Same as border-top-left-radius no Same as border-top-left-radius by computed value type per grammar Same as corresponding physical border-*-radius properties border-radius
border-inline <'border-block-start'> see individual properties see individual properties see individual properties see individual properties see individual properties per grammar see individual properties
border-inline-color <'border-top-color'>{1,2} see individual properties see individual properties see individual properties see individual properties see individual properties per grammar see individual properties
border-inline-end <'border-top-width'> || <'border-top-style'> || <color> see individual properties see individual properties see individual properties see individual properties see individual properties per grammar see individual properties
border-inline-end-color <'border-top-color'> currentcolor Same as border-top-color no n/a by computed value type per grammar Same as corresponding border-*-color properties border-color
border-inline-end-style <'border-top-style'> none Same as border-top-style no n/a discrete per grammar Same as corresponding border-*-style properties border-style
border-inline-end-width <'border-top-width'> medium Same as border-top-width no n/a by computed value type per grammar Same as corresponding border-*-width properties border-width
border-inline-start <'border-top-width'> || <'border-top-style'> || <color> see individual properties see individual properties see individual properties see individual properties see individual properties per grammar see individual properties
border-inline-start-color <'border-top-color'> currentcolor Same as border-top-color no n/a by computed value type per grammar Same as corresponding border-*-color properties border-color
border-inline-start-style <'border-top-style'> none Same as border-top-style no n/a discrete per grammar Same as corresponding border-*-style properties border-style
border-inline-start-width <'border-top-width'> medium Same as border-top-width no n/a by computed value type per grammar Same as corresponding border-*-width properties border-width
border-inline-style <'border-top-style'>{1,2} see individual properties see individual properties see individual properties see individual properties see individual properties per grammar see individual properties
border-inline-width <'border-top-width'>{1,2} see individual properties see individual properties see individual properties see individual properties see individual properties per grammar see individual properties
border-start-end-radius <'border-top-left-radius'> Same as border-top-left-radius Same as border-top-left-radius no Same as border-top-left-radius by computed value type per grammar Same as corresponding physical border-*-radius properties border-radius
border-start-start-radius <'border-top-left-radius'> Same as border-top-left-radius Same as border-top-left-radius no Same as border-top-left-radius by computed value type per grammar Same as corresponding physical border-*-radius properties border-radius
inline-size <'width'> auto Same as height and width no As for the corresponding physical property by computed value type per grammar Same as height, width size
inset <'top'>{1,4} see individual properties see individual properties see individual properties see individual properties see individual properties per grammar see individual properties
inset-block <'top'>{1,2} see individual properties see individual properties see individual properties see individual properties see individual properties per grammar see individual properties
inset-block-end <'top'> auto positioned elements no As for the corresponding physical property by computed value type per grammar Same as corresponding top/right/bottom/left properties inset
inset-block-start <'top'> auto positioned elements no As for the corresponding physical property by computed value type per grammar Same as corresponding top/right/bottom/left properties inset
inset-inline <'top'>{1,2} see individual properties see individual properties see individual properties see individual properties see individual properties per grammar see individual properties
inset-inline-end <'top'> auto positioned elements no As for the corresponding physical property by computed value type per grammar Same as corresponding top/right/bottom/left properties inset
inset-inline-start <'top'> auto positioned elements no As for the corresponding physical property by computed value type per grammar Same as corresponding top/right/bottom/left properties inset
margin-block <'margin-top'>{1,2} see individual properties see individual properties see individual properties see individual properties see individual properties per grammar see individual properties
margin-block-end <'margin-top'> 0 Same as margin-top no As for the corresponding physical property by computed value type per grammar Same as corresponding margin-* properties margin
margin-block-start <'margin-top'> 0 Same as margin-top no As for the corresponding physical property by computed value type per grammar Same as corresponding margin-* properties margin
margin-inline <'margin-top'>{1,2} see individual properties see individual properties see individual properties see individual properties see individual properties per grammar see individual properties
margin-inline-end <'margin-top'> 0 Same as margin-top no As for the corresponding physical property by computed value type per grammar Same as corresponding margin-* properties margin
margin-inline-start <'margin-top'> 0 Same as margin-top no As for the corresponding physical property by computed value type per grammar Same as corresponding margin-* properties margin
max-block-size <'max-width'> none same as height and width no As for the corresponding physical property by computed value type per grammar Same as max-height, max-width max-size
max-inline-size <'max-width'> none same as height and width no As for the corresponding physical property by computed value type per grammar Same as max-height, max-width max-size
min-block-size <'min-width'> 0 same as height and width no As for the corresponding physical property by computed value type per grammar Same as min-height, min-width min-size
min-inline-size <'min-width'> 0 same as height and width no As for the corresponding physical property by computed value type per grammar Same as min-height, min-width min-size
padding-block <'padding-top'>{1,2} see individual properties see individual properties see individual properties see individual properties see individual properties per grammar see individual properties
padding-block-end <'padding-top'> 0 Same as padding-top no As for the corresponding physical property by computed value type per grammar Same as corresponding padding-* properties padding
padding-block-start <'padding-top'> 0 Same as padding-top no As for the corresponding physical property by computed value type per grammar Same as corresponding padding-* properties padding
padding-inline <'padding-top'>{1,2} see individual properties see individual properties see individual properties see individual properties see individual properties per grammar see individual properties
padding-inline-end <'padding-top'> 0 Same as padding-top no As for the corresponding physical property by computed value type per grammar Same as corresponding padding-* properties padding
padding-inline-start <'padding-top'> 0 Same as padding-top no As for the corresponding physical property by computed value type per grammar Same as corresponding padding-* properties padding

Issues Index

Things That Are UnstableSince implementation of parts of this module is effectively required for shipping an implementation ofCSS Writing Modeson the Web (in order to correctly implement the default HTML styles), the CSSWG resolved that the requisite features in§ 2 Flow-Relative Values: block-start, block-end, inline-start, inline-endand§ 4 Flow-Relative Box Model Propertiesare approved for shipping. (SeeFPWD announcementfor additional background.)

However, there are a few significant open issues:

Comments, suggestions, and use cases are welcome on these issues. Please file them in GitHub, tweet them to @csswg, or send them to [email protected].
The proposed syntax for this feature isunder discussionand is almost guaranteed to change from what is described here. This section remains in the draft to promote discussion of alternatives, to document the affected properties, and to specify the expected impact on the interpretation of whatever syntactic switch is ultimately chosen.
MDN

@page

In all current engines.

Firefox19+Safari13.1+Chrome2+
Opera6+Edge79+
Edge (Legacy)12+IE8+
Firefox for Android?iOS Safari?Chrome for Android?Android WebView37+Samsung Internet?Opera Mobile?

page-break-after

In all current engines.

Firefox1+Safari1.2+Chrome1+
Opera7+Edge79+
Edge (Legacy)12+IE4+
Firefox for Android?iOS Safari?Chrome for Android?Android WebView37+Samsung Internet?Opera Mobile?

page-break-before

In all current engines.

Firefox1+Safari1.2+Chrome1+
Opera7+Edge79+
Edge (Legacy)12+IE4+
Firefox for Android?iOS Safari?Chrome for Android?Android WebView37+Samsung Internet?Opera Mobile?
MDN

block-size

In all current engines.

Firefox41+Safari12.1+Chrome57+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet5.0+Opera Mobile?

inline-size

In all current engines.

Firefox41+Safari12.1+Chrome57+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet5.0+Opera Mobile?
MDN

border-block-color

In all current engines.

Firefox66+Safari14.1+Chrome87+
Opera?Edge87+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

border-block-end-color

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

border-block-start-color

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

border-inline-end-color

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

border-inline-start-color

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

border-block-end-style

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

border-block-start-style

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

border-inline-end-style

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

border-inline-start-style

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

border-block-end-width

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

border-block-start-width

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

border-inline-end-width

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

border-inline-start-width

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

border-block-end

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

border-block-start

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

border-inline-end

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

border-inline-start

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

border-block-style

In all current engines.

Firefox66+Safari14.1+Chrome87+
Opera?Edge87+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

border-block-width

In all current engines.

Firefox66+Safari14.1+Chrome87+
Opera?Edge87+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

border-block

In all current engines.

Firefox66+Safari14.1+Chrome87+
Opera?Edge87+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

border-color

In all current engines.

Firefox1+Safari1+Chrome1+
Opera3.5+Edge79+
Edge (Legacy)12+IE4+
Firefox for Android?iOS Safari?Chrome for Android?Android WebView4+Samsung Internet?Opera Mobile10.1+
MDN

border-end-end-radius

In all current engines.

Firefox66+Safari15+Chrome89+
Opera?Edge89+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

border-end-start-radius

In all current engines.

Firefox66+Safari15+Chrome89+
Opera?Edge89+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

border-start-end-radius

In all current engines.

Firefox66+Safari15+Chrome89+
Opera?Edge89+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

border-start-start-radius

In all current engines.

Firefox66+Safari15+Chrome89+
Opera?Edge89+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

border-inline-color

In all current engines.

Firefox66+Safari14.1+Chrome87+
Opera?Edge87+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

border-inline-style

In all current engines.

Firefox66+Safari14.1+Chrome87+
Opera?Edge87+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

border-inline-width

In all current engines.

Firefox66+Safari14.1+Chrome87+
Opera?Edge87+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

border-inline

In all current engines.

Firefox66+Safari14.1+Chrome87+
Opera?Edge87+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

caption-side

In all current engines.

Firefox1+Safari1+Chrome1+
Opera4+Edge79+
Edge (Legacy)12+IE8+
Firefox for Android?iOS Safari?Chrome for Android?Android WebView37+Samsung Internet?Opera Mobile?
MDN

clear

In all current engines.

Firefox1+Safari1+Chrome1+
Opera3.5+Edge79+
Edge (Legacy)12+IE4+
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile10.1+

float

In all current engines.

Firefox1+Safari1+Chrome1+
Opera7+Edge79+
Edge (Legacy)12+IE4+
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile10.1+
MDN

inset-block-end

In all current engines.

Firefox63+Safari14.1+Chrome87+
Opera?Edge87+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

inset-block-start

In all current engines.

Firefox63+Safari14.1+Chrome87+
Opera?Edge87+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

inset-inline-end

In all current engines.

Firefox63+Safari14.1+Chrome87+
Opera?Edge87+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

inset-inline-start

In all current engines.

Firefox63+Safari14.1+Chrome87+
Opera?Edge87+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

inset-block

In all current engines.

Firefox63+Safari14.1+Chrome87+
Opera?Edge87+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

inset-inline

In all current engines.

Firefox63+Safari14.1+Chrome87+
Opera?Edge87+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

inset

In all current engines.

Firefox66+Safari14.1+Chrome87+
Opera?Edge87+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

margin-block-end

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

margin-block-start

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

margin-inline-end

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari12.2+Chrome for Android?Android WebView87+Samsung Internet?Opera Mobile?

margin-inline-start

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari12.2+Chrome for Android?Android WebView87+Samsung Internet?Opera Mobile?
MDN

margin-block

In all current engines.

Firefox66+Safari14.1+Chrome87+
Opera?Edge87+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

margin-inline

In all current engines.

Firefox66+Safari14.1+Chrome87+
Opera?Edge87+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

max-block-size

In all current engines.

Firefox41+Safari12.1+Chrome57+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet5.0+Opera Mobile?
MDN

max-inline-size

In all current engines.

Firefox41+Safari12.1+Chrome57+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

min-block-size

In all current engines.

Firefox41+Safari12.1+Chrome57+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

min-inline-size

In all current engines.

Firefox41+Safari12.1+Chrome57+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

padding-block-end

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

padding-block-start

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?

padding-inline-end

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari12.2+Chrome for Android?Android WebView87+Samsung Internet?Opera Mobile?

padding-inline-start

In all current engines.

Firefox41+Safari12.1+Chrome69+
Opera?Edge79+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari12.2+Chrome for Android?Android WebView87+Samsung Internet?Opera Mobile?
MDN

padding-block

In all current engines.

Firefox66+Safari14.1+Chrome87+
Opera?Edge87+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

padding-inline

In all current engines.

Firefox66+Safari14.1+Chrome87+
Opera?Edge87+
Edge (Legacy)?IENone
Firefox for Android?iOS Safari?Chrome for Android?Android WebView?Samsung Internet?Opera Mobile?
MDN

text-align

In all current engines.

Firefox1+Safari1+Chrome1+
Opera3.5+Edge79+
Edge (Legacy)12+IE3+
Firefox for Android?iOS Safari?Chrome for Android?Android WebView37+Samsung Internet?Opera Mobile10.1+