Chapter 4. Property Reference
Inheritance and Animation
Each property listed in this chapter has “Inh.” and “Anim.” values. The values “N” (for no) and “Y” (for yes) indicate whether a property is inherited by descendant elements and whether the property is animatable, or able to be affected using the various animation and transition properties. In cases where only some of a property’s values are animatable, the value given will be “P” (for partial) and more details will be given in the property’s definition.
Value Syntax Conventions
Any words presented in constant width
are keywords that must appear literally, without quotes. The forward slash (/
) and the comma (,
) must also be used literally.
Any italicized words between “<” and “>” give a type of value, or a reference to another property’s values. For example, the property font
accepts values that originally belong to the property font-family
. This is denoted by using the text <font-family>. Similarly, if a value type like a color is permitted, it will be represented using <color>.
There are a number of ways to combine components of a value definition:
-
Two or more keywords strung together with only space separating them means that all of them must occur in the given order.
-
If a vertical bar separates alternatives (X | Y), then any one of them must occur, but only one.
-
A vertical double bar (X ‖ Y) means that X, Y, or both must occur, but they may appear in any order.
-
A double ampersand (X && Y) means both X and Y must occur, though they may appear in any order.
-
Brackets ([…]) group things together. Thus “[
please ‖ help ‖ me
]do this
” means that one or more of the wordsplease
,help
, andme
must appear (in any order, and at most once).do this
must always appear, with those words in that order.
Every component or bracketed group may (or may not) be followed by one of these modifiers:
-
An asterisk (*) indicates that the preceding value or bracketed group is repeated zero or more times.
-
A plus (+) indicates that the preceding value or bracketed group is repeated one or more times.
-
An octothorp (#) indicates that the preceding value or bracketed group is repeated one or more times, separated by commas as needed.
-
A question mark (?) indicates that the preceding value or bracketed group is optional.
-
An exclamation point (!) indicates that the preceding value or bracketed group is required, and thus must result in at least one value, even if the syntax would seem to indicate otherwise.
-
A pair of numbers in curly braces ({M,N}) indicates that the preceding value or bracketed group is repeated at least M and at most N times.
Universal Values
Any user agent that has fully implemented the Cascading and Inheritance module will honor the following values for all properties. Think of it as a given property’s value syntax being written something like:
[ (listed value syntax) ] | inherit
| initial
| unset
These three keywords are not listed in the following property definitions, for purposes of clarity. The exception is the property all
, which accepts only these three keywords as values. For definitions of these keywords’ meaning, see Chapter 2.
Properties
align-content Inh. N Anim. N
- Values
-
flex-start
|flex-end
|center
|space-between
|space-around
|space-evenly
|stretch
- Initial value
- Computed value
-
As declared
- Applies to
-
Flex containers
- Description
-
Defines the distribution of flex lines along the cross axis of a flex container, given that the container’s cross-axis length does not equal the sum of the flex lines’ size along the same axis.
- Examples
-
aside {display: flex; align-content: center;} section {display: flex; height: 90vh; align-content: flex-end;}
- Note
-
As of early 2018, there are plans to have this property apply to many (or all) elements, not just flex containers, and be given the values
start
andend
to replicateflex-start
andflex-end
behavior for non-flex environments. Thanks to thecenter
value, this change would make vertical centering of content trivial in nearly all cases.
align-items Inh. N Anim. N
- Values
- Initial value
-
stretch
- Computed value
-
As declared
- Applies to
-
Flex containers, grid containers, and multicolumn containers
- Description
-
Sets a flex-container-wide default for items’ alignment with respect to the cross axis of the flex line they occupy.
baseline
alignment means the items in a line are all placed such that the baselines of their first lines of text line up. - Examples
-
div.flexy {align-items: flex-start;} section.gallery {align-items: baseline;}
- Note
-
As of early 2018, there are plans to have this property apply to many (or all) elements and be given the values
start
andend
to replicateflex-start
andflex-end
behavior for non-flex environments.
align-self Inh. N Anim. N
- Values
- Initial value
-
stretch
- Computed value
-
As declared
- Applies to
-
Flex and grid items
- Description
-
Sets the alignment for a single item with respect to the cross axis of the flex line it occupies.
baseline
alignment means the baseline of the item’s first line of text is aligned with the lowest first-line baseline in the flex line. - Examples
-
div.flexy .midpointed {align-self: center;} section.gallery h1 {align-self: stretch;}
- Note
-
As of early 2018, there are plans to have this property apply to many (or all) elements, and be given the values
start
andend
to replicateflex-start
andflex-end
behavior for non-flex environments.
all Inh. N Anim. N
- Values
-
inherit
|initial
|unset
- Initial value
-
See individual properties
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Applies the declared value to all properties except
direction
andunicode-bidi
, which are exempted for accessibility and historical reasons. This allows an author to, for example, force an element to reset all of its style properties to their default values, thus blocking the inheritance of values for all properties (except the exempted two). - Examples
-
*.blendin {all: inherit;} *.embedded {all: unset;}
animation Inh. N Anim. N
- Values
-
[ <animation-name> ‖ <animation-duration> ‖ <animation-timing-function> ‖ <animation-delay> ‖ <animation-iteration-count> ‖ <animation-direction> ‖ <animation-fill-mode> ‖ <animation-play-state> ]#
- Initial value
-
0s ease 0s 1 normal none running none
- Computed value
-
As declared
- Applies to
-
All elements,
::before
and::after
pseudo-elements - Description
-
A shorthand property encompassing all the aspects of one or more comma-separated CSS animations. The parts of the value can occur in any order. Therefore, beware possible ambiguity in the delay and duration values. As of this writing, it is most likely that the first time value will be taken to define the duration and the second to define the delay, but this cannot be guaranteed.
- Examples
-
div#slide {animation: 'slide' 2.5s linear 0 1 normal;} h1 {animation: 'bounce' 0.5s 0.33s ease-in-out infinite alternate;}
animation-delay Inh. N Anim. N
- Values
- Initial value
-
0s
- Computed value
-
As declared
- Applies to
-
All elements,
::before
and::after
pseudo-elements - Description
-
Defines the amount of time that the user agent waits before starting the CSS animation(s). The timer starts when the user agent applies the animation CSS. For a noninteractive element, this is likely (but not guaranteed) to be at the end of page load.
- Examples
-
body {animation-delay: 1s, 2000ms, 4s;} a:hover {animation-delay: 400ms;}
animation-direction Inh. N Anim. N
- Values
- Initial value
-
normal
- Computed value
-
As declared
- Applies to
-
All elements,
::before
and::after
pseudo-elements - Description
-
Specifies whether a CSS animation with more than one cycle (see
animation-iteration-count
) should always go the same direction or should reverse direction on every other cycle. For example, analternate
animation that moves an element 300 pixels to the right would move it 300 pixels to the left on every other cycle, thus returning it to its starting position. Setting that same animation tonormal
would cause the element to move 300 pixels right, then jump back to its starting place and move 300 pixels right again, over and over until the animation stops (assuming it ever does). - Examples
-
body {animation-direction: alternate, normal, normal;} #scanner {animation-direction: normal;}
animation-duration Inh. N Anim. N
- Values
- Initial value
-
0s
- Computed value
-
As declared
- Applies to
-
All elements,
::before
and::after
pseudo-elements - Description
-
Defines the length of time it should take for each cycle of a CSS animation to run from start to finish. Therefore, in animations with only one cycle, it defines the total time of the animation. The default value,
0s
, means that there will be no animation besides moving the element from its start state to its end state. Negative values are converted to0s
. - Examples
-
h1 {animation-duration: 10s, 5s, 2.5s, 1250ms;} .zip {animation-duration: 90ms;}
animation-iteration-count Inh. N Anim. N
- Values
- Initial value
-
1
- Computed value
-
As declared
- Applies to
-
All elements,
::before
and::after
pseudo-elements - Description
-
Defines the number of cycles in the animation(s). The default value,
1
, means that the animation will run exactly once, going from the start state to the end state. A fractional value (e.g.,2.75
) means the animation will be halted midway through its final cycle. A value of0
means that there will be no animation; negative values are converted to0
. As its name implies,infinite
means the animation will never end. Use with caution. - Examples
-
body {animation-iteration-count: 2, 1, 7.5875;} ol.dance {animation-iteration-count: infinite;}
animation-name Inh. N Anim. N
- Values
- Initial value
-
none
- Computed value
-
As declared
- Applies to
-
All elements,
::before
and::after
pseudo-elements - Description
-
Defines the declared name(s) of CSS animation(s). Each name refers to a CSS animation keyframe at-rule. If no animation name is declared or the keyword
none
is supplied, the animation is not run regardless of the values of any other animation properties. For example, givenanimation-name: bounce, none, jumper
and that the animation namejumper
has not been defined, the first animation will run but the second and third will not. - Examples
-
html {animation-name: turn, slide, none;} h2 {animation-name: flip;}
animation-play-state Inh. N Anim. N
- Values
- Initial value
-
running
- Computed value
-
As declared
- Applies to
-
All elements,
::before
and::after
pseudo-elements - Description
-
Defines the run state of one or more CSS animations. The default state of
running
is the most useful in static CSS environments, but it can be used to easily stop or start animations via DOM scripting or interactive CSS (e.g.,:hover
). - Examples
-
pre {animation-play-state: running, paused, running;} table {animation-play-state: running;}
animation-timing-function Inh. N Anim. N
- Values
-
[
ease
|linear
|ease-in
|ease-out
|ease-in-out
|step-start
|step-end
|steps(
<integer>, start)
|steps(
<integer>, end)
|cubic-bezier(
<number>,<number>,<number>,<number>)
]# - Initial value
-
ease
- Computed value
-
As declared
- Applies to
-
All elements,
::before
and::after
pseudo-elements - Description
-
Defines how an animation is run over the course of the animation’s full cycle or within an individual keyframe, depending on where the property is used. The keywords are all defined to have
cubic-bezier()
equivalents; for example,linear
is equivalent tocubic-bezier(0,0,1,1)
. They should therefore have consistent effects across user agents—but, as always, authors are cautioned not to count on that. - Examples
-
h1 {animation-timing-function: ease, ease-in, cubic-bezier(0.13,0.42,0.67,0.75)} p {animation-timing-function: linear;}
backface-visibility Inh. N Anim. N
- Values
- Initial value
-
visible
- Computed value
-
As declared
- Applies to
-
Any transformable element
- Description
-
Defines whether the back side of an element is visible once the element has been rotated in a simulated 3D space and is “facing away” from the viewer. If the value is
hidden
, the element will be effectively invisible until it is rotated such that the front side of the element is once more “facing toward” the viewer. - Examples
-
div.card {backface-visibility: hidden;} span.cubeside {backface-visibility: visible;}
background Inh. N Anim. P
- Values
- Initial value
-
Refer to individual properties
- Computed value
-
Refer to individual properties
- Applies to
-
All elements
- Animatable
-
Refer to individual background properties to see which are animatable
- Description
-
A shorthand way of expressing the various background properties of one or more element backgrounds using a single declaration. As with all shorthands, this property will set all of the allowed values (e.g., the repeat, position, and so on) to their defaults if the values are not explicitly supplied. Thus, the following two rules will have the same appearance:
background: yellow; background: yellow none top left repeat;
Furthermore, these defaults can override previous declarations made with more specific background properties. For example, given the following rules:
h1 {background-repeat: repeat-x;} h1, h2 {background: yellow url(headback.gif);}
the repeat value for both
h1
andh2
elements will be set to the default ofrepeat
, overriding the previously declared value ofrepeat-x
.When declaring multiple backgrounds, only the last may have a background color. In cases where multiple background images overlap, the images are stacked with the first highest and the last lowest. This is the exact reverse of how overlapping is handled in CSS positioning, and so may seem counterintuitive.
- Examples
-
body {background: white url(bg41.gif) fixed center repeat-x;} p {background: url(/pix/water.png) center repeat-x, top left url(/pix/stone.png) #555;} pre {background: yellow;}
background-attachment Inh. N Anim. N
- Values
- Initial value
-
scroll
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines whether background images scroll along with the element when the document is scrolled. This property can be used to create “aligned” backgrounds; for more details, see Chapter 9 of CSS: The Definitive Guide, 4th Edition.
- Examples
-
body {background-attachment: scroll, scroll, fixed;} div.fixbg {background-attachment: fixed;}
background-blend-mode Inh. N Anim. N
- Values
-
[
normal
|multiply
|screen
|overlay
|darken
|lighten
|color-dodge
|color-burn
|hard-light
|soft-light
|difference
|exclusion
|hue
|saturation
|color
|luminosity
]# - Initial value
-
normal
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Changes how overlapping background images are composited against an “empty” backdrop. The “backdrop” here is a transparent layer underneath the background color. The default of
normal
imposes simple alpha blending, as CSS has permitted since its inception. The others cause the background image and its backdrop to be combined in various ways; for example,lighten
means that the final result will show, at each pixel, either the image or its backdrop, whichever is lighter.darken
is the same, except the darker of the two pixels will be shown. The results of these are likely to be familiar to users of Photoshop or any other graphic-editing tool. Compositing of multiple background layers is done back to front. - Examples
-
li.shadowed {background-blend-mode: darken;} aside {background-blend-mode: color-burn, luminosity, darken;}
background-clip Inh. N Anim. N
- Values
- Initial value
-
border-box
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines the boundary within the element box at which the background is clipped (that is, no longer drawn). Historically, this has been equivalent to the default value of
border-box
, where the background goes to the outer edge of the border area. This property allows more constrained clipping boxes at the outer edge of the padding area and at the content edge itself. - Examples
-
body {background-clip: content-box;} .callout {background-clip: content-box, border-box, padding-box;}
background-color Inh. N Anim. Y
- Values
- Initial value
-
transparent
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines a solid color for the background of the element. This color fills the box defined by the value of
background-clip
—by default, the content, padding, and border areas of the element, extending to the outer edge of the element’s border. Borders that have transparent sections (such as dashed borders) will show the background color through the transparent sections in cases where the background color extends into the border area. - Examples
-
h4 {background-color: white;} p {background-color: rgba(50%,50%,50%,0.33);} pre {background-color: #FF9;}
background-image Inh. N Anim. N
- Values
- Initial value
-
none
- Computed value
-
As declared, but with all URIs made absolute
- Applies to
-
All elements
- Description
-
Places one or more images in the background of the element. Depending on the value of
background-repeat
, the image may tile infinitely, along one axis, or not at all. The initial background image (the origin image) is placed according to the value ofbackground-position
. - Examples
-
body {background-image: url(bg41.gif), url(bg43.png), url(bg51.jpg);} h2 {background-image: url(http://www.pix.org/dots.png);}
background-origin Inh. N Anim. N
- Values
- Initial value
-
padding-box
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines the boundary within the element box against which background image positioning is calculated. Historically, this has been equivalent to the default value of
padding-box
. This property allows for different positioning contexts. Note that if the value ofbackground-origin
is “further out” than the value forbackground-clip
, and the image is positioned to an edge, part of it may be clipped. For example:div#example {background-origin: border-box; background-clip: content-box; background-position: 100% 100%;}
In this case the image will be placed so that its bottom-right corner aligns with the bottom-right corner of the outer border edge, but the only parts of it that will be visible are those that fall within the content area.
- Examples
-
html, body {background-origin: border-box;} h1 {background-origin: content-box, padding-box;}
background-position Inh. N Anim. Y
- Values
- Initial value
-
0% 0%
- Computed value
-
The absolute length offsets, if <length> is specified; otherwise, percentage values
- Percentages
-
Refer to the corresponding point on both the element and the origin image
- Applies to
-
Block-level and replaced elements
- Description
-
Defines the position(s) of one or more backgrounds’ origin images (as defined by
background-image
); this is the point from which any background repetition or tiling will occur. Percentage values define not only a point within the element, but also the same point in the origin image itself. That means (for example) an image can be centered by declaring its position to be50% 50%
. When percentage or length values are used, the first is always the horizontal position and the second is the vertical position. If only one value is given, it sets the horizontal position, while the missing value is assumed to be eithercenter
or50%
. Negative values are permitted and may place the origin image outside the element’s content area without actually rendering it. The context within which an origin image is placed can be affected by the value ofbackground-origin
. - Examples
-
body {background-position: top center;} div#navbar {background-position: right, 50% 75%, 0 40px;} pre {background-position: 10px 50%;}
background-repeat Inh. N Anim. N
- Values
- Definition
- <repeat-style>
-
repeat-x
|repeat-y
| [repeat
|space
|round
|no-repeat
]{1,2} - Initial value
-
repeat
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines the tiling pattern for one or more background images. The repetition begins from the origin image, which is defined as the value of
background-image
and is placed according to the value ofbackground-position
(and possiblybackground-origin
). For the keywordsspace
andround
, the image is tiled as many times as it will fit in the background area without being clipped, and then the first and last images are placed against their respective background edges. The difference is thatspace
causes the intervening images to be regularly spaced, andround
causes them to be stretched to touch each other. Note thatrepeat-x
is equivalent torepeat no-repeat
, andrepeat-y
is equivalent tono-repeat repeat
. - Examples
-
body {background-repeat: no-repeat;} h2 {background-repeat: repeat-x, repeat-y;} ul {background-repeat: repeat-y, round space, repeat;}
background-size Inh. N Anim. Y
- Values
-
[ [ <length> | <percentage> |
auto
]{1,2} |cover
|contain
]# - Initial value
-
auto
- Computed value
-
As declared, but with all lengths made absolute and any missing
auto
keywords added - Applies to
-
All elements
- Description
-
Defines the size of one or more background origin images. If two keywords are used (e.g.,
50px 25%
), the first defines the horizontal size of the image and the second defines the vertical size. The origin image can be deformed to exactly cover the background with100% 100%
. By contrast,cover
scales up the image to cover the entire background even if some of it exceeds the background area and is thus clipped, andcontain
scales up the origin image so that at least one of its dimensions exactly fills the corresponding axis of the background area. - Examples
-
body {background-size: 100% 90%;} div.photo {background-size: cover;}
border Inh. N Anim. P
- Values
- Initial value
-
Refer to individual properties
- Computed value
-
As declared
- Applies to
-
All elements
- Animatable
-
Border width and color; not border style
- Description
-
A shorthand property that defines the width, color, and style of an element’s border. Note that while none of the values are actually required, omitting a border style will result in no border being applied because the default border style is
none
. - Examples
-
h1 {border: 2px dashed olive;} a:link {border: blue solid 1px;} p.warning {border: double 5px red;}
border-bottom Inh. N Anim. P
- Values
- Initial value
-
See individual properties
- Computed value
-
See individual properties (
border-width
, etc.) - Applies to
-
All elements
- Animatable
-
Border width and color; not border style
- Description
-
A shorthand property that defines the width, color, and style of the bottom border of an element. As with
border
, omission of a border style will result in no border appearing. - Examples
-
ul {border-bottom: 0.5in groove green;} a:active {border-bottom: purple 2px dashed;}
border-bottom-color Inh. N Anim. Y
- Values
- Initial value
-
currentColor
- Computed value
-
A color
- Applies to
-
All elements
- Description
-
Defines the color for the visible portions of the bottom border of an element. The border’s style must be something other than
none
orhidden
for any visible border to appear. - Examples
-
ul {border-bottom-color: green;} a:active {border-bottom-color: purple;}
border-bottom-left-radius Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
Two values, each a <percentage> or <length> made absolute
- Percentages
-
Calculated with respect to the relevant dimension of the border box
- Applies to
-
All elements, except internal table elements
- Description
-
Defines the rounding radius for the bottom-left corner of an element’s border. If two values are supplied, the first is the horizontal radius and the second is the vertical radius. See
border-radius
for a description of how the values create the rounding shape. - Examples
-
h1 {border-bottom-left-radius: 10%;} h2 {border-bottom-left-radius: 1em 10px;}
border-bottom-right-radius Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
Two values, each a <percentage> or <length> made absolute
- Percentages
-
Calculated with respect to the relevant dimension of the border box
- Applies to
-
All elements, except internal table elements
- Description
-
Defines the rounding radius for the bottom-right corner of an element’s border. If two values are supplied, the first is the horizontal radius and the second is the vertical radius. See
border-radius
for a description of how the values create the rounding shape. - Examples
-
h1 {border-bottom-right-radius: 10%;} h2 {border-bottom-right-radius: 1em 10px;}
border-bottom-style Inh. N Anim. N
- Values
-
none
|hidden
|dotted
|dashed
|solid
|double
|groove
|ridge
|inset
|outset
- Initial value
-
none
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines the style for the bottom border of an element. The value must be something other than
none
orhidden
for any border to appear. - Examples
-
ul {border-bottom-style: groove;} a:active {border-bottom-style: dashed;}
border-bottom-width Inh. N Anim. Y
- Values
- Initial value
-
See individual properties
- Computed value
-
See individual properties (
border-top-style
, etc.) - Applies to
-
All elements
- Description
-
Defines the width for the bottom border of an element, which will take effect only if the border’s style is something other than
none
orhidden
. If the border style isnone
, the border width is effectively reset to0
. Negative length values are not permitted. - Examples
-
ul {border-bottom-width: 0.5in;} a:active {border-bottom-width: 2px;}
border-collapse Inh. Y Anim. Y
- Values
- Initial value
-
separate
- Computed value
-
As declared
- Applies to
-
Elements with the
display
valuetable
ortable-inline
- Description
-
Defines the layout model used in laying out the borders in a table—i.e., those applied to cells, rows, and so forth. Although the property applies only to tables, it is inherited by all the elements within the table and actually used by them.
- Example
-
table {border-collapse: separate; border-spacing: 3px 5px;}
- Note
-
In CSS2, the default was
collapse
.
border-color Inh. N Anim. Y
- Values
- Initial value
-
See individual properties
- Computed value
-
See individual properties (
border-top-color
, etc.) - Applies to
-
All elements
- Description
-
A shorthand property that sets the color for the visible portions of the overall border of an element or sets a different color for each of the four sides. Remember that a border’s style must be something other than
none
orhidden
for any visible border to appear. - Examples
-
h1 {border-color: purple;} a:visited {border-color: maroon;}
border-image Inh. N Anim. P
- Values
-
<border-image-source> ‖ <border-image-slice> [
/
<border-image-width> |/
<border-image-width>?/
<border-image-outset> ]? ‖ <border-image-repeat> - Initial value
- Computed value
-
See individual properties
- Applies to
-
See individual properties
- Animatable
-
Refer to individual border-image properties to see which are animatable
- Description
-
A shorthand property that defines the source, slicing pattern, border width, degree of extension, and repetition of an image-based border. The syntax is somewhat unusual compared to the rest of CSS, so take extra time with it. For example, three of the five values possible are slash-separated and must be listed in a specific order.
Note that it is effectively impossible to take a simple image (say, a star) and repeat it around the edges of an element. To create that effect, you must create a single image that contains nine copies of the image you wish to repeat in a 3×3 grid. It may also be necessary to set
border-width
(notborder-image-width
) to be large enough to show the image, depending on the value ofborder-image-outset
. - Examples
-
div.starry {border-image: url(stargrid.png) 5px repeat;} aside {border-image: url(asides.png) 100 50 150 / 8 3 13 / 2 stretch round;}
border-image-outset Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
Four values, each a number or <length> made absolute
- Applies to
-
All elements, except internal table elements when
border-collapse
iscollapse
- Description
-
Defines the distance by which a border image may exceed the border area of the element. The values define distances from the top, right, bottom, and left edges of the border image, in that order. Numbers are calculated with respect to the image’s intrinsic coordinate system; thus, for a raster image, the number
7
is taken to mean seven pixels. Images in formats such as SVG may have different coordinate systems. Negative values are not permitted. - Examples
-
aside {border-image-outset: 2;} div#pow {border-image-outset: 10 17 13 5;}
border-image-repeat Inh. N Anim. N
- Values
- Initial value
-
stretch
- Computed value
-
Two keywords, one for each axis
- Applies to
-
All elements, except internal table elements when
border-collapse
iscollapse
- Description
-
Defines the repetition pattern (or lack thereof) of the sides of a border image.
stretch
causes a single copy of the image to be stretched to fit the border segment (top, right, bottom, or left).repeat
“tiles” the image in a manner familiar from background images, though border images are only ever tiled along one axis.round
“tiles” the border image as many times as it will fit without clipping, then (if necessary) scales the entire set of tiled images to exactly fit the border segment. - Examples
-
div.starry {border-image-repeat: repeat;} aside {border-image-repeat: stretch round;}
border-image-slice Inh. N Anim. P
- Values
- Initial value
-
100%
- Computed value
-
Four values, each a number or percentage, and optionally the
fill
keyword - Percentages
-
Refer to the size of the border image
- Applies to
-
All elements, except internal table elements when
border-collapse
iscollapse
- Animatable
-
<number> and <percentage> values only
- Description
-
Defines “slice distances,” which are offsets from the top, right, bottom, and left edges of the border image. Taken together, they divide the image into nine regions, which correspond to the eight segments of the element’s border (four corners and four sides) and the element’s background area.
In cases where two opposite regions combine to exceed the total of the dimension they share, both are made completely transparent. For example, if the top slice offset value is
10
and the bottom slice offset value is20
, but the source image is only 25 pixels tall, the two exceed the height of the image. Thus, both the top and bottom segments of the border will be entirely transparent. The same holds for right and left slices and width. Corners are never forcibly made transparent, even in cases where their slices may overlap in the source image. - Examples
-
div.starry {border-image-slice: 5px;} aside {border-image-slice: 100 50 150;}
border-image-source Inh. N Anim. N
- Values
- Initial value
-
none
- Computed value
-
none
, or the image with its URI made absolute - Applies to
-
All elements, except internal table elements when
border-collapse
iscollapse
- Description
-
Supplies the location of the image to be used as an element’s border image.
- Examples
-
div.starry {border-image-source: url(stargrid.png);} aside {border-image-source: url(asides.png);}
border-image-width Inh. N Anim. Y
- Values
- Initial value
-
1
- Computed value
-
Four values, each a percentage, a number, a <length> made absolute, or the
auto
keyword - Percentages
-
Relative to the width/height of the entire border image area; that is, the outer edges of the border box
- Applies to
-
All elements, except table elements when
border-collapse
iscollapse
- Description
-
Defines an image width for each of the four sides of an image border. Border image slices that have a different width than the border image width value are scaled to match it, which may impact how they are repeated. For example, if the right edge of an image border is 10 pixels wide, but
border-image-width: 3px
has been declared, the border images along the right side are scaled to be three pixels wide.Note that
border-image-width
is different fromborder-width
: a border image’s width can be different than the width of the border area. In cases where the image is wider or taller than the border area, it will be clipped by default (butborder-image-outset
may prevent this). If it is narrower or shorter than the border area, it will not be scaled up. Negative values are not permitted. - Examples
-
aside {border-image-width: 8 3 13;} div#pow{border-image-width: 25px 35;}
border-left Inh. N Anim. P
- Values
- Initial value
-
See individual properties
- Computed value
-
See individual properties (
border-width
, etc.) - Applies to
-
All elements
- Animatable
-
Border width and color; not border style
- Description
-
A shorthand property that defines the width, color, and style of the left border of an element. As with
border
, omission of a border style will result in no border appearing. - Examples
-
p {border-left: 3em solid gray;} pre {border-left: double black 4px;}
border-left-color Inh. N Anim. Y
- Values
- Initial value
-
currentColor
- Computed value
-
A color
- Applies to
-
All elements
- Description
-
Defines the color for the visible portions of the left border of an element. The border’s style must be something other than
none
orhidden
for any visible border to appear. - Examples
-
p {border-left-color: gray;} pre {border-left-color: black;}
border-left-style Inh. N Anim. N
- Values
-
none
|hidden
|dotted
|dashed
|solid
|double
|groove
|ridge
|inset
|outset
- Initial value
-
none
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines the style for the left border of an element. The value must be something other than
none
orhidden
for any border to appear. - Examples
-
p {border-left-style: solid;} pre {border-left-style: double;}
border-left-width Inh. N Anim. Y
- Values
- Initial value
-
medium
- Computed value
-
An absolute length, or
0
if the style of the border isnone
orhidden
; otherwise, as declared - Applies to
-
All elements
- Description
-
Defines the width for the left border of an element, which will take effect only if the border’s style is something other than
none
orhidden
. If the border style isnone
, the border width is effectively reset to0
. Negative length values are not permitted. - Examples
-
p {border-left-width: 3em;} pre {border-left-width: 4px;}
border-radius Inh. N Anim. Y
- Values
-
[ <length> | <percentage> ]{1,4} [
/
[ <length> | <percentage> ]{1,4} ]? - Initial value
-
0
- Computed value
-
Four values, each a <percentage> or <length> made absolute
- Percentages
-
Calculated with respect to the relevant dimension of the border box
- Applies to
-
All elements, except internal table elements
- Description
-
A shorthand property that defines the rounding radius for the bottom-right corner of an element’s border. The actual corners will be the height and width declared. Thus, given:
.callout {border-radius: 10px;}
each corner of an element with a
class
ofcallout
will have a rounding that is 10 pixels across, as measured from the beginning of the rounding to the outer side edge of the element, and is similarly 10 pixels high. This can be visualized as if the element had 10-pixel-radius (20-pixel-diameter) circles drawn in its corners, and then the border were bent along the circles’ edges.Using fewer than four values causes the supplied values to be repeated in the familiar pattern (see margin, padding, etc.), but with a slight offset. Rather than being Top-Right-Bottom-Left (TRBL, or “trouble”), the pattern is TopLeft-TopRight-BottomRight-BottomLeft (TLTRBRBL, or “tilter burble”). Otherwise, the repeat pattern is the same.
Percentages, when used, are calculated with respect to the size of the element’s border box (the box defined by the outer edges of the element’s border area) dimension on the related axis.
- Examples
-
a[href] {border-radius: 0.5em 50%;} .callout {border-radius: 10px 20px 30px 40px / 1em 2em 3em 4em;}
border-right Inh. N Anim. P
- Values
- Initial value
-
See individual properties
- Computed value
-
See individual properties (
border-width
, etc.) - Applies to
-
All elements
- Animatable
-
Border width and color; not border style
- Description
-
A shorthand property that defines the width, color, and style of the right border of an element. As with
border
, omission of a border style will result in no border appearing. - Examples
-
img {border-right: 30px dotted blue;} h3 {border-right: cyan 1em inset;}
border-right-color Inh. N Anim. Y
- Values
- Initial value
-
currentColor
- Computed value
-
A color
- Applies to
-
All elements
- Description
-
Defines the color for the visible portions of the right border of an element. The border’s style must be something other than
none
orhidden
for any visible border to appear. - Examples
-
img {border-right-color: blue;} h3 {border-right-color: cyan;}
border-right-style Inh. N Anim. N
- Values
-
none
|hidden
|dotted
|dashed
|solid
|double
|groove
|ridge
|inset
|outset
- Initial value
-
none
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines the style for the right border of an element. The value must be something other than
none
orhidden
for any border to appear. - Examples
-
img {border-right-style: dotted;} h3 {border-right-style: inset;}
border-right-width Inh. N Anim. Y
- Values
- Initial value
-
medium
- Computed value
-
An absolute length, or
0
if the style of the border isnone
orhidden
; otherwise, as declared - Applies to
-
All elements
- Description
-
Defines the width for the right border of an element, which will take effect only if the border’s style is something other than
none
orhidden
. If the border style isnone
, the border width is effectively reset to0
. Negative length values are not permitted. - Examples
-
img {border-right-width: 30px;} h3 {border-right-width: 1em;}
border-spacing Inh. Y Anim. Y
- Values
- Initial value
-
0
- Computed value
-
Two absolute lengths
- Applies to
-
Elements with the display value
table
ortable-inline
- Description
-
Defines the distance between table cell borders in the separated borders table layout model. The first of the two length values is the horizontal separation and the second is the vertical separation. Although the property applies only to tables, it is inherited by all of the elements within the table.
- Examples
-
table {border-spacing: 0;} table {border-spacing: 3px 5px;}
- Note
-
This property is ignored unless the value of
border-collapse
isseparate
.
border-style Inh. N Anim. N
- Values
-
[
none
|hidden
|solid
|dotted
|dashed
|double
|groove
|ridge
|inset
|outset
]{1,4} - Initial value
-
See individual properties
- Computed value
-
See individual properties (
border-top-style
, etc.) - Applies to
-
All elements
- Description
-
A shorthand property used to define the styles for the overall border of an element or for each side individually. The value of any border must be something other than
none
orhidden
for the border to appear. Note that settingborder-style
tonone
(its default value) will result in no border at all. In such a case, any value ofborder-width
will be ignored and the width of the border will be set to0
. Any unrecognized value from the list of values should be reinterpreted assolid
. - Examples
-
h1 {border-style: solid;} img {border-style: inset;}
border-top Inh. N Anim. P
- Values
- Initial value
-
See individual properties
- Computed value
-
See individual properties (
border-width
, etc.) - Applies to
-
All elements
- Animatable
-
Border width and color; not border style
- Description
-
A shorthand property that defines the width, color, and style of the top border of an element. As with
border
, omission of a border style will result in no border appearing. - Examples
-
ul {border-top: 0.5in solid black;} h1 {border-top: dashed 1px gray;}
border-top-color Inh. N Anim. Y
- Values
- Initial value
-
currentColor
- Computed value
-
A color
- Applies to
-
All elements
- Description
-
Sets the color for the visible portions of the top border of an element. The border’s style must be something other than
none
orhidden
for any visible border to appear. - Examples
-
ul {border-top-color: black;} h1 {border-top-color: gray;}
border-top-left-radius Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
Two values, each a <percentage> or <length> made absolute
- Percentages
-
Calculated with respect to the relevant dimension of the border box
- Applies to
-
All elements, except internal table elements
- Description
-
Defines the rounding radius for the top-left corner of an element’s border. If two values are supplied, the first is the horizontal radius and the second is the vertical radius. See
border-radius
for a description of how the values create the rounding shape. - Examples
-
h1 {border-top-left-radius: 10%;} h2 {border-top-left-radius: 1em 10px;}
border-top-right-radius Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
Two values, each a <percentage> or <length> made absolute
- Percentages
-
Calculated with respect to the relevant dimension of the border box
- Applies to
-
All elements, except internal table elements
- Description
-
Defines the rounding radius for the top-right corner of an element’s border. If two values are supplied, the first is the horizontal radius and the second is the vertical radius. See
border-radius
for a description of how the values create the rounding shape. - Examples
-
h1 {border-top-right-radius: 10%;} h2 {border-top-right-radius: 1em 10px;}
border-top-style Inh. N Anim. N
- Values
-
none
|hidden
|dotted
|dashed
|solid
|double
|groove
|ridge
|inset
|outset
- Initial value
-
none
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines the style for the top border of an element. The value must be something other than
none
orhidden
for any border to appear. - Examples
-
ul {border-top-style: solid;} h1 {border-top-style: dashed;}
border-top-width Inh. N Anim. Y
- Values
- Initial value
-
medium
- Computed value
-
An absolute length, or
0
if the style of the border isnone
orhidden
; otherwise, as declared - Applies to
-
All elements
- Description
-
Defines the width for the top border of an element, which will take effect only if the border’s style is something other than
none
orhidden
. If the style isnone
, the width is effectively reset to0
. Negative length values are not permitted. - Examples
-
ul {border-top-width: 0.5in;} h1 {border-top-width: 1px;}
border-width Inh. N Anim. Y
- Values
- Initial value
-
See individual properties
- Computed value
-
See individual properties (
border-top-style
, etc.) - Applies to
-
All elements
- Description
-
A shorthand property that defines the width for the overall border of an element or for each side individually. The width will take effect for a given border only if the border’s style is something other than
none
orhidden
. If the border style isnone
, the border width is effectively reset to0
. Negative length values are not permitted. - Examples
-
h1 {border-width: 2ex;} img {border-width: 5px thick thin 1em;}
bottom Inh. N Anim. P
- Values
- Initial value
-
auto
- Computed value
-
For static elements,
auto
; for length values, the corresponding absolute length; for percentage values, the specified value; otherwise,auto
- Percentages
-
Refer to the height of the containing block
- Applies to
-
Positioned elements
- Animatable
-
<length> and <percentage> values only
- Description
-
Defines the offset between the bottom outer margin edge of a positioned element and the bottom edge of its containing block. For relatively positioned elements, if both
bottom
andtop
areauto
, their computed values are both0
; if one of them isauto
, it becomes the negative of the other; if neither isauto
,bottom
will become the negative of the value oftop
. - Examples
-
div#footer {position: fixed; bottom: 0;} sup {position: relative; bottom: 0.5em; vertical-align: baseline;}
box-decoration-break Inh. N Anim. N
- Values
- Initial value
-
slice
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines whether the decorations—the background, padding, borders, rounded corners, border image, and box shadow—of a box that has been rendered in multiple pieces are applied to each piece separately or applied to the entire box before it is broken apart.
The most common case is an inline element that wraps across one or more line breaks. With the default behavior,
slice
, the pieces of the inline element are drawn as though the whole element was laid out in a single line and then sliced apart at each line break. Ifclone
is declared, then each piece of the element is decorated as though they were separate elements sharing the same styles.box-decoration-break
also applies to block boxes that are split across columns or pages. - Examples
-
span {box-decoration-break: clone;} a {box-decoration-break: slice;}
box-shadow Inh. N Anim. Y
- Values
- Initial value
-
none
- Computed value
-
<length> values as absolute length values; <color> values as computed internally; otherwise, as declared
- Applies to
-
All elements
- Description
-
Defines one or more shadows that are derived from the shape of the element box. Either outset (“drop”) shadows or inset shadows can be defined, the latter with use of the optional
inset
keyword. Without that keyword, the shadow will be outset.The four length values that can be declared are, in order: horizontal offset, vertical offset, blur distance, and spread distance. When positive, the offset values go down and to the right; when negative, they go back and to the left. Positive spread values increase the size of the shadow and negative values contract it. Blur values cannot be negative.
Note that all shadows are clipped by the element’s border edge. Thus, an outset shadow is only drawn outside the border edge. A semitransparent or fully transparent element background will not reveal an outset shadow “behind” the element. Similarly, inset shadows are only visible inside the border edge and are never drawn beyond it.
- Examples
-
h1 {box-shadow: 5px 10px gray;} table th {box-shadow: inset 0.5em 0.75em 5px −2px rgba(255,0,0,0.5);}
box-sizing Inh. N Anim. N
- Values
- Initial value
-
content-box
- Computed value
-
As declared
- Applies to
-
All elements that accept
width
orheight
values - Description
-
Defines whether the
height
andwidth
of the element define the dimensions of the content box (the historical behavior) or the border box. If the latter, the value ofwidth
defines the distance from the left outer border edge to the right outer border edge; similarly,height
defines the distance from the top outer border edge to the bottom outer border edge. Any padding or border widths are “subtracted” from those dimensions instead of the historical “additive” behavior. Thus, given:body {box-sizing: border-box; width: 880px; padding: 0 20px;}
the final width of the content area will be 840 pixels (880–20–20).
- Example
-
body {box-sizing: padding-box;}
caption-side Inh. Y Anim. N
- Values
- Initial value
-
top
- Computed value
-
As declared
- Applies to
-
Elements with the
display
valuetable-caption
- Description
-
Defines the placement of a table caption with respect to the table box. The caption is rendered as though it were a block-level element placed just before (or after) the table.
- Example
-
caption {caption-side: top;}
- Note
-
The values
left
andright
appeared in CSS2 but were later dropped due to a lack of widespread support.
clear Inh. N Anim. N
- Values
- Initial value
-
none
- Computed value
-
As declared
- Applies to
-
Block-level elements
- Description
-
Defines to which side (or sides) of an element no floating element may be placed. If normal layout of a cleared element would result in a floated element appearing on the cleared side, the cleared element is pushed down until it sits below (clears) the floated element. In CSS1 and CSS2, this is accomplished by automatically increasing the top margin of the cleared element. In CSS2.1, clearance space is added above the element’s top margin, but the margin itself is not altered. In either case, the end result is that the element’s top outer border edge is just below the bottom outer margin edge of a floated element on the declared side.
- Examples
-
h1 {clear: both;} p + h3 {clear: right;}
clip-path Inh. N Anim. P
- Values
-
none
| <uri> | [ [inset()
|circle()
|ellipse()
|polygon()
] ‖ [border-box
|padding-box
|content-box
|margin-box
|fill-box
|stroke-box
|view-box
] ] - Initial value
-
none
- Computed value
-
As declared
- Applies to
-
All elements (in SVG, applies to all graphics elements and all container elements except the
defs
element) - Animatable
-
inset()
,circle()
,ellipse()
, andpolygon()
values - Description
-
Defines a clipping shape inside of which an element is visible, and outside of which it is invisible.
url()
values can be used to refer to an SVG file or an SVGclipPath
element to be used as the clipping shape. - Examples
-
p.clipped {clip-path: url(shapes.svg#cloud02);} p.rounded {clip-path: ellipse(100px 50px at 75% 25%);} p.diamond {clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);}
clip-rule Inh. N Anim. N
- Values
- Initial value
-
nonzero
- Computed value
-
As declared
- Applies to
-
All SVG graphics elements (
circle
,ellipse
,image
,line
,path
,polygon
,polyline
,rect
,text
, anduse
) if and only if they are children of aclipPath
element - Description
-
Alters the way in which portions of a path that overlap each other cause the resulting shape to be filled. A
nonzero
rule causes the entire shape to be filled.evenodd
can result in portions of the shape’s interior being fully transparent. - Examples
-
span.fullshape {clip-rule: nonzero;} span.knockouts {clip-rule: evenodd;}
color Inh. Y Anim. Y
- Values
- Initial value
-
User agent–specific
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines the foreground color of an element, which in HTML rendering means the text of an element; raster images are not affected by
color
. This is also the color applied to any borders of the element, unless overridden byborder-color
or one of the other border color properties (border-top-color
, etc.).For color keywords (such as
navy
) and RGB hex values (such as#008800
or#080
), the computed value is thergb()
equivalent. Fortransparent
, the computed value isrgba(0,0,0,0)
; forcurrentColor
, the computed value isinherit
. For all other values, the computed value is the same as the declared value. - Examples
-
strong {color: rgb(255,128,128);} h3 {color: navy;} p.warning {color: #ff0000;} pre.pastoral {color: rgba(0%,100%,0%,0.33334);}
content Inh. N Anim. N
- Values
-
normal
| [ <string> | <uri> | <counter> |attr(
<identifier>)
|open-quote
|close-quote
|no-open-quote
|no-close-quote
]+ - Initial value
-
normal
- Computed value
-
For <uri> values, an absolute URI; for attribute references, the resulting string; otherwise, as declared
- Applies to
-
::before
and::after
pseudo-elements - Description
-
Defines the generated content placed before or after an element. By default, this is likely to be inline content, but the type of box the content creates can be defined using the property
display
. - Examples
-
p::before {content: "Paragraph...";} a[href]::after {content: "(" attr(href) ")"; font-size: smaller;}
counter-increment Inh. N Anim. N
- Values
- Initial value
-
User agent–dependent
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
With this property, counters can be incremented (or decremented) by any value, positive or negative or
0
. If no <integer> is supplied, it defaults to1
. - Examples
-
h1 {counter-increment: section;} *.backward li {counter-increment: counter −1;}
counter-reset Inh. N Anim. N
- Values
- Initial value
-
User agent–dependent
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
With this property, counters can be reset (or set for the first time) to any value, positive or negative. If no <integer> is supplied, it defaults to
0
. - Examples
-
h1 {counter-reset: section;} h2 {counter-reset: subsec 1;}
cursor Inh. Y Anim. N
- Values
-
[ <uri> [ <number> <number> ]?,]* [
auto
|default
|none
|context-menu
|help
|pointer
|progress
|wait
|cell
|crosshair
|text
|vertical-text
|alias
|copy
|move
|no-drop
|not-allowed
|e-resize
|n-resize
|ne-resize
|nw-resize
|s-resize
|se-resize
|sw-resize
|w-resize
|ew-resize
|ns-resize
|nesw-resize
|nwse-resize
|col-resize
|row-resize
|all-scroll
] - Initial value
-
auto
- Computed value
-
For <uri> values, given that a <uri> resolves to a supported file type, a single absolute URI with optional x,y coordinates; otherwise, as declared
- Applies to
-
All elements
- Description
-
Defines the cursor shape to be used when a mouse pointer is placed within the boundary of an element. Authors are cautioned to remember that users are typically very aware of cursor changes and can be easily confused by changes that seem counterintuitive. For example, making any noninteractive element switch the cursor state to
pointer
is quite likely to cause user frustration.Note that the value syntax makes URI values optional, but the keyword mandatory. Thus, you can specify any number of URIs to external cursor resources, but the value must end with a keyword. Leaving off the keyword will cause conforming user agents to drop the declaration entirely.
CSS3 allows two numbers to be supplied with a <uri> value. These define the x,y coordinates of the cursor’s “active point”; that is, the point in the cursor that is used for determining hover states, active actions, and so forth. If no numbers are supplied and the cursor image has no “intrinsic hotspot” (to quote the specification), the top-left corner of the image is used (equivalent to
0 0
). Note that the numbers are unitless and are interpreted relative to the “cursor’s coordinate system” (to quote again). - Examples
-
a.moreinfo {cursor: help;} a[href].external {cursor: url(globe.png), auto;}
direction Inh. Y Anim. Y
- Values
- Initial value
-
ltr
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines the base writing direction of blocks and the direction of embeddings and overrides for the Unicode Bidirectional Algorithm (sometimes called bidi). Furthermore, it changes the way a number of properties and layout decisions are handled, including but not limited to the placement of table cells in a table row and the layout algorithms for block boxes.
For a variety of reasons, authors are strongly encouraged to use the HTML attribute
dir
rather than the CSS propertydirection
. User agents that do not support bidirectional text are permitted to ignore this property. - Examples
-
*:lang(en) {direction: ltr;} *:lang(ar) {direction: rtl;}
display Inh. N Anim. N
- Values
-
[ <display-outside> ‖ <display-inside> ] | <display-listitem> | <display-internal> | <display-box> | <display-legacy>
- Definitions
- <display-outside>
-
block
|inline
|run-in
- <display-inside>
-
flow
|flow-root
|table
|flex
|grid
|ruby
- <display-listitem>
-
list-item
&& <display-outside>? && [flow
|flow-root
]?
- <display-internal>
-
table-row-group
|table-header-group
|table-footer-group
|table-row
|table-cell
|table-column-group
|table-column
|table-caption
|ruby-base
|ruby-text
|ruby-base-container
|ruby-text-container
- <display-box>
-
contents
|none
- <display-legacy>
-
inline-block
|inline-list-item
|inline-table
|inline-flex
|inline-grid
- Initial value
-
inline
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines the kind of display box an element generates during layout. Gratuitous use of
display
with a document type such as HTML can be tricky, as it upsets the display hierarchy already defined in HTML, but it can also be very useful. In the case of XML, which has no such built-in visual hierarchy,display
is indispensable.The value
none
is often used to make elements “disappear,” since it removes the element and all of its descendant elements from the presentation. This is true not just in visual media, but in all media; thus, setting an element todisplay: none
will prevent it from being spoken by a speaking browser.The value
run-in
was long a part of CSS2.1 but was dropped in early 2011 because of inconsistencies among browsers. Despite this, it is still listed as part of CSS3. - Examples
-
h1 {display: block;} li {display: list-item;} img {display: inline;} .hide {display: none;} tr {display: table-row;}
empty-cells Inh. Y Anim. N
- Values
- Initial value
-
show
- Computed value
-
As declared
- Applies to
-
Elements with the
display
valuetable-cell
- Description
-
Defines the presentation of table cells that contain no content. If shown, the cell’s borders and background are drawn. This property is only honored if
border-collapse
is set toseparate
; otherwise, it is ignored. - Example
-
th, td {empty-cells: show;}
- Note
-
empty-cells
has no effect unless the value ofborder-collapse
isseparate
.
filter Inh. N Anim. Y
- Values
-
[
none
|blur()
|brightness()
|contrast()
|drop-shadow()
|grayscale()
|hue-rotate()
|invert()
|opacity()
|sepia()
|saturate()
|url()
]# - Initial value
-
none
- Computed value
-
As declared
- Applies to
-
All elements (in SVG, applies to all graphics elements and all container elements except the
defs
element) - Description
-
Applies a visual filter to the element, resulting in an alteration of its final appearance.
url()
values point tofilter
elements in SVG files, either externally or embedded within the HTML document. SVG filters can be quite complex and powerful. - Examples
-
img.oldschool {filter: sepia(0.9);} h2.glowshadow {filter: drop-shadow(0 0 0.5em yellow) drop-shadow(0.5em 0.75em 30px gray);} div.logo {filter: url(/assets/filters.svg#spotlight);}
flex Inh. N Anim. P
- Values
- Initial value
-
0 1 auto
- Computed value
-
Refer to individual properties
- Percentages
-
Valid for the
flex-basis
value only, relative to the element’s parent’s inner main axis size - Applies to
-
Flex items (children of flex containers)
- Animatable
-
Refer to individual flex properties to see which are animatable
- Description
-
A shorthand property encompassing the
flex-grow
,flex-shrink
, andflex-basis
properties, used to set the proportion and types of flexibility permitted for a flex item. The minimum valid value is a flex basis on its own, in which case the growth and shrink factors are set to their defaults of0
and1
, respectively. Including the growth and shrink factors is optional, but if one is included, the other must also be present. - Examples
-
/* sets grow at 1, shrink at 0, basis at auto */ nav ul li {flex: 1 0 auto;} /* sets grow at 0, shrink at 1, basis at 50% */ ol.gallery li {flex: 50%;} #invalid {flex: 1 33.%;} /* INVALID */
- Note
-
It is strongly recommended that authors use this property instead of the separate properties it encompasses.
flex-basis Inh. N Anim. P
- Values
- Initial value
-
auto
- Computed value
-
As declared, with length values made absolute
- Percentages
-
Relative to the flex container’s inner main axis size
- Applies to
-
Flex items (children of flex containers)
- Animatable
-
<length> and <percentage> values only
- Description
-
Defines the initial size of a flex item, used as a basis for all subsequent flex sizing calculations. This can override an explicitly assigned
width
value for the element. - Examples
-
nav ul li {flex-basis: 50%;} ol.gallery li {flex-basis: 300px;} div span.whatevs {flex-basis: auto;}
- Note
-
It is strongly recommended that instead of this property, authors use the
flex
shorthand property to set an item’s flex basis.
flex-direction Inh. N Anim. N
- Values
- Initial value
-
row
- Computed value
-
As declared
- Applies to
-
Flex containers
- Description
-
Defines the direction in which flex items will be flowed into the flex container, which in turn defines how the flex lines will fill the flex container.
- Examples
-
div.gallery {display: flex; flex-direction: row;} section.appetizers {display: flex; flex-direction: column;}
flex-flow Inh. N Anim. N
- Values
- Initial value
-
row nowrap
- Computed value
-
As declared
- Applies to
-
Flex containers
- Description
-
A shorthand property encompassing the
flex-direction
andflex-wrap
properties. Note that the default wrapping value isnowrap
(seeflex-wrap
). - Examples
-
div.gallery {display: flex; flex-flow: row wrap;} nav.sidenav {display: flex; flex-flow: column nowrap;}
flex-grow Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
As declared
- Applies to
-
Flex items (children of flex containers)
- Description
-
Sets the growth factor for a flex item. The value supplied is summed up with all the growth factors of the other flex items in the same flex line, and the amount they grow is scaled in proportion to their growth factors as a percentage of the whole.
- Examples
-
nav ul li {flex-grow: 1;} ol.gallery li {flex-grow: 0;} /* NO growing */ div span.whatevs {flex-grow: 0.5;}
- Note
-
It is strongly recommended that instead of this property, authors use the
flex
shorthand property to set an item’s flex growth factor.
flex-shrink Inh. N Anim. Y
- Values
- Initial value
-
1
- Computed value
-
As declared
- Applies to
-
Flex items (children of flex containers)
- Description
-
Sets the shrink factor for a flex item. The value supplied is summed up with all the shrink factors of the other flex items in the same flex line, and the amount they shrink is scaled proportional to their shrink factors as a percentage of the whole.
- Examples
-
nav ul li {flex-shrink: 0;} /* NO shrinking */ ol.gallery li {flex-shrink: 0.5;} div span.whatevs {flex-shrink: 1;}
- Note
-
It is strongly recommended that instead of this property, authors use the
flex
shorthand property to set an item’s flex shrink factor.
flex-wrap Inh. N Anim. N
- Values
- Initial value
-
nowrap
- Computed value
-
As declared
- Applies to
-
Flex containers
- Description
-
Defines whether flex items can wrap to multiple flex lines, or only a single flex line is allowed. In a way, it is analogous to
white-space
wrapping in text content. Note, however, that the default isnowrap
, so flex items will keep going in a single line (either a row or a column) even if that means they continue outside the flex container. If you want your flex items to wrap to a new flex line when they run out of room (as in an image gallery), make sure towrap
them. - Examples
-
div.gallery {display: flex; flex-wrap: wrap;} nav.sidenav {display: flex; flex-wrap: nowrap;}
float Inh. N Anim. N
- Values
- Initial value
-
none
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines the direction in which an element is floated. This has traditionally been applied to images in order to let text flow around them, but in CSS, any element may be floated. A floated element will generate a block-level box no matter what kind of element it may be. Floated nonreplaced elements should be given an explicit width, as they otherwise tend to become as narrow as possible. Floating is generally well supported by all browsers, but the nature of floats can lead to unexpected results when they are used as a page layout mechanism. This is largely due to subtle differences in the interpretation of statements like “as narrow as possible.”
- Examples
-
img.figure {float: left;} p.sidebar {float: right; width: 15em;}
font Inh. Y Anim. P
- Values
-
[[ <font-style> ‖ [
normal
|small-caps
] ‖ <font-weight> ]? <font-size> [/
<line-height> ]? <font-family>] |caption
|icon
|menu
|message-box
|small-caption
|status-bar
- Initial value
-
Refer to individual properties
- Computed value
-
See individual properties (
font-style
, etc.) - Percentages
-
Calculated with respect to the parent element for <font-size> and with respect to the element’s <font-size> for <line-height>
- Applies to
-
All elements
- Animatable
-
Refer to individual font properties to see which are animatable
- Description
-
A shorthand property used to set all the aspects of an element’s font at once. It can also be used to set the element’s font to match an aspect of the user’s computing environment using keywords such as
icon
. If keywords are not used, the minimum font value must include the font size and family in that order, and any font value that is not a keyword must end with the font family. Otherwise, the font declaration will be ignored. - Examples
-
p {font: small-caps italic bold small/ 1.25em Helvetica,sans-serif;} p.example {font: 14px Arial;} /* technically correct, although generic font-families are encouraged for fallback purposes */ .figure span {font: icon;}
font-family Inh. Y Anim. N
- Values
- Initial value
-
User agent–specific
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines a font family to be used in the display of an element’s text. Note that use of a specific font family (e.g., Geneva) is wholly dependent on that family being available, either on the user’s computer or thanks to a downloadable font file, and the font family containing the glyphs needed to display the content. Therefore, using generic family names as a fallback is strongly encouraged. Font names that contain spaces or nonalphabetic characters should be quoted to minimize potential confusion. In contrast, generic fallback family names should never be quoted.
- Examples
-
p {font-family: Helvetica, Arial, sans-serif;} li {font-family: Georgia, Times, TimesNR, "New Century Schoolbook", serif;} pre {font-family: Consolas, "Courier New", "Andale Mono", Monaco, monospace;}
font-feature-settings Inh. Y Anim. N
- Values
- Initial value
-
normal
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Used to turn font features on and off; examples include ligatures, old-style numbers, and more. Whether a font feature actually can be enabled depends entirely on the font face being used: turning ligatures on or off can only work if the face has defined ligatures in the first place.
- Examples
-
h1 {font-feature-settings: "liga";} ol {font-feature-settings: "liga" on, "smcp" on, "zero" on;}
- Note
-
Has a corresponding
@font-face
descriptor.
font-kerning Inh. Y Anim. N
- Values
- Initial value
-
auto
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
In effect, allows the author to disable kerning of text for a given element. The default of
auto
tells user agents to do what they normally do, whatever that is.normal
directs the user agent to use any kerning information in the font face to kern text, even if it normally wouldn’t. Withnone
, kerning is disabled, even if the face has kerning information and the user agent would make use of it. Note that kerning is done before any letter spacing is altered (seeletter-spacing
). - Examples
-
body {kerning: normal;} div.typewriter {kerning: none;}
- Note
-
Has a corresponding
@font-face
descriptor.
font-size Inh. Y Anim. P
- Values
-
xx-small
|x-small
|small
|medium
|large
|x-large
|xx-large
|smaller
|larger
| <length> | <percentage> - Initial value
-
medium
- Computed value
-
For length values, the absolute length; otherwise, as declared
- Percentages
-
Calculated with respect to the parent element’s font size
- Applies to
-
All elements
- Animatable
-
<length> and <percentage> values only
- Description
-
Defines the size of the font. The size can be defined as an absolute size, a relative size, a length value, or a percentage value. Negative length and percentage values are not permitted. The dangers of font size assignment are many and varied, and use of points is particularly discouraged in web design as there is no certain relationship between points and the pixels on a screen. It’s a matter of historical interest that because of early misunderstandings, setting the
font-size
tomedium
led to different results in early versions of Internet Explorer and Navigator 4.x. - Examples
-
h2 {font-size: 200%;} code {font-size: 0.9em;} p.caption {font-size: 9px;}
font-size-adjust Inh. Y Anim. Y
- Values
- Initial value
-
none
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines an aspect value for the element, which is used to scale fonts such that they more closely match each other in cases where fallback fonts are used. The proper aspect value for a font is its true x-height divided by its font size.
- Examples
-
body {font-family: Helvetica, sans-serif; font-size-adjust: 0.53;}
font-stretch Inh. Y Anim. N
- Values
-
normal
|ultra-condensed
|extra-condensed
|condensed
|semi-condensed
|semi-expanded
|expanded
|extra-expanded
|ultra-expanded
- Initial value
-
normal
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Replaces a given font face with a narrower or wider variant, but only if the face has narrower or wider variants defined. User agents will not programmatically stretch or squeeze a face, but only swap in a variant face (if it exists).
- Examples
-
h1.bigtext {font-stretch: ultra-expanded;} caption.meme {font-stretch: condensed;}
- Note
-
Has a corresponding
@font-face
descriptor.
font-style Inh. Y Anim. N
- Values
- Initial value
-
normal
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines whether the font uses an italic, oblique, or normal font face. Italic text is generally defined as a separate face within the font family. It is theoretically possible for a user agent to compute a slanted font face from the normal face. In reality, user agents rarely (if at all) recognize the difference between italic and oblique text and almost always render both in exactly the same way.
- Examples
-
em {font-style: oblique;} i {font-style: italic;}
- Note
-
Has a corresponding
@font-face
descriptor.
font-synthesis Inh. Y Anim. N
- Values
- Initial value
-
weight style
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines whether user agents are permitted to programmatically generate bold or italic variants for fonts that don’t have bold or italic faces. This is generally frowned upon by typographers, and the results can be visually displeasing, but it does permit visual emphasis of text in font families that lack the necessary faces. If you don’t want to risk it, use
none
to suppress this behavior. - Examples
-
h1 {font-synthesis: none;} pre code {font-synthesis: style;}
font-variant Inh. Y Anim. N
- Values (CSS2.1)
- Values (Level 3)
-
normal
|none
| [ <common-lig-values> ‖ <discretionary-lig-values> ‖ <historical-lig-values> ‖ <contextual-alt-values> ‖stylistic(
<feature-value-name>)
‖historical-forms
‖styleset
(<feature-value-name>#)
‖character-variant(
<feature-value-name>#)
‖swash(
<feature-value-name>)
‖ornaments(
<feature-value-name>)
‖annotation(
<feature-value-name>)
‖ [small-caps
|all-small-caps
|petite-caps
|all-petite-caps
|unicase
|titling-caps
] ‖ <numeric-figure-values> ‖ <numeric-spacing-values> ‖ <numeric-fraction-values> ‖ordinal
‖slashed-zero
‖ <east-asian-variant-values> ‖ <east-asian-width-values> ‖ruby
] - Initial value
-
normal
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines whether text is set in the small-caps style. It is theoretically possible for a user agent to compute a small-caps font face from the normal face.
- Examples
-
h3 {font-variant: small-caps;} p {font-variant: normal;}
- Note
-
Has a corresponding
@font-face
descriptor.
font-weight Inh. Y Anim. N
- Values
-
normal
|bold
|bolder
|lighter
|100
|200
|300
|400
|500
|600
|700
|800
|900
- Initial value
-
normal
- Computed value
-
One of the numeric values (
100
, etc.), or one of the numeric values plus one of the relative values (bolder
orlighter
) - Applies to
-
All elements
- Description
-
Defines the font weight used in rendering an element’s text. The numeric value
400
is equivalent to the keywordnormal
, and700
is equivalent tobold
. If a font has only two weights—normal and bold—the numbers 100 through 500 will be normal, and 600 through 900 will be bold. In general terms, the visual result of each numeric value must be at least as light as the next lowest number and at least as heavy as the next highest number. - Examples
-
b {font-weight: 700;} strong {font-weight: bold;} .delicate {font-weight: lighter;}
- Note
-
Has a corresponding
@font-face
descriptor.
grid Inh. N Anim. N
- Values
-
none
|subgrid
| [ <grid-template-rows>/
<grid-template-columns> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [/
<track-list> ]? | [ <grid-auto-flow> [ <grid-auto-rows> [/
<grid-auto-columns> ]? ]? ] ] - Initial value
-
See individual properties
- Computed value
-
See individual properties
- Applies to
-
Grid containers
- Description
-
A shorthand property allowing the almost complete definition of an element’s grid system, not counting grid gaps. The value syntax can become quite complex and, for clarity’s sake, most authors rely on the individual properties instead of
grid
, but there are no technical reasons to avoidgrid
. - Example
-
body {display: grid; grid: "header header header header" 3em ". content sidebar ." 1fr "footer footer footer footer" 5em / 2em 3fr minmax(10em,1fr) 2em;}
grid-area Inh. N Anim. N
- Values
- Initial value
-
See individual properties
- Computed value
-
As declared
- Applies to
-
Grid items and absolutely positioned elements, if their containing block is a grid container
- Description
-
Used to assign a grid item to a specific area of a defined grid. This can be done using a single identifier, or using slash-separated grid line identifiers. If all four grid lines are supplied, they are given in the order row-start (top) / column-start (left) / row-end (bottom) / column-end (right), which is the reverse of the usual top-right-bottom-left order for margins, padding, and so on.
- Examples
-
#masthead {grid-area: header;} #sidebar {grid-area: 1 / 2 / 1 / 3;}
grid-auto-columns Inh. N Anim. N
- Values
- Definition
- <track-breadth>
-
<length> | <percentage> | <flex> |
min-content
|max-content
|auto
- Initial value
-
auto
- Computed value
-
Depends on the specific track sizing
- Applies to
-
Grid containers
- Description
-
Defines the sizing of column tracks for columns that are automatically generated; that is, columns that are created because a grid item needs to be placed outside the explicitly defined grid columns.
- Example
-
div.grid {display: grid; grid-template-rows: 80px 80px; grid-template-columns: 20em 1fr; grid-auto-columns: 20em;}
grid-auto-flow Inh. N Anim. N
- Values
- Initial value
-
row
- Computed value
-
As declared
- Applies to
-
Grid containers
- Description
-
Defines the direction in which grid items that have not been explicitly assigned to a grid area using
grid-area
or thegrid-column
andgrid-row
properties will be automatically flowed into the grid container. - Examples
-
section.menu {grid-auto-flow: column;} div.gallery {grid-auto-flow: row dense;}
grid-auto-rows Inh. N Anim. N
- Values
- Definition
- <track-breadth>
-
<length> | <percentage> | <flex> |
min-content
|max-content
|auto
- Initial value
-
auto
- Computed value
-
Depends on the specific track sizing
- Applies to
-
Grid containers
- Description
-
Defines the sizing of row tracks for rows that are automatically generated; that is, rows that are created because a grid item needs to be placed outside the explicitly defined grid rows.
- Example
-
div.grid {display: grid; grid-template-rows: 80px 80px; grid-template-columns: 20em 1fr; grid-auto-rows: 80px;}
grid-column Inh. N Anim. N
- Values
- Definition
- <grid-line>
-
auto
| <identifier> | [ <integer> && <identifier>? ] | [span
&& [ <integer> || <identifier> ] ] - Initial value
-
auto
- Computed value
-
As declared
- Applies to
-
Grid items and absolutely positioned elements, if their containing block is a grid container
- Description
-
Acts as a shorthand property encompassing the
grid-column-start
andgrid-column-end
properties. When a single number or identifier is given, the second is assumed to be thespan 1
(for a number) or the same identifier. Negative numeric grid lines count backward from the end of the explicit grid (generally the right side). - Examples
-
header {grid-column: 1 / -1;} #sidebar {grid-column: 1 / span 2;} footer {grid-column: footer / 4;}
grid-column-end Inh. N Anim. N
- Values
-
auto
| <custom-ident> | [ <integer> && <custom-ident>? ] | [span
&& [ <integer> ‖ <custom-ident> ]] - Initial value
-
auto
- Computed value
-
As declared
- Applies to
-
Grid items and absolutely positioned elements, if their containing block is a grid container
- Description
-
Defines the column grid line on which an element’s layout ends, or (when using the
span
keyword) the number of column tracks, or identified column tracks, the element spans. - Examples
-
header {grid-column-end: main-content;} #sidebar {grid-column-end: span 2;} footer {grid-column-end: 4;}
grid-column-gap Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
An absolute length
- Applies to
-
Grid containers
- Description
-
Sets a gap distance between column tracks. This permits an author to force open gaps between column tracks, even when the grid items have no margins to push them away from each other. The gap size is the same for all column gaps.
- Example
-
#grid {display: grid; grid-column-gap: 1em;}
- Note
-
As of early 2018, the CSS Working Group intends to change this property to simply
column-gap
and have it apply to multicolumn and flex containers as well as grid containers.
grid-column-start Inh. N Anim. N
- Values
-
auto
| <custom-ident> | [ <integer> && <custom-ident>? ] | [span
&& [ <integer> ‖ <custom-ident> ]] - Initial value
-
auto
- Computed value
-
As declared
- Applies to
-
Grid items and absolutely positioned elements, if their containing block is a grid container
- Description
-
Defines the column grid line on which an element’s layout starts, by means of either a grid line number or an identifier. If the
span
keyword is used, the grid item spans back from the grid line defined bygrid-column-end
. - Examples
-
header {grid-column-start: masthead;} #sidebar {grid-column-start: span 1;} footer {grid-column-start: -2;}
grid-gap Inh. N Anim. Y
- Values
- Initial value
-
0 0
- Computed value
-
As declared
- Applies to
-
Grid containers
- Description
-
A shorthand property encompassing the
grid-row-gap
andgrid-column-gap
properties, in that order. If only one value is supplied, the value is assumed to be the same for both row and column gaps. - Examples
-
#grid {display: grid; grid-gap: 12px 1em;} div.gallery {display: grid; grid-gap: 2.5vw;}
- Note
-
As of early 2018, the CSS Working Group intends to change this property to simply
gap
and have it apply to multicolumn and flex containers as well as grid containers.
grid-row Inh. N Anim. N
- Values
- Definition
- <grid-line>
-
auto
| <identifier> | [ <integer> && <identifier>? ] | [span
&& [ <integer> || <identifier> ] ] - Initial value
-
auto
- Computed value
-
As declared
- Applies to
-
Grid items and absolutely positioned elements, if their containing block is a grid container
- Description
-
Acts as a shorthand property encompassing the
grid-row-start
andgrid-row-end
properties. When a single number or identifier is declared, the second is assumed to be thespan 1
(for a number) or the same identifier. - Examples
-
#sidebar {grid-row: 1 / -1;} footer {grid-row: footer-start / footer-end;} header {grid-row: top;} /* a trailing '/ span 1' is assumed */
grid-row-end Inh. N Anim. N
- Values
-
auto
| <custom-ident> | [ <integer> && <custom-ident>? ] | [span
&& [ <integer> ‖ <custom-ident> ]] - Initial value
-
auto
- Computed value
-
As declared
- Applies to
-
Grid items and absolutely positioned elements, if their containing block is a grid container
- Description
-
Defines the row grid line on which an element’s layout ends, or (when using the
span
keyword) the number of row tracks, or identified row tracks, the element spans across. - Examples
-
header {grid-row-end: span 1;} #sidebar {grid-row-end: -1;} footer {grid-row-end: footer-end;}
grid-row-gap Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
An absolute length
- Applies to
-
Grid containers
- Description
-
Sets a gap distance between row tracks. This permits an author to force open gaps between row tracks, even when the grid items have no margins to push them away from each other. The gap size is the same for all row gaps.
- Example
-
#grid {display: grid; grid-row-gap: 12px;}
- Note
-
As of early 2018, the CSS Working Group intends to change this property to simply
row-gap
and have it apply to multicolumn and flex containers as well as grid containers.
grid-row-start Inh. N Anim. N
- Values
-
auto
| <custom-ident> | [ <integer> && <custom-ident>? ] | [span
&& [ <integer> ‖ <custom-ident> ]] - Initial value
-
auto
- Computed value
-
As declared
- Applies to
-
Grid items and absolutely positioned elements, if their containing block is a grid container
- Description
-
Defines the row grid line on which an element’s layout starts, by means of either a grid line number or an identifier. If the
span
keyword is used, this means the grid item spans back from the grid line defined bygrid-row-end
. - Examples
-
header {grid-row-start: masthead;} #sidebar {grid-row-start: span 1;} footer {grid-row-start: footer-start;}
grid-template-areas Inh. N Anim. N
- Values
- Initial value
-
none
- Computed value
-
As declared
- Applies to
-
Grid containers
- Description
-
This property allows the author to create an explicit grid system using strings of text to define the names and placement of grid areas. This allows for a much more visual representation of the grid areas in a grid container, and automatically creating named grid lines to make the grid areas work. Because the areas are defined using patterns of text, no areas defined with this property can overlap.
- Examples
-
#grid {display: grid; grid-template-areas: "h h h h" "l c c r" "l f f f";} #grid2 {display: grid; grid-template-areas: "header header header header" "leftside content content rightside" "leftside footer footer footer";}
grid-template-columns Inh. N Anim. N
- Values
- Initial value
-
none
- Computed value
-
As declared, with lengths made absolute
- Percentages
-
Refer to the inline size (usually width) of the grid container
- Applies to
-
Grid containers
- Description
-
Provides authors a way to define grid line names and track sizes for columns in the explicit grid.
- Examples
-
aside {grid-template-columns: max-content min-content max-content;} article {grid-template-columns: 15em 4.5fr 3fr 10%;} section {grid-template-columns: [start col-a] 200px [col-b] 50% [col-c] 1fr [stop end last];}
grid-template-rows Inh. N Anim. N
- Values
- Initial value
-
none
- Computed value
-
As declared, with lengths made absolute
- Percentages
-
Refer to the block size (usually height) of the grid container
- Applies to
-
Grid containers
- Description
-
Provides authors a way to define grid line names and track sizes for rows in the explicit grid.
- Examples
-
aside {grid-template-rows: 200px 50% 100px;} article {grid-template-rows: 3em minmax(5em,1fr) 2em;} section {grid-template-rows: [start masthead] 3em [content] calc(100%-5em) [footer] 2em [stop end];}
height Inh. N Anim. Y
- Values
- Initial value
-
auto
- Computed value
-
For
auto
and percentage values, as declared; otherwise, an absolute length, unless the property does not apply to the element (thenauto
) - Percentages
-
Calculated with respect to the height of the containing block (when valid)
- Applies to
-
All elements except nonreplaced inline elements, table rows, and row groups
- Description
-
Defines the total height of portions of an element; the exact portions depend on the value of
box-sizing
. Negative length and percentage values are not permitted. - Examples
-
img.icon {height: 50px;} h1 {height: 1.75em;}
hyphens Inh. Y Anim. N
- Values
- Initial value
-
manual
- Computed value
-
As declared
- Animatabale
-
No
- Applies to
-
All elements
- Description
-
Used to declare whether the hyphenation of words at line breaks must be done manually (e.g., with a “soft hyphen”—
­
orU+00AD
—inserted into the document) or can be done automatically by the user agent. In the case ofnone
, all hyphenation is suppressed, even when hinted manually in the document. Automatic hyphenation is heavily language-dependent, and may vary greatly between user agents. - Examples
-
h1, h2 {hyphens: none;} aside.poem {hyphens: manual;}
isolation Inh. N Anim. N
- Values
- Initial value
-
auto
- Computed value
-
As declared
- Applies to
-
All elements (in SVG, it applies to container elements, graphics elements, and graphics-referencing elements)
- Description
-
Determines whether an element creates an isolated blending context. An isolated element will only blend with itself; that is, the foreground portions of the element will blend with the background portions of that same element, but not with the backdrop of its parent element or any other elements that might appear behind it. The visual effect can be similar to that of a document loaded into an
iframe
element, though this analogy is not exact: the isolated element still inherits styles from its ancestors. - Example
-
p.alone {isolation: isolate;}
justify-content Inh. N Anim. N
- Values
-
flex-start
|flex-end
|center
|space-between
|space-around
|space-evenly
- Initial value
-
flex-start
- Conputed value
-
As declared
- Applies to
-
Flex containers
- Description
-
Defines the distribution of flex items along the main axis of a flex container.
- Examples
-
nav {justify-content: space-evenly;} div.gallery {justify-content: space-between;}
- Note
-
As of early 2018, there are plans to have this property apply to many (or all) elements, not just flex containers, and be given the values
start
andend
to replicateflex-start
andflex-end
behavior for non-flex environments.
left Inh. N Anim. P
- Values
- Initial value
-
auto
- Computed value
-
For static elements,
auto
; for length values, the corresponding absolute length; for percentage values, the specified value; otherwise,auto
- Percentages
-
Refer to the height of the containing block for top and bottom, and the width of the containing block for right and left
- Applies to
-
Positioned elements
- Animatable
-
<length> and <percentage> values only
- Description
-
Defines the offset between the left outer margin edge of an absolutely positioned element and the left edge of its containing block; or, for relatively positioned elements, the distance by which the element is offset to the right of its starting position.
- Examples
-
div#footer {position: fixed; left: 0;} *.hanger {position: relative; left: −25px;}
letter-spacing Inh. Y Anim. Y
- Values
- Initial value
-
normal
- Computed value
-
For length values, the absolute length; otherwise,
normal
- Applies to
-
All elements
- Description
-
Defines the amount of whitespace to be inserted between the character boxes of text. Because character glyphs are typically narrower than their character boxes, length values create a modifier to the usual spacing between letters. Thus,
normal
is (most likely) synonymous with0
. Negative length and percentage values are permitted and will cause letters to bunch closer together. - Examples
-
p.spacious {letter-spacing: 6px;} em {letter-spacing: 0.2em;} p.cramped {letter-spacing: −0.5em;}
line-break Inh. Y Anim. Y
- Values
- Initial value
-
auto
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Affects the wrapping of lines of text in CJK (Chinese-Japanese-Korean) text. The precise meanings of
loose
,normal
, andstrict
are left undefined, so the only solid expectation is thatloose
will use the “least restrictive” line-breaking,normal
will use the “most common” line-breaking, andstrict
will use the “most stringent” line-breaking. - Example
-
div.cjk {line-break: strict;}
line-height Inh. Y Anim. Y
- Values
- Initial value
-
normal
- Computed value
-
For length and percentage values, the absolute value; otherwise, as declared
- Percentages
-
Relative to the font size of the element
- Applies to
-
All elements (but see text regarding replaced and block-level elements)
- Description
-
This property influences the layout of line boxes. When applied to a block-level element, it defines the minimum (but not the maximum) distance between baselines within that element. When applied to an inline element, it is used to define the leading of that element.
The difference between the computed values of
line-height
andfont-size
(called “leading” in CSS) is split in half and added to the top and bottom of each piece of content in a line of text. The shortest box that can enclose all those pieces of content is the line box.A raw number value assigns a scaling factor, which is inherited instead of a computed value. Negative values are not permitted.
- Examples
-
p {line-height: 1.5em;} h2 {line-height: 200%;} ul {line-height: 1.2;} pre {line-height: 0.75em;}
list-style Inh. Y Anim. N
- Values
-
[ <list-style-type> ‖ <list-style-image> ‖ <list-style-position> ]
- Initial value
-
Refer to individual properties
- Computed value
-
See individual properties
- Applies to
-
Elements whose
display
value islist-item
- Description
-
A shorthand property that defines the marker type, whether a symbol or an image, and its (crude) placement. Because it applies to any element that has a
display
value oflist-item
, it will apply only toli
elements in ordinary HTML, although it can be applied to any element and subsequently inherited bylist-item
elements. - Examples
-
ul {list-style: square url(bullet3.gif) outer;} /* values are inherited by 'li' elements */ ol {list-style: upper-roman;}
list-style-image Inh. Y Anim. N
- Values
- Initial value
-
none
- Computed value
-
For <uri> values, the absolute URI; otherwise,
none
- Applies to
-
Elements whose
display
value islist-item
- Description
-
Specifies an image to be used as the marker on an ordered or unordered list item. The placement of the image with respect to the content of the list item can be crudely controlled using
list-style-position
. - Examples
-
ul {list-style-image: url(bullet3.gif);} ul li {list-style-image: url(\http://example.org/pix/checkmark.png);}
list-style-position Inh. Y Anim. N
- Values
- Initial value
-
outside
- Computed value
-
As declared
- Applies to
-
Elements whose
display
value islist-item
- Description
-
Defines the position of the list marker with respect to the content of the list item. Outside markers are placed some distance from the border edge of the list item, but the distance is not defined in CSS. Inside markers are treated as though they were inline elements inserted at the beginning of the list item’s content.
- Examples
-
li {list-style-position: outside;} ol li {list-style-position: inside;}
list-style-type Inh. Y Anim. N
- Values
-
disc
|circle
|square
|disclosure-open
|disclosure-closed
|decimal
|decimal-leading-zero
|arabic-indic
|armenian
|upper-armenian
|lower-armenian
|bengali
|cambodian
|khmer
|cjk-decimal
|devanagari
|gujarati
|gurmukhi
|georgian
|hebrew
|kannada
|lao
|malayalam
|mongolian
|myanmar
|oriya
|persian
|lower-roman
|upper-roman
|tamil
|telugu
|thai
|tibetan
|lower-alpha
|lower-latin
|upper-alpha
|upper-latin
|cjk-earthly-branch
|cjk-heavenly-stem
|lower-greek
|hiragana
|hiragana-iroha
|katakana
|katakana-iroha
|japanese-informal
|japanese-formal
|korean-hangul-formal
|korean-hanja-informal
|korean-hanja-formal
|simp-chinese-informal
|simp-chinese-formal
|trad-chinese-informal
|trad-chinese-formal
|ethiopic-numeric
| <string> |none
- Initial value
-
disc
- Computed value
-
As declared
- Applies to
-
Elements whose
display
value islist-item
- Description
-
Defines the type of marker system to be used in the presentation of a list. CSS3 provides a greatly expanded number of list types, but as of early 2018, support for these newer list types has some spotty parts. Use caution when using list types beyond those provided by CSS2.1.
There is no defined behavior for what happens when a list using an alphabetic ordering exceeds the letters in the list. For example, once an
upper-latin
list reaches “Z,” the specification does not say what the next bullet should be. (Two possible answers are “AA” and “ZA.”) This is the case regardless of the alphabet in use. Thus, there is no guarantee that different user agents will act consistently. - Examples
-
ul {list-style-type: square;} ol {list-style-type: lower-roman;}
margin Inh. N Anim. Y
- Values
- Initial value
-
Not defined
- Computed value
-
See individual properties
- Percentages
-
Refer to the width of the containing block
- Applies to
-
All elements
- Description
-
A shorthand property that defines the width of the overall margin for an element or sets distinct widths for the individual side margins. Vertically adjacent margins of block-level elements are collapsed, whereas inline elements effectively do not take top and bottom margins. The left and right margins of inline elements do not collapse, nor do margins on floated elements. Negative margin values are permitted, but caution is warranted because negative values can cause elements to overlap other elements or to appear to be wider than their parent elements.
- Examples
-
h1 {margin: 2ex;} p {margin: auto;} img {margin: 10px;}
margin-bottom Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
For length values, the absolute length; otherwise, as declared
- Percentages
-
Refer to the width of the containing block
- Applies to
-
All elements
- Description
-
Defines the width of the bottom margin for an element. Negative values are permitted, but caution is warranted (see
margin
). - Examples
-
ul {margin-bottom: 0.5in;} h1 {margin-bottom: 2%;}
margin-left Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
For length values, the absolute length; otherwise, as declared
- Percentages
-
Refer to the width of the containing block
- Applies to
-
All elements
- Description
-
Defines the width of the left margin for an element. Negative values are permitted, but caution is warranted (see
margin
). - Examples
-
p {margin-left: 5%;} pre {margin-left: 3em;}
margin-right Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
For length values, the absolute length; otherwise, as declared
- Percentages
-
Refer to the width of the containing block
- Applies to
-
All elements
- Description
-
Defines the width of the right margin for an element. Negative values are permitted, but caution is warranted (see
margin
). - Examples
-
img {margin-right: 30px;} ol {margin-right: 5em;}
margin-top Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
For length values, the absolute length; otherwise, as declared
- Percentages
-
Refer to the width of the containing block
- Applies to
-
All elements
- Description
-
Defines the width of the top margin for an element. Negative values are permitted, but caution is warranted (see
margin
). - Examples
-
ul {margin-top: 0.5in;} h3 {margin-top: 1.5em;}
mask Inh. N Anim. P
- Values
-
[ <mask-image> ‖ <mask-position> [
/
<mask-size> ]? ‖ <mask-repeat> ‖ <mask-clip> ‖ <mask-origin> ‖ <mask-composite> ‖ <mask-mode> ]# - Initial value
-
See individual properties
- Computed value
-
As declared
- Applies to
-
All elements (in SVG, applies to all graphics elements and all container elements except the
defs
element) - Animatable
-
Refer to individual mask properties to see which are animatable
- Description
-
A shorthand property encompassing all the other image masking properties. It is analogous to
background
as compared to the various background properties, and many of the masking and background properties share values and behaviors. - Examples
-
img.masked {mask: url(#mask) no-repeat center/cover luminance;} #example {mask: url(c.svg) repeat-y top left / auto subtract, url(s.png) no-repeat center / 50% 33% add, url(t.gif) repeat-y 25% 67% / contain add; }
mask-clip Inh. N Anim. N
- Values
-
[
content-box
|padding-box
|border-box
|margin-box
|fill-box
|stroke-box
|view-box
|no-clip
]# - Initial value
-
border-box
- Computed value
-
As declared
- Applies to
-
All elements (in SVG, applies to all graphics elements and all container elements except the
defs
element) - Description
-
Defines the outer edge of the visible portions of an element’s mask, as an aspect of the element’s box model. This allows authors to apply a masking shape to an element but then further reduce the visible parts of the element without having to directly alter the mask shape.
- Examples
-
p:nth-child(1) {mask-clip: border-box;} p:nth-child(2) {mask-clip: padding-box;} p:nth-child(3) {mask-clip: content-box;}
mask-composite Inh. N Anim. N
- Values
- Initial value
-
add
- Computed value
-
As declared
- Applies to
-
All elements (in SVG, applies to all graphics elements and all container elements except the
defs
element) - Description
-
Controls the way multiple masks are combined, with the result sometimes dependent on the order of the mask shapes. For example, if a square mask is atop a circular mask and the value of
mask-composite
issubtract
, then the circle is subtracted from the square. If the order is reversed so the circle is atop the square, then the square is subtracted from the circle. For the other values, the result should not depend on the masks’ stacking order. - Examples
-
img.masked {mask-composite: add;} span.mask3 {mask-composite: subtract, add, add;}
mask-image Inh. N Anim. N
- Values
- Definitions
- <image>
-
Any of the value types <uri>, <image()>, <image-set()>, <element()>, <cross-fade()>, or <gradient>
- <mask-source>
-
A
url()
that points to amask
element in an SVG image - Initial value
-
none
- Computed value
-
As declared
- Applies to
-
All elements (in SVG, applies to all graphics elements and all container elements except the
defs
element) - Description
-
Applies an image, or a portion of an SVG image, to an element as a masking shape. The result is that the masked element has portions of itself made invisible, while others are wholly or partially visible. The exact visual result will depend on the value of
mask-mode
; by default, the alpha channel of themask-image
will be used to determine the masking of the element. - Examples
-
*.masked.compass {mask-image: url(Compass.png);} *.masked.theatre {mask-image: url(theatre-masks.svg);}
mask-mode Inh. N Anim. N
- Values
- Initial value
-
match-source
- Computed value
-
As declared
- Applies to
-
All elements (in SVG, applies to all graphics elements and all container elements except the
defs
element) - Description
-
Determines which aspect of a masking image is used to determine its masking shape: its transparency or its brightness. If
alpha
is used, then any part of the masking image with no transparency reveal the masked element, whereas any part of the mask with full transparency hides the masked element. Transparency values between the two show the masked element, but set to the masking image’s opacity level. Forluminance
, the brightness of the masking image is treated as transparency is foralpha
: full brightness fully reveals the masked element, full darkness hides it, and in-between brightness reveal the masked element with some transparency.match-source
means the same asalpha
unless the masking source is an SVGmask
element, in which case it’s the same asluminance
. - Examples
-
p {mask-mode: alpha;} img.lum {mask-mode: luminance, alpha;}
mask-origin Inh. N Anim. N
- Values
-
[
content-box
|padding-box
|border-box
|margin-box
|fill-box
|stroke-box
|view-box
]# - Initial value
-
border-box
- Computed value
-
As declared
- Applies to
-
All elements (in SVG, applies to all graphics elements and all container elements except the
defs
element) - Description
-
Changes the origin box for the masking image as applied to the masked element. This allows the author to vary the initial placement of the mask before sizing, repeating, or positioning it.
- Examples
-
div.inset {mask-origin: content-box;} svg#radio {mask-origin: stroke-box, fill-box;}
mask-position Inh. N Anim. P
- Values
- Initial value
-
0% 0%
- Computed value
-
As declared
- Applies to
-
All elements (in SVG, applies to all graphics elements and all container elements except the
defs
element) - Animatable
-
<length> and <percentage> values only
- Description
-
Allows authors to position a masking image in a manner identical to the positioning of background images. The default will place the masking image in the top-left corner of the box defined by
mask-origin
. - Examples
-
p:nth-child(1) {mask-position: top right;} p:nth-child(2) {mask-position: 33% 80%;} p:nth-child(3) {mask-position: 5em 120%;}
mask-repeat Inh. N Anim. Y
- Values
-
[
repeat-x
|repeat-y
| [repeat
|space
|round
|no-repeat
]{1,2} ]# - Initial value
-
repeat
- Computed value
-
As declared
- Applies to
-
All elements (in SVG, applies to all graphics elements and all container elements except the
defs
element) - Description
-
Allows authors to repeat a masking image in a manner identical to the repetition of background images. Note that the default is to repeat a mask in all directions.
- Examples
-
p:nth-child(1) {mask-repeat: repeat;} p:nth-child(2) {mask-repeat: repeat round;} p:nth-child(3) {mask-repeat: space no-repeat;}
mask-size Inh. N Anim. P
- Values
-
[ [ <length> | <percentage> |
auto
]{1,2} |cover
|contain
]# - Initial value
-
auto
- Computed value
-
As declared, with length values converted to absolute lengths
- Applies to
-
All elements (in SVG, applies to all graphics elements and all container elements except the
defs
element) - Animatable
-
<length> and <percentage> values only
- Description
-
Sets the size of the initial masking image in a manner identical to the sizing of background images.
- Examples
-
p:nth-child(1) {mask-size: 80%;} p:nth-child(2) {mask-size: 2em 3em, 100%;} p:nth-child(3) {mask-size: cover, 100%, contain;}
mask-type Inh. N Anim. N
- Values
- Initial value
-
luminance
- Computed value
-
As declared
- Applies to
-
SVG
mask
elements - Description
-
Sets the blending mode when the masking image is defined by an SVG
mask
element as opposed to, say, a PNG file or an entire SVG. Of interest because most masking images use thealpha
blending mode, butmask
element masks default toluminance
. - Example
-
svg #mask {mask-type: alpha;}
max-height Inh. N Anim. P
- Values
- Initial value
-
none
- Computed value
-
For percentages, as declared; for length values, the absolute length; otherwise,
none
- Percentages
-
Refer to the height of the containing block
- Applies to
-
All elements except nonreplaced inline elements and table elements
- Animatable
-
<length> and <percentage> values only
- Description
-
Defines a maximum constraint on the height of the element (the exact nature of that height is dependent on the value of
box-sizing
). Thus, the element can be shorter than the declared value but not taller. Negative values are not permitted. - Example
-
div#footer {max-height: 3em;}
max-width Inh. N Anim. P
- Values
- Initial value
-
none
- Computed value
-
For percentages, as declared; for length values, the absolute length; otherwise,
none
- Percentages
-
Refer to the height of the containing block
- Applies to
-
All elements except nonreplaced inline elements and table elements
- Animatable
-
<length> and <percentage> values only
- Description
-
Defines a maximum constraint on the width of the element (the exact nature of that width is dependent on the value of
box-sizing
). Thus, the element can be narrower than the declared value but not wider. Negative values are not permitted. - Example
-
#sidebar img {width: 50px; max-width: 100%;}
min-height Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
For percentages, as declared; for length values, the absolute length
- Percentages
-
Refer to the width of the containing block
- Applies to
-
All elements except nonreplaced inline elements and table elements
- Description
-
Defines a minimum constraint on the height of the element (the exact nature of that height is dependent on the value of
box-sizing
). Thus, the element can be taller than the declared value, but not shorter. Negative values are not permitted. - Example
-
div#footer {min-height: 1em;}
min-width Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
For percentages, as declared; for length values, the absolute length
- Percentages
-
Refer to the width of the containing block
- Applies to
-
All elements except nonreplaced inline elements and table elements
- Description
-
Defines a minimum constraint on the width of the element (the exact nature of that width is dependent on the value of
box-sizing
). Thus, the element can be wider than the declared value, but not narrower. Negative values are not permitted. - Example
-
div.aside {width: 13em; max-width: 33%;}
mix-blend-mode Inh. N Anim. N
- Values
-
normal
|multiply
|screen
|overlay
|darken
|lighten
|color-dodge
|color-burn
|hard-light
|soft-light
|difference
|exclusion
|hue
|saturation
|color
|luminosity
- Initial value
-
normal
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Changes how an element is composited with its backdrop. The “backdrop” consists of any ancestor backgrounds and other elements that are “behind” the element being styled. The default of
normal
imposes simple alpha blending, as CSS has permitted since its inception. The others cause the element and its backdrop to be combined in various ways; for example,lighten
means that the final result will show, at each pixel, either the element or its backdrop, whichever is lighter.darken
is the same, except the darker of the two pixels will be shown. The results of these are likely to be familiar to users of Photoshop or any other graphic-editing tool. - Examples
-
li.shadowed {mix-blend-mode: darken;} aside {mix-blend-mode: color-burn, luminosity, darken;}
object-fit Inh. N Anim. N
- Values
- Initial value
-
fill
- Computed value
-
As declared
- Applies to
-
Replaced elements
- Description
-
Alters the way an image’s contents are sized with respect to its content box. The default,
fill
, causes the image to be stretched or squashed to fit its height and width, as images always have.none
means the image keeps its intrinsic height and width, regardless of the values of theimg
element’sheight
andwidth
properties.contain
will cause the entire image to be visible within its element box, scaled up or down as necessary, while maintaining its intrinsic aspect ratio.cover
scales the image up or down to fill the image box of the image, again maintaining its intrinsic aspect ratio.scale-down
means the image will stay its intrinsic size unless it’s too big to fit into the element box, in which case it will be scaled down to fit. - Examples
-
img:nth-of-type(1) {object-fit: none;} img:nth-of-type(2) {object-fit: fill;} img:nth-of-type(3) {object-fit: cover;}
object-position Inh. N Anim. Y
- Values
- Initial value
-
50% 50%
- Computed value
-
As declared
- Applies to
-
Replaced elements
- Description
-
Provides a way to change the position of a fitted image (see
object-fit
) within its element box, in a manner identical to how background origin images can be positioned. - Examples
-
img:nth-of-type(1) {object-position: center;} img:nth-of-type(2) {object-position: 67% 100%;} img:nth-of-type(3) {object-position: left 142%;}
opacity Inh. N Anim. Y
- Values
- Initial value
-
1
- Computed value
-
As declared
- Applies to
-
All elements
- Computed value
-
Same as declared (or a clipped value if declared value must be clipped)
- Description
-
Defines an element’s degree of opacity using a number in the range
0
–1
, inclusive. Any values outside that range are clipped to the nearest edge (0
or1
). This property affects every visible portion of an element. If it is necessary to have the content of an element semiopaque but not the background, or vice versa, use alpha color types such asrgba()
.An element with
opacity
of0
is effectively invisible and may not respond to mouse or other DOM events. Because of the way semiopaque elements are expected to be drawn, an element withopacity
less than1
creates its own stacking context even if it is not positioned. For similar reasons, an absolutely positioned element withopacity
less than1
and az-index
ofauto
force-alters thez-index
value to0
. - Examples
-
h2 {opacity: 0.8;} .hideme {opacity: 0;}
order Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
As declared
- Applies to
-
Flex and grid items, and the absolutely positioned children of flex and grid containers
- Description
-
Sets a visual rendering order independently of the document source order. One example is turning a set of list items into flex items, and then designating a list item (or group of list items) from the middle of the list to be the first flex items displayed in the flex container. Because only the visual order is changed, not the DOM order, structural selectors like
:first-child
will match the first element in the source, not the first element on screen. Originally conceived as a way to change the visual layout order of flex items, this property now also allows authors to rearrange the order of auto-flowed grid items. - Examples
-
li:nth-of-type(6) {order: 1;} li:nth-of-type(14) {order: -1;}
orphans Inh. N Anim. Y
- Values
- Initial value
-
2
- Computed value
-
As declared
- Applies to
-
Block-level elements
- Description
-
Defines the minimum number of text lines within an element that can be left at the bottom of a page. This can affect the placement of page breaks within the element.
- Examples
-
p {orphans: 4;} ul {orphans: 2;}
outline Inh. N Anim. P
- Values
- Initial value
-
none
- Computed value
-
As declared
- Applies to
-
All elements
- Animatable
-
Outline width and color; not style
- Description
-
This is a shorthand property that defines the overall outline for an element. The most common use of outlines is to indicate which form element or hyperlink currently has focus (accepts keyboard input). Outlines can be of irregular shape, and no matter how thick, they do not change or otherwise affect the placement of elements.
- Examples
-
*[href]:focus {outline: 2px dashed invert;} form:focus {outline: outset cyan 0.25em;}
outline-color Inh. N Anim. Y
- Values
- Initial value
-
invert
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines the color for the visible portions of the overall outline of an element. Remember that the value of
outline-style
must be something other thannone
for any visible border to appear. User agents are permitted to ignoreinvert
on platforms that don’t support color inversion. In that case, the outline’s color defaults to the value ofcolor
for the element. - Examples
-
*[href]:focus {outline-color: invert;} form:focus {outline-color: cyan;}
outline-offset Inh. N Anim. N
- Values
- Initial value
-
0
- Computed value
-
An absolute length value
- Applies to
-
All elements
- Description
-
Defines the offset distance between the outer border edge and inner outline edge. Only one length value can be supplied, and it applies equally to all sides of the outline. Values can be negative, which causes the outline to “shrink” inward toward the element’s center. Note that
outline-offset
cannot be set via the shorthandoutline
. - Examples
-
*[href]:focus {outline-offset: 0.33em;} form:focus {outline-offset: −1px;}
outline-style Inh. N Anim. N
- Values
-
auto
|none
|solid
|dotted
|dashed
|double
|groove
|ridge
|inset
|outset
- Initial value
-
none
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines the style for the overall border of an element. The style must be something other than
none
for any outline to appear. - Examples
-
*[href]:focus {outline-style: dashed;} form:focus {outline-style: outset;}
outline-width Inh. N Anim. Y
- Values
- Initial value
-
medium
- Computed value
-
An absolute length, or
0
if the style of the outline isnone
; otherwise, as declared - Applies to
-
All elements
- Description
-
Defines the width for the overall outline of an element. The width will take effect for a given outline only if the value of
outline-style
is something other thannone
. If the style isnone
, the width is effectively reset to0
. Negative length values are not permitted. - Examples
-
*[href]:focus {outline-width: 2px;} form:focus {outline-width: 0.25em;}
overflow Inh. N Anim. N
- Values
- Initial value
-
visible
- Computed value
-
As declared
- Applies to
-
Block-level and replaced elements
- Description
-
A shorthand property that defines what happens to content that overflows the content area of an element. For the value
scroll
, user agents should provide a scrolling mechanism whether or not it is actually needed; for example, scrollbars would appear even if all content can fit within the element box. If two values are supplied, the first defines the value ofoverflow-x
and the second definesoverflow-y
. Otherwise, a single value defines both. - Examples
-
#masthead {overflow: hidden;} object {overflow: visible scroll;}
overflow-wrap Inh. Y Anim. Y
- Values
- Initial value
-
normal
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Allows authors to specify whether line breaks are permitted inside words that are longer than their containing element is wide and which cannot be hyphenated, either due to language or the values of other properties. If
break-word
is set, the line-breaking will only occur if the word is placed on a new text line and still cannot fit inside its element’s containing block. (This behavior is in contrast toword-break
, which does not force a pre-word line break.) - Example
-
pre {overflow-wrap: break-word;}
- Note
-
This property used to be called
word-wrap
. Browsers that supportedword-wrap
in the past now use it as an alias foroverflow-wrap
.
overflow-x Inh. N Anim. N
- Values
- Initial value
-
visible
- Computed value
-
As declared
- Applies to
-
Block-level and replaced elements
- Description
-
Defines the overflow behavior along the horizontal (x) axis of the element; that is, the left and right edges of the element.
- Examples
-
#masthead {overflow-x: hidden;} object {overflow-x: visible;}
overflow-y Inh. N Anim. N
- Values
- Initial value
-
visible
- Computed value
-
As declared
- Applies to
-
Block-level and replaced elements
- Description
-
Defines the overflow behavior along the vertical (y) axis of the element; that is, the top and bottom edges of the element.
- Examples
-
#masthead {overflow-y: hidden;} object {overflow-y: scroll;}
padding Inh. N Anim. Y
- Values
- Initial value
-
Not defined for shorthand elements
- Computed value
-
See individual properties (
padding-top
, etc.) - Percentages
-
Refer to the width of the containing block
- Applies to
-
All elements
- Description
-
A shorthand property that defines the width of the overall padding for an element or sets the widths of each individual side’s padding. Padding set on inline nonreplaced elements does not affect line-height calculations; therefore, such an element with both padding and a background may visibly extend into other lines and potentially overlap other content. The background of the element will extend throughout the padding. Negative padding values are not permitted.
- Examples
-
img {padding: 10px;} h1 {padding: 2ex 0.33em;} pre {padding: 0.75em 0.5em 1em 0.5em;}
padding-bottom Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
For percentage values, as declared; for length values, the absolute length
- Percentages
-
Refer to the width of the containing block
- Applies to
-
All elements
- Description
-
Defines the width of the bottom padding for an element. Bottom padding set on inline nonreplaced elements does not affect line-height calculations; therefore, such an element with both bottom padding and a background may visibly extend into other lines and potentially overlap other content. Negative padding values are not permitted.
- Examples
-
ul {padding-bottom: 0.5in;} h1 {padding-bottom: 2%;}
padding-left Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
For percentage values, as declared; for length values, the absolute length
- Percentages
-
Refer to the width of the containing block
- Applies to
-
All elements
- Description
-
Defines the width of the left padding for an element. Left padding set for an inline nonreplaced element will appear only on the left edge of the first inline box generated by the element. Negative padding values are not permitted.
- Examples
-
p {padding-left: 5%;} pre {padding-left: 3em;}
padding-right Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
For percentage values, as declared; for length values, the absolute length
- Percentages
-
Refer to the width of the containing block
- Applies to
-
All elements
- Description
-
Defines the width of the right padding for an element. Right padding set for an inline nonreplaced element will appear only on the right edge of the last inline box generated by the element. Negative padding values are not permitted.
- Examples
-
img {padding-right: 30px;} ol {padding-right: 5em;}
padding-top Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
For percentage values, as declared; for length values, the absolute length
- Percentages
-
Refer to the width of the containing block
- Applies to
-
All elements
- Description
-
Defines the width of the top padding for an element. Top padding set on inline nonreplaced elements does not affect line-height calculations; therefore, such an element with both top padding and a background may visibly extend into other lines and potentially overlap other content. Negative padding values are not permitted.
- Examples
-
ul {padding-top: 0.5in;} h3 {padding-top: 1.5em;}
page Inh. N Anim. N
- Values
- Initial value
-
auto
- Computed value
-
As declared
- Applies to
-
Block-level elements
- Description
-
Defines the page type that should be used when displaying the element. The emphasis of the word “should” is taken directly from the specification, so author beware.
The intended effect is that if an element has a value of
page
that is different than that of the preceding element, at least one page break is inserted before the element and a new page started using the page type declared bypage
. (Multiple page breaks may be used if other styles call for using a right- or lefthand page when starting the new page.) - Examples
-
@page wide {size: landscape;} table.summary {page: wide;}
page-break-after Inh. N Anim. N
- Values
- Initial value
-
auto
- Computed value
-
As declared
- Applies to
-
Nonfloated block-level elements with a
position
value ofrelative
orstatic
- Description
-
Defines whether one or more page breaks should be placed after an element. Although it is theoretically possible to force breaks with
always
, it is not possible to guarantee prevention;avoid
asks the user agent to avoid inserting a page break if possible. The keywordleft
is used to insert enough breaks after the element to make the next page be a lefthand page; similarly,right
is used for a righthand page. - Examples
-
section {page-break-after: always;} h1 {page-break-after: avoid;}
- Note
-
This property is essentially replaced by
break-after
, but browser support forpage-break-after
may be stronger.
page-break-before Inh. N Anim. N
- Values
- Initial value
-
auto
- Computed value
-
As declared
- Applies to
-
Nonfloated block-level elements with a
position
value ofrelative
orstatic
- Description
-
Defines whether one or more page breaks should be placed before an element. It’s theoretically possible to use
always
to force a page break, but whileavoid
asks the user agent to avoid inserting a page break if possible, there’s no guarantee it won’t insert one anyway. The keywordleft
is used to insert enough breaks before the element to make the page be a lefthand page; similarly,right
is used for a righthand page. - Examples
-
section {page-break-before: always;} h2 {page-break-before: avoid;}
- Note
-
This property is essentially replaced by
break-before
, but browser support forpage-break-before
may be stronger.
page-break-inside Inh. Y Anim. N
- Values
- Initial value
-
auto
- Computed value
-
As declared
- Applies to
-
Nonfloated block-level elements with a
position
value ofrelative
orstatic
- Description
-
Defines whether a page break should be avoided within the element. Note that such avoidance may not be possible; for example, declaring
body {page-break-inside: avoid;}
for a lengthy document will not prevent the insertion of page breaks by the user agent. - Example
-
table {page-break-inside: avoid;}
- Note
-
This property is essentially replaced by
break-before
, but browser support forpage-break-before
may be stronger.
perspective Inh. N Anim. Y
- Values
- Initial value
-
none
- Computed value
-
The absolute length, or else
none
- Applies to
-
Any transformable element
- Description
-
Defines the amount of apparent 3D perspective of an element’s transformed children, but not for the element itself. Numbers define a foreshortening depth in pixels; smaller numbers define more extreme perspective effects. Negative values are treated the same as
none
. - Examples
-
body {perspective: 250;} /* middlin' */ #wrapper {perspective: 10;} /* extreme */
perspective-origin Inh. N Anim. P
- Values
- Initial value
-
50% 50%
- Computed value
-
A percentage, except for length values, which are converted to an absolute length
- Percentages
-
Refer to the size of the bounding box
- Applies to
-
Any transformable element
- Animatable
-
<length> and <percentage> values only
- Description
-
Defines the origin point of the apparent 3D perspective within the element. In effect, it defines the point in the element that appears to be directly in front of the viewer.
- Examples
-
body {perspective-origin: bottom right;} #wrapper div {perspective-origin: 0 50%;}
position Inh. N Anim. N
- Values
- Initial value
-
static
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines the positioning scheme used to lay out an element. Any element may be positioned, although an element positioned with
absolute
orfixed
will generate a block-level box regardless of what kind of element it is. An element that is relatively positioned is offset from its default placement in the normal flow. - Examples
-
#footer {position: fixed; bottom: 0;} *.offset {position: relative; top: 0.5em;}
quotes Inh. Y Anim. N
- Values
- Initial value
-
User agent–dependent
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines the quotation pattern used with quotes and nested quotes. The actual quote marks are inserted via the
content
property’sopen-quote
andclose-quote
values. - Examples
-
q:lang(fr) {quotes: "«" "»" "‹" "›";} q {quotes: '\201C' '\201D' '\2018' '\2019';}
resize Inh. N Anim. N
- Values
- Initial value
-
none
- Computed value
-
As declared
- Applies to
-
Elements whose
overflow
value is notvisible
- Description
-
Defines how (or whether) an element can be resized by the user. The actual appearance and operation of any resize mechanism is left to the user agent and is likely dependent on the writing direction.
- Examples
-
textarea {resize: vertical;} iframe {resize: both;}
right Inh. N Anim. P
- Values
- Initial value
-
auto
- Computed value
-
For static elements,
auto
; for length values, the corresponding absolute length; for percentage values, the specified value; otherwise,auto
- Percentages
-
Refer to the height of the containing block
- Applies to
-
Positioned elements
- Animatable
-
<length> and <percentage> values only
- Description
-
Defines the offset between the right outer margin edge of a positioned element and the right edge of its containing block.
- Examples
-
div#footer {position: fixed; right: 0;} *.overlapper {position: relative; right: −25px;}
shape-image-threshold Inh. N Anim. Y
- Values
- Initial value
-
0.0
- Computed value
-
The same as the specified value after clipping the <number> to the range [0.0, 1.0]
- Applies to
-
Floats
- Description
-
Changes the alpha channel value that acts as a threshold for float shape creation via an image. By default, only fully transparent areas in the shape’s source image are used to define the float shape. If the value is changed to
0.7
, then all areas of the source image that are 70% or more transparent are used to define the float shape. This allows for the same image to be used to define multiple float shapes, for example. A value of0
will cause the entire image to be ignored for shape calculation. - Examples
-
aside.illustrate {shape-image-threshold: 0.667;} img.floated {shape-image-threshold: 0.1;}
shape-margin Inh. N Anim. Y
- Values
- Initial value
-
0
- Computed value
-
An absolute length
- Applies to
-
Floats
- Description
-
Defines an offset distance between the edges of a float shape and the closest points at which text may approach the shape. This is useful when floating an image and using that same image to define the float shape, but wanting the keep normal-flow text away from the visible edges of the image. Note that the float shape and shape margin are clipped beyond the outer margin edge of the original float, so excessively large shape margins are most likely to result in a traditional rectangular float box.
- Examples
-
#one {shape-margin: 0;} #two {shape-margin: 1.5em;} #thr (shape-margin: 10%;}
shape-outside Inh. N Anim. P
- Values
- Definitions
- <basic-shape>
-
inset
|circle()
|ellipse()
|polygon()
- <shape-box>
-
margin-box
|border-box
|padding-box
|content-box
- Initial value
-
none
- Computed value
-
For a <basic-shape>, as defined for an <image>, its URI made absolute; otherwise, as declared
- Applies to
-
Floats
- Animatable
-
<basic-shape> values only
- Description
-
Defines the shape of a floated element for the purposes of calculating text flow past the float. Possibilities include defining a polygon that echoes the outer edge of an illustration, or using that image’s transparent areas to define the float shape. Shapes are clipped at the edges of the shape’s outer margin edge, so a float shape can never be larger than the unshaped version of that float.
- Examples
-
img.web20 {shape-outside: inset(7% round 0.5em/5px);} img.curio {shape-outside: circle(25px at 50% 50%);} aside.diamond {shape-outside: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);}
size Inh. N Anim. N
- Values
-
auto
| <length>{1,2} | [ <page-size> || [portrait
|landscape
] ] - Initial value
-
auto
- Computed value
-
<length> values as absolute length values; otherwise, as declared
- Applies to
-
The page area
- Description
-
Defines the size and orientation of a page box. The keywords
auto
,portrait
, andlandscape
cause the page box to fill the available rendering space on the page. Page boxes set toportrait
have the content printed with the long sides of the page box being the right and left sides; in the case oflandscape
, the content is printed with the longer sides of the page box being the top and bottom sides.If a page box is specified using lengths or one of the <page-size> keywords (e.g.,
A4
) and the page box cannot be fit onto the actual page used for display, the page box and its contents may be scaled down to fit. If only one length value is declared, it sets both dimensions and thus defines a square page box. Length values that useem
orex
units are calculated with respect to the computed font size of the page context. - Example
-
body {page-size: landscape;}
- Note
-
<page-size> is one of a defined set of standard page sizes; see Chapter 20 of CSS: The Definitive Guide, 4th Edition, for details.
tab-size Inh. Y Anim. Y
- Values
- Initial value
-
8
- Computed value
-
The absolute-length equivalent of the value
- Applies to
-
Block elements
- Description
-
Sets the width of tab characters’ whitespace when they are present in the displayed source and are honored for display due to the value of
white-space
. An <integer> value sets the number of “spaces” a tab character will generate. - Examples
-
pre.source {tab-size: 4;} p.typer {tab-size: 0.25in;}
table-layout Inh. Y Anim. N
- Values
- Initial value
-
auto
- Computed value
-
As declared
- Applies to
-
Elements with the
display
valuetable
orinline-table
- Description
-
Defines whether a table element should be laid out using an automatic-layout algorithm or a fixed-layout algorithm. The benefit of the automatic algorithm is that it’s very similar to what authors are used to from more than a decade of browser behavior. However, the fixed-layout algorithm is theoretically faster and more predictable.
- Examples
-
table.data {table-display: fixed;} table.directory {table-display: auto;}
text-align Inh. Y Anim. N
- Values
-
start
|end
|left
|right
|center
|justify
|match-parent
|start end
- Initial value
-
In CSS3,
start
; in CSS2.1, this was user agent–specific, likely depending on writing direction (e.g.,left
for Western languages like English) - Computed value
-
As declared, except in the case of
match-parent
- Applies to
-
Block-level elements
- Description
-
Defines the horizontal alignment of text within a block-level element by defining the point to which line boxes are aligned. The value
justify
is supported by allowing user agents to programmatically adjust the word (but not letter) spacing of the line’s content; results may vary by user agent. - Examples
-
p {text-align: justify;} h4 {text-align: center;}
text-align-last Inh. Y Anim. N
- Values
- Initial value
-
auto
- Computed value
-
As declared
- Applies to
-
Block-level elements
- Description
-
Defines the horizontal alignment of the last line of text within a block-level element by defining the point to which line boxes are aligned. The value
justify
is supported by allowing user agents to programmatically adjust the word (but not letter) spacing of the line’s content; results may vary by user agent. - Examples
-
p {text-align-last: justify;} h4 {text-align-last: right;}
text-decoration Inh. N Anim. N
- Values
- Initial value
-
none
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines text-decoration effects such as underlining. These decorations will span descendant elements that don’t have decorations of their own, in many cases making the child elements appear to be decorated. Combinations of the values are legal. Any time two
text-decoration
declarations apply to the same element, the values of the two declarations are not combined. For example:h1 {text-decoration: overline;} h1, h2 {text-decoration: underline;}
Given these styles,
h1
elements will be underlined with no overline because the value ofunderline
completely overrides the value ofoverline
. Ifh1
should have both overlines and underlines, use the valueoverline underline
for theh1
rule and either move it after theh1, h2
rule or extend its selector to raise its specificity.User agents are not required to support
blink
. - Examples
-
u {text-decoration: underline;} .old {text-decoration: line-through;} u.old {text-decoration: line-through underline;}
text-indent Inh. Y Anim. Y
- Values
- Initial value
-
0
- Computed value
-
For percentage values, as declared; for length values, the absolute length
- Percentages
-
Refer to the width of the containing block
- Applies to
-
Block-level elements
- Description
-
Defines the indentation of the first line of content in a block-level element. This property is most often used to create a tab effect. Negative values are permitted and cause outdent (or hanging indent) effects. In CSS3, the value
each-line
will apply the indentation to any new line that results from a forced line break (e.g., due to abr
element) within the element, not just the first line. The valuehanging
inverts the defined pattern of indentation, allowing for the creation of an outdent effect without using a negative length value. - Examples
-
p {text-indent: 5em;} h2 {text-indent: −25px;}
text-orientation Inh. Y Anim. Y
- Values
- Initial value
-
mixed
- Computed value
-
As declared
- Applies to
-
All elements except table row groups, table rows, table column groups, and table columns
- Description
-
Defines how characters are oriented in text, potentially independent of their writing mode (see
writing-mode
). Whenmixed
, each character is aligned according to its language defaults as compared to the writing direction; for example, mixed English and Japanese text written in a vertical writing mode would have the English characters sideways and the Japanese characters upright.upright
forces all characters to be upright regardless of their language, andsideways
forces all characters to be shown sideways. - Examples
-
#one {text-orientation: mixed;} #two {text-orientation: upright;} #thr {text-orientation: sideways;}
text-rendering Inh. Y Anim. Y
- Values
-
auto
|optimizeSpeed
|optimizeLegibility
|geometricPrecision
- Initial value
-
auto
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Sets the approach used to render text, allowing authors to decide if speed, legibility, or precision is most important. Note that some user agents always optimize for legibility when rendering HTML text, so this property may have minimal or no effect outside of SVG (which is where it started out).
- Examples
-
p {text-rendering: optimizeSpeed;} svg tspan {text-rendering: optimizeLegibility;}
text-shadow Inh. N Anim. Y
- Values
- Initial value
-
none
- Computed value
-
A color plus three absolute lengths
- Applies to
-
All elements
- Description
-
Defines one or more shadows to be “cast” by the text of an element. Shadows are always painted behind the element’s text, but in front of the element’s background, borders, and outline. Shadows are drawn from the first on top to the last on the bottom.
The three length values that can be declared are, in order: horizontal offset, vertical offset, and blur distance. When positive, the offset values go down and to the right; when negative, they go back and to the left. Blur values cannot be negative.
- Examples
-
h1 {text-shadow: 0.5em 0.33em 4px gray;} h2 {text-shadow: 0 −3px 0.5em blue;}
text-transform Inh. Y Anim. N
- Values
- Initial value
-
none
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines the pattern for changing the case of letters in an element, regardless of the case of the text in the document source. The determination of which letters are to be capitalized by the value
capitalize
is not precisely defined, as it depends on user agents knowing how to recognize a “word.” - Examples
-
h1 {text-transform: uppercase;} .title {text-transform: capitalize;}
top Inh. N Anim. P
- Values
- Initial value
-
auto
- Computed value
-
For static elements,
auto
; for length values, the corresponding absolute length; for percentage values, the specified value; otherwise,auto
- Percentages
-
Refer to the height of the containing block
- Applies to
-
Positioned elements
- Animatable
-
<length> and <percentage> values only
- Description
-
Defines the offset between the top outer margin edge of a positioned element and the top edge of its containing block.
- Examples
-
#masthead {position: fixed; top: 0;} sub {position: relative; top: 0.5em; vertical-align: baseline;}
- Note
-
For relatively positioned elements, if both
top
andbottom
areauto
, their computed values are both0
. If one of them isauto
, it becomes the negative of the other; if neither isauto
,bottom
becomes the negative of the value oftop
.
transform Inh. N Anim. P
- Values
- Initial value
-
none
- Computed value
-
As declared, except for relative length values, which are converted to an absolute length
- Percentages
-
Refer to the size of the bounding box
- Applies to
-
All elements except “atomic inline-level” boxes
- Animatable
-
As a transform
- Description
-
Defines one or more transforms of an element. These transforms can occur in a 2D or a simulated 3D space, depending on how the transforms are declared.
The permitted values for <transform-function> are lengthy and complex. For a full list with minimalist descriptions, please consult the W3C’s documentation on transform functions.
- Examples
-
table th {transform: rotate(45deg);} li {transform: scale3d(1.2,1.7,0.85);}
transform-origin Inh. N Anim. P
- Values
- Initial value
-
50% 50%
- Computed value
-
A percentage, except for length values, which are converted to an absolute length
- Percentages
-
Refer to the size of the bounding box
- Applies to
-
Any transformable element
- Animatable
-
<length> and <percentage> values only
- Description
-
Defines the origin point for an element’s transforms in either 2D or simulated 3D space. The marked-as-optional <length> values are what define a 3D origin point; without them, the value is necessarily in 2D space.
- Examples
-
table th {transform-origin: bottom left;} li {transform-origin: 10% 10px 10em;}
transform-style Inh. N Anim. N
- Values
- Initial value
-
flat
- Computed value
-
As declared
- Applies to
-
Any transformable element
- Description
-
Defines whether an element transformed in simulated 3D space should have its children rendered using a flat style, thus putting them all in the same 2D plane as the element, or attempt to use a 3D effect where children with positive or negative
z-index
values may be rendered “in front of” or “behind” the element’s plane as it rotates. Elements whoseoverflow
value ishidden
cannot preserve 3D effects and are treated as though the value oftransform-style
isflat
. - Example
-
li {transform-style: preserve-3d;}
transition Inh. N Anim. N
- Values
-
[ [
none
| <transition-property> ] ‖ <time> ‖ <transition-timing-function> ‖ <time> ]# - Initial value
-
all 0s ease 0s
- Computed value
-
As declared
- Applies to
-
All elements and
:before
and:after
pseudo-elements - Description
-
A shorthand property that defines the aspects of one or more of an element’s transitions from one state to another.
Even though it is not (as of this writing) explicitly defined in the value syntax, descriptive text in the specification defines that when two <time> values are declared, the first is the duration and the second is the delay. If only one is declared, it defines only the duration.
- Examples
-
a:hover {transition: color 1s 0.25s ease-in-out;} h1 {transition: linear all 10s;}
transition-delay Inh. N Anim. N
- Values
- Initial value
-
0s
- Computed value
-
As declared
- Applies to
-
All elements and
:before
and:after
pseudo-elements - Description
-
Defines a delay between when a transition could theoretically first start and when it actually starts. For example, if a transition is defined to begin on hover but has a delay of
0.5s
, the transition will actually begin half a second after the element is first hovered over. Negative time values are permitted, but rather than creating a paradox, this simply jumps the transition to the point it would have reached had it been started at the defined time offset in the past. In other words, it will be started partway through the transition and run to its conclusion. - Examples
-
a[href]:hover {transition-delay: 0.25;} h1 {transition-delay: 0;}
transition-duration Inh. N Anim. N
- Values
- Initial value
-
0s
- Computed value
-
As declared
- Applies to
-
All elements and
:before
and:after
pseudo-elements - Description
-
Defines the length of time it takes for the transition to run from start to finish. The default
0s
means the transition is instantaneous and no animation occurs. Negative time values are treated as0s
. - Examples
-
a[href]:hover {transition-duration: 1s;} h1 {transition-duration: 10s;}
transition-property Inh. N Anim. N
- Values
- Initial value
-
all
- Computed value
-
As declared
- Applies to
-
All elements and
:before
and:after
pseudo-elements - Description
-
Defines one or more properties that are transitioned from one state to another; for example,
color
means that the foreground color of an element is transitioned from the start color to the finish color. If a shorthand property is declared, the transition parameters meant for that property are propagated to all the properties represented by the shorthand.The keyword
all
means all properties are transitioned. The keywordnone
prevents any properties from being transitioned, effectively shutting down the transition. - Examples
-
a[href]:hover {transition-property: color;} h1 {transition-property: all;}
transition-timing-function Inh. N Anim. N
- <timing-function>
-
ease
|linear
|ease-in
|ease-out
|ease-in-out
|cubic-bezier(
<number>,
<number>,
<number>,
<number>)
- Initial value
-
ease
- Computed value
-
As declared
- Applies to
-
All elements and
:before
and:after
pseudo-elements - Description
-
Defines the way in which intermediate states of a transition are calculated. The value keywords (
ease
,linear
, etc.) are shorthands for specificcubic-bezier()
values defined in the specification, so in effect all values of this property arecubic-bezier()
values. - Examples
-
a[href]:hover {transition-timing-function: ease-in-out;} h1 {transition-timing-function: linear;}
unicode-bidi Inh. N Anim. Y
- Values
- Initial value
-
normal
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Allows the author to generate levels of embedding within the Unicode Bidirectional Algorithm. User agents that do not support bidirectional (“bidi”) text are permitted to ignore this property.
- Example
-
span.name {direction: rtl; unicode-bidi: embed;}
vertical-align Inh. N Anim. P
- Values
-
baseline
|sub
|super
|top
|text-top
|middle
|bottom
|text-bottom
| <length> | <percentage> - Initial value
-
baseline
- Computed value
-
For percentage and length values, the absolute length; otherwise, as declared
- Percentages
-
Refer to the value of
line-height
for the element - Applies to
-
Inline elements and table cells
- Animatable
-
<length> and <percentage> values only
- Description
-
Defines the vertical alignment of an inline element’s baseline with respect to the baseline of the line in which it resides. Negative length and percentage values are permitted, and they lower the element instead of raising it.
In table cells, this property sets the alignment of the content of the cell within the cell box. When applied to table cells, only the values
baseline
,top
,middle
, andbottom
are recognized. - Examples
-
sup {vertical-align: super;} .fnote {vertical-align: 50%;}
visibility Inh. Y Anim. N
- Values
- Initial value
-
visible
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines whether the element box generated by an element is rendered. This means authors can have the element take up the space it would ordinarily take up, while remaining completely invisible. The value
collapse
is used in tables to remove columns or rows from the table’s layout. - Examples
-
ul.submenu {visibility: hidden;} tr.hide {visibility: collapse;}
white-space Inh. N Anim. N
- Values
- Initial value
-
normal
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines how whitespace within an element is handled during layout.
normal
acts as web browsers have traditionally treated text, in that it reduces any sequence of whitespace to a single space.pre
causes whitespace to be treated as in the HTML elementpre
, with both whitespace and line breaks fully preserved.nowrap
prevents an element from line-breaking, like thenowrap
attribute fortd
andth
elements in HTML4. The valuespre-wrap
andpre-line
were added in CSS2.1; the former causes the user agent to preserve whitespace while still automatically wrapping lines of text, and the latter honors newline characters within the text while collapsing all other whitespace as pernormal
. - Examples
-
td {white-space: nowrap;} tt {white-space: pre;}
widows Inh. N Anim. Y
- Values
- Initial value
-
2
- Computed value
-
As declared
- Applies to
-
Block-level elements
- Description
-
Defines the minimum number of text lines within an element that can be left at the top of a page. This can affect the placement of page breaks within the element.
- Examples
-
p {widows: 4;} ul {widows: 2;}
width Inh. N Anim. Y
- Values
- Initial value
-
auto
- Computed value
-
For
auto
and percentage values, as declared; otherwise, an absolute length, unless the property does not apply to the element (thenauto
) - Percentages
-
Refer to the width of the containing block
- Applies to
-
All elements except nonreplaced inline elements, table rows, and row groups
- Description
-
Defines the width of an element’s content area, outside of which padding, borders, and margins are added. This property is ignored for inline nonreplaced elements. Negative length and percentage values are not permitted.
- Examples
-
table {width: 80%;} #sidebar {width: 20%;} .figure img {width: 200px;}
word-break Inh. Y Anim. Y
- Values
- Initial value
-
normal
- Computed value
-
As declared
- Applies to
-
All elements
- Description
-
Defines how text should be wrapped in situations where it would not ordinarily be wrapped; for example, a very long string of numbers containing no spaces, such as the first thousand digits of pi. The value
break-all
permits user agents to break a word (text string) at arbitrary points if it cannot find regular breakpoints within the word. - Examples
-
td {word-break: break-all;} p {word-break: normal;}
word-spacing Inh. Y Anim. Y
- Values
- Initial value
-
normal
- Computed value
-
For
normal
, the absolute length0
; otherwise, the absolute length - Applies to
-
All elements
- Description
-
Defines the amount of whitespace to be inserted between words. Note that the specification does not define what constitutes a “word.” In typical practice, user agents will apply this to the collapsed whitespace between strings of nonwhitespace characters. Negative length values are permitted and will cause words to bunch closer together.
- Examples
-
p.spacious {word-spacing: 6px;} em {word-spacing: 0.2em;} p.cramped {word-spacing: −0.5em;}
writing-mode Inh. Y Anim. Y
- Values
- Initial value
-
horizontal-tb
- Computed value
-
As declared
- Applies to
-
All elements except table row groups, table column groups, table rows, table columns, Ruby base containers, and Ruby annotation containers
- Description
-
Allows the author to change the writing method used to flow text and other inline content into the element. The vertical values are useful for languages that are primarily vertical, as is the case with many non-Roman languages. It is possible to have text from a normally horizontal language (e.g., German or Hebrew) flowed into a vertical writing mode, though the orientation of the characters may not be as expected (see
text-orientation
). Similarly, it’s possible to take a normally vertical language and flow it horizontally withhorizontal-tb
. - Examples
-
[lang="en"] {writing-mode: horizontal-tb;} [lang="jp"] {writing-mode: vertical-rl;}
z-index Inh. N Anim. Y
- Values
- Initial value
-
auto
- Computed value
-
As declared
- Applies to
-
Positioned elements
- Description
-
Defines the placement of a positioned element along the z-axis, which is defined to be the axis that extends perpendicular to the display area. Positive numbers are closer to the user, and negative numbers are farther away.
- Example
-
#masthead {position: relative; z-index: 10000;}
Get CSS Pocket Reference, 5th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.