8000 csswg-drafts/css3-background/Overview.html at c1e35fe91b71e1c8ad33ceb95527291e9fed69ae · w3c/csswg-drafts · GitHub
Skip to content

Latest commit

 

History

History
5348 lines (3947 loc) · 177 KB

File metadata and controls

5348 lines (3947 loc) · 177 KB
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang=en>
<head>
<title>CSS Backgrounds and Borders Module Level 3</title>
<link href=default.css rel=stylesheet type="text/css">
<style type="text/css">
.prod { font-family: inherit; font-size: inherit }
pre.prod { white-space: pre-wrap; margin: 1em 0 1em 2em }
code { font-size: inherit; }
#box-shadow-samples td { background: white; color: black; }
</style>
<link href="http://www.w3.org/StyleSheets/TR/W3C-ED.cs 133E s" rel=stylesheet
type="text/css">
<body>
<div class=head> <!--begin-logo-->
<p><a href="http://www.w3.org/"><img alt=W3C height=48
src="http://www.w3.org/Icons/w3c_home" width=72></a> <!--end-logo-->
<h1>CSS Backgrounds and Borders Module Level 3</h1>
<h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 20 December
2011</h2>
<dl>
<dt>This version:
<dd><!-- <a href="http://www.w3.org/TR/2011/CR-css3-background-20111220">http://www.w3.org/TR/2011/ED-css3-background-20111220/</a> -->
<a
href="http://dev.w3.org/csswg/css3-background">http://dev.w3.org/csswg/css3-background</a>
<dt>Latest version:
<dd><a
href="http://www.w3.org/TR/css3-background">http://www.w3.org/TR/css3-background/</a>
<dt>Previous versions:
<dd><a
href="http://www.w3.org/TR/2011/CR-css3-background-20110215/">http://www.w3.org/TR/2011/CR-css3-background-20110215/</a>
<dt id=editors-list>Editors:
<dd><a href="mailto:bert@w3.org">Bert Bos</a> (<a
href="http://www.w3.org/">W3C</a>)
<dd><a href="http://fantasai.inkedblade.net/contact">Elika J. Etemad</a>
(Invited Expert)
<dd><a href="mailto:brad.kemper@gmail.com">Brad Kemper</a> (Invited
Expert)
</dl>
<!--begin-copyright-->
<p class=copyright><a
href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright"
rel=license>Copyright</a> &copy; 2011 <a
href="http://www.w3.org/"><acronym
title="World Wide Web Consortium">W3C</acronym></a><sup>&reg;</sup> (<a
href="http://www.csail.mit.edu/"><acronym
title="Massachusetts Institute of Technology">MIT</acronym></a>, <a
href="http://www.ercim.eu/"><acronym
title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
<a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a
href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
<a
href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>
and <a
href="http://www.w3.org/Consortium/Legal/copyright-documents">document
use</a> rules apply.</p>
<!--end-copyright-->
<hr title="Separator for header">
</div>
<h2 class="no-num no-toc" id=abstract>Abstract</h2>
<p>CSS is a language for describing the rendering of structured <a
href="#document">documents</a> (such as HTML and XML) on screen, on paper,
in speech, etc. This draft contains the features of CSS level&nbsp;3
relating to borders and backgrounds. It includes and extends the
functionality of CSS level&nbsp;2 <a href="#CSS21"
rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>, which builds on CSS
level&nbsp;1 <a href="#CSS1" rel=biblioentry>[CSS1]<!--{{CSS1}}--></a>.
The main extensions compared to level&nbsp;2 are borders consisting of
images, boxes with multiple backgrounds, boxes with rounded corners and
boxes with shadows.
<p>This module replaces two earlier drafts: CSS3 Backgrounds and CSS3
Border.
<h2 class="no-num no-toc" id=status>Status of this document</h2>
<!--begin-status-->
<p>This is a public copy of the editors' draft. It is provided for
discussion only and may change at any moment. Its publication here does
not imply endorsement of its contents by W3C. Don't cite this document
other than as work in progress.
<p>The (<a
href="http://lists.w3.org/Archives/Public/www-style/">archived</a>) public
mailing list <a
href="mailto:www-style@w3.org?Subject=%5Bcss3-background%5D%20PUT%20SUBJECT%20HERE">
www-style@w3.org</a> (see <a
href="http://www.w3.org/Mail/Request">instructions</a>) is preferred for
discussion of this specification. When sending e-mail, please put the text
&#8220;css3-background&#8221; in the subject, preferably like this:
&#8220;[<!---->css3-background<!---->] <em>&hellip;summary of
comment&hellip;</em>&#8221;
<p>This document was produced by the <a href="/Style/CSS/members">CSS
Working Group</a> (part of the <a href="/Style/">Style Activity</a>).
<p>This document was produced by a group operating under the <a
href="/Consortium/Patent-Policy-20040205/">5 February 2004 W3C Patent
Policy</a>. W3C maintains a <a href="/2004/01/pp-impl/32061/status"
rel=disclosure>public list of any patent disclosures</a> made in
connection with the deliverables of the group; that page also includes
instructions for disclosing a patent. An individual who has actual
knowledge of a patent which the individual believes contains <a
href="/Consortium/Patent-Policy-20040205/#def-essential">Essential
Claim(s)</a> must disclose the information in accordance with <a
href="/Consortium/Patent-Policy-20040205/#sec-Disclosure">section 6 of the
W3C Patent Policy</a>.</p>
<!--end-status-->
<p>The following features are at-risk and may be dropped at the end of the
CR period if there has not been enough interest from implementers:
&lsquo;<a href="#box-decoration-break"><code
class=property>box-decoration-break</code></a>&rsquo;
<p>The CSS WG maintains an <a
href="http://www.w3.org/Style/CSS/Tracker/products/11">issues list</a> for
this module. A <a href="http://www.w3.org/Style/CSS/Test/">test suite</a>
and implementation report for CSS Backgrounds and Borders Level 3 will be
developed during the Candidate Recommendation phase, which will last a
minimum of three months, i.e., at least until 15 May 2011. See the section
<a href="#exit">“CR exit criteria”</a> for more details.
<h2 class="no-num no-toc" id=contents>Table of contents</h2>
<!--begin-toc-->
<ul class=toc>
<li><a href="#introduction"><span class=secno>1. </span>Introduction</a>
<li><a href="#values"><span class=secno>2. </span>Values</a>
<li><a href="#backgrounds"><span class=secno>3. </span> Backgrounds</a>
<ul class=toc>
<li><a href="#layering"><span class=secno>3.1. </span> Layering Multiple
Background Images</a>
<li><a href="#the-background-color"><span class=secno>3.2. </span>The
&lsquo;<code class=property>background-color</code>&rsquo; property</a>
<li><a href="#the-background-image"><span class=secno>3.3. </span>The
&lsquo;<code class=property>background-image</code>&rsquo; property</a>
<li><a href="#the-background-repeat"><span class=secno>3.4. </span>The
&lsquo;<code class=property>background-repeat</code>&rsquo;
property</a>
<li><a href="#the-background-attachment"><span class=secno>3.5.
</span>The &lsquo;<code
class=property>background-attachment</code>&rsquo; property</a>
<li><a href="#the-background-position"><span class=secno>3.6. </span>The
&lsquo;<code class=property>background-position</code>&rsquo;
property</a>
<li><a href="#the-background-clip"><span class=secno>3.7. </span>The
&lsquo;<code class=property>background-clip</code>&rsquo; property</a>
<li><a href="#the-background-origin"><span class=secno>3.8. </span>The
&lsquo;<code class=property>background-origin</code>&rsquo;
property</a>
<li><a href="#the-background-size"><span class=secno>3.9. </span>The
&lsquo;<code class=property>background-size</code>&rsquo; property</a>
<li><a href="#the-background"><span class=secno>3.10. </span>The
&lsquo;<code class=property>background</code>&rsquo; shorthand
property</a>
<li><a href="#special-backgrounds"><span class=secno>3.11. </span>
Backgrounds of Special Elements</a>
</ul>
<li><a href="#borders"><span class=secno>4. </span> Borders</a>
<ul class=toc>
<li><a href="#the-border-color"><span class=secno>4.1. </span>The
&lsquo;<code class=property>border-color</code>&rsquo; properties</a>
<li><a href="#the-border-style"><span class=secno>4.2. </span>The
&lsquo;<code class=property>border-style</code>&rsquo; properties</a>
<li><a href="#the-border-width"><span class=secno>4.3. </span>The
&lsquo;<code class=property>border-width</code>&rsquo; properties</a>
<li><a href="#the-border-shorthands"><span class=secno>4.4. </span>The
border shorthand properties</a>
</ul>
<li><a href="#corners"><span class=secno>5. </span>Rounded Corners</a>
<ul class=toc>
<li><a href="#the-border-radius"><span class=secno>5.1. </span>The
&lsquo;<code class=property>border-radius</code>&rsquo; properties </a>
<li><a href="#corner-shaping"><span class=secno>5.2. </span>Corner
Shaping</a>
<li><a href="#corner-clipping"><span class=secno>5.3. </span>Corner
Clipping</a>
<li><a href="#corner-transitions"><span class=secno>5.4. </span>Color
and Style Transitions</a>
<li><a href="#corner-overlap"><span class=secno>5.5. </span>Overlapping
Curves</a>
<li><a href="#border-radius-tables"><span class=secno>5.6. </span>Effect
on Tables</a>
</ul>
<li><a href="#border-images"><span class=secno>6. </span>Border Images</a>
<ul class=toc>
<li><a href="#the-border-image-source"><span class=secno>6.1. </span>The
&lsquo;<code class=property>border-image-source</code>&rsquo;
property</a>
<li><a href="#the-border-image-slice"><span class=secno>6.2. </span>The
&lsquo;<code class=property>border-image-slice</code>&rsquo;
property</a>
<li><a href="#the-border-image-width"><span class=secno>6.3. </span>The
&lsquo;<code class=property>border-image-width</code>&rsquo;
property</a>
<li><a href="#the-border-image-outset"><span class=secno>6.4. </span>The
&lsquo;<code class=property>border-image-outset</code>&rsquo;
property</a>
<li><a href="#the-border-image-repeat"><span class=secno>6.5. </span>The
&lsquo;<code class=property>border-image-repeat</code>&rsquo;
property</a>
<li><a href="#border-image-process"><span class=secno>6.6. </span>
Drawing the Border Image</a>
<li><a href="#the-border-image"><span class=secno>6.7. </span>The
&lsquo;<code class=property>border-image</code>&rsquo; shorthand</a>
</ul>
<li><a href="#misc"><span class=secno>7. </span>Miscellaneous Effects</a>
<ul class=toc>
<li><a href="#the-box-decoration-break"><span class=secno>7.1.
</span>The &lsquo;<code
class=property>box-decoration-break</code>&rsquo; property</a>
<li><a href="#the-box-shadow"><span class=secno>7.2. </span>The
&lsquo;<code class=property>box-shadow</code>&rsquo; property</a>
</ul>
<li><a href="#definitions"><span class=secno>8. </span>Definitions</a>
<ul class=toc>
<li><a href="#glossary"><span class=secno>8.1. </span>Glossary</a>
<li><a href="#conformance"><span class=secno>8.2. </span>Conformance</a>
<li><a href="#levels"><span class=secno>8.3. </span>Levels</a>
<ul class=toc>
<li><a href="#level-1"><span class=secno>8.3.1. </span>CSS Level 1</a>
<li><a href="#level-2"><span class=secno>8.3.2. </span>CSS Level 2</a>
<li><a href="#level-3"><span class=secno>8.3.3. </span>CSS Level 3</a>
</ul>
<li><a href="#exit"><span class=secno>8.4. </span> CR Exit Criteria</a>
</ul>
<li><a href="#changes"><span class=secno>9. </span> Changes </a>
<ul class=toc>
<li><a href="#changes-2011"><span class=secno>9.1. </span> Changes Since
the 15 February 2011 Candidate Recommendation </a>
<li><a href="#changes-2011"><span class=secno>9.2. </span> Changes Since
the 17 December 2009 Candidate Recommendation </a>
</ul>
<li><a href="#acknowledgments"><span class=secno>10.
</span>Acknowledgments</a>
<li><a href="#references"><span class=secno>11. </span>References</a>
<ul class=toc>
<li class=no-num><a href="#normative-references"> Normative
References</a>
<li class=no-num><a href="#other-references"> Other References</a>
</ul>
<li class=no-num><a href="#property-index"> Property Index</a>
<li class=no-num><a href="#index">Index</a>
</ul>
<!--end-toc-->
<h2 id=introduction><span class=secno>1. </span>Introduction</h2>
<p><em>This section is not normative.</em>
<p>When elements are rendered according to the <a
href="http://www.w3.org/TR/CSS21/box.html">CSS box model</a> <a
href="#CSS21" rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>, each element
is either not displayed at all, or formatted as one or more rectangular
boxes. Each box has a rectangular content area, a band of padding around
the content, a border around the padding, and a margin outside the border.
(The margin may actually be negative, but margins have no influence on the
background and border.)
<div class=figure>
<p><img
alt="Diagram of a typical box, showing the content, padding, border and margin areas"
src=box>
<p class=caption>The various areas and edges of a typical box. (This
diagram is explained in the CSS2.1 Box Model chapter <a href="#CSS21"
rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>.)
</div>
<p>The properties of this module deal with the decoration of the border
area and with the background of the content, padding and border areas.
Additionally the box may be given a "drop-shadow" effect with the
&lsquo;<a href="#box-shadow"><code
class=property>box-shadow</code></a>&rsquo; property.
<p>If an element is broken into multiple boxes, &lsquo;<a
href="#box-decoration-break"><code
class=property>box-decoration-break</code></a>&rsquo; defines how the
borders and background are divided over the various boxes. (An element can
result in more than one box if it is broken at the end of a line, at the
end of a column or at the end of a page; and continued in the next line,
column or page.)
<p>The relative stacking order of backgrounds, borders, and shadows is
given in this module. For how these layers interact with other rendered
content, see Appendix E “Elaborate description of Stacking Contexts”
in <a href="#CSS21" rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>.
<h2 id=values><span class=secno>2. </span>Values</h2>
<p>This specification follows the <a
href="http://www.w3.org/TR/CSS21/about.html#property-defs">CSS property
definition conventions</a> from <a href="#CSS21"
rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>.
<p><dfn id=ltcolorgt><var>&lt;color&gt;</var></dfn> values are defined in
CSS Color Level 3 <a href="#CSS3COLOR"
rel=biblioentry>[CSS3COLOR]<!--{{!CSS3COLOR}}--></a>.
<p><dfn id=ltimagegt><var>&lt;image&gt;</var></dfn> values are defined by
this specification as <code class=prod><a
href="#ltimagegt"><var>&lt;image&gt;</var></a> =
<var>&lt;uri&gt;</var></code>.
<p class=note>A future specification may expand the definition of <a
href="#ltimagegt"><var>&lt;image&gt;</var></a> to allow other values,
e.g., to define image slices.
<p>All other values are defined in CSS Level 2 Revision 1 <a
href="#CSS21" rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>.
<p>All properties defined in this specification also accept the <a
href="http://www.w3.org/TR/CSS21/cascade.html#value-def-inherit">inherit</a>
keyword as their property value, but for readability it has not been
listed explicitly.
<h2 id=backgrounds><span class=secno>3. </span> Backgrounds</h2>
<p>Each box has a background layer that may be fully transparent (the
default), or filled with a color and/or one or more images. The background
properties specify what color (&lsquo;<a href="#background-color"><code
class=property>background-color</code></a>&rsquo;) and images (&lsquo;<a
href="#background-image"><code
class=property>background-image</code></a>&rsquo;) to use, and how they
are sized, positioned, tiled, etc.
<p>The background properties are not inherited, but the parent box's
background will shine through by default because of the initial
&lsquo;<code class=property>transparent</code>&rsquo; value on &lsquo;<a
href="#background-color"><code
class=property>background-color</code></a>&rsquo;.
<h3 id=layering><span class=secno>3.1. </span> Layering Multiple Background
Images</h3>
<p>The background of a box can have multiple <span class=index
id=layers>layers</span> in CSS3. The number of layers is determined by the
number of comma-separated values in the &lsquo;<a
href="#background-image"><code
class=property>background-image</code></a>&rsquo; property. Note that a
value of &lsquo;<code class=property>none</code>&rsquo; still creates a
layer.
<p>Each of the images is sized, positioned, and tiled according to the
corresponding value in the other background properties. The lists are
matched up from the first value: excess values at the end are not used. If
a property doesn't have enough comma-separated values to match the number
of layers, the <a href="#ua">UA</a> must calculate its used value by
repeating the list of values until there are enough.
<div class=example>
<p>For example, this set of declarations:
<pre>
background-image: url(flower.png), url(ball.png), url(grass.png);
background-position: center center, 20% 80%, top left, bottom right;
background-origin: border-box, content-box;
background-repeat: no-repeat;
</pre>
<p>has exactly the same effect as this set with the extra position dropped
and the missing values for &lsquo;<a href="#background-origin"><code
class=property>background-origin</code></a>&rsquo; and &lsquo;<a
href="#background-repeat"><code
class=property>background-repeat</code></a>&rsquo; filled in (emphasized
for clarity):
<pre>
background-image: url(flower.png), url(ball.png), url(grass1.png);
background-position: center center, 20% 80%, top left;
background-origin: border-box, content-box<strong>, border-box</strong>;
background-repeat: no-repeat<strong>, no-repeat, no-repeat</strong>;
</pre>
</div>
<p>The first image in the list is the layer closest to the user, the next
one is painted behind the first, and so on. The background color, if
present, is painted below all of the other layers.
<p class=note>Note that the <a href="#border-images">border-image
properties</a> can also define a background image, which, if present, is
painted on top of the background created by the background properties.
<h3 id=the-background-color><span class=secno>3.2. </span>The &lsquo;<a
href="#background-color"><code
class=property>background-color</code></a>&rsquo; property</h3>
<table class=propdef>
<tbody>
<tr>
<th>Name:
<td><dfn id=background-color>background-color</dfn>
<tr>
<th>Value:
<td><a href="#ltcolorgt"><var>&lt;color&gt;</var></a>
<tr>
<th>Initial:
<td>transparent
<tr>
<th>Applies to:
<td>all elements
<tr>
<th>Inherited:
<td>no
<tr>
<th>Percentages:
<td>N/A
<tr>
<th>Media:
<td>visual
<tr>
<th>Computed value:
<td>the computed color(s)
</table>
<p>This property sets the <span class=index id=background-color0
title="color!!background">background color</span> of an element. The color
is drawn behind any background images.
<div class=example>
<p>Example:
<pre>h1 { background-color: #F00 } /* Sets background to red. */</pre>
</div>
<p>The background color is clipped according to the &lsquo;<a
href="#background-clip"><code
class=property>background-clip</code></a>&rsquo; value associated with the
bottom-most background image.
<h3 id=the-background-image><span class=secno>3.3. </span>The &lsquo;<a
href="#background-image"><code
class=property>background-image</code></a>&rsquo; property</h3>
<table class=propdef>
<tbody>
<tr>
<th>Name:
<td><dfn id=background-image>background-image</dfn>
<tr>
<th>Value:
<td><a href="#ltbg-imagegt"><var>&lt;bg-image&gt;</var></a> [ , <a
href="#ltbg-imagegt"><var>&lt;bg-image&gt;</var></a> ]*
<tr>
<th>Initial:
<td>none
<tr>
<th>Applies to:
<td>all elements
<tr>
<th>Inherited:
<td>no
<tr>
<th>Percentages:
<td>N/A
<tr>
<th>Media:
<td>visual
<tr>
<th>Computed value:
<td>as specified, but with URIs made absolute
</table>
<p>This property sets the background image(s) of an element. Images are
drawn with the first specified one on top (closest to the user) and each
subsequent image behind the previous one. Where
<pre class=prod><dfn id=ltbg-imagegt><var>&lt;bg-image&gt;</var></dfn> = <a
href="#ltimagegt"><var>&lt;image&gt;</var></a> | none</pre>
<p>A value of <dfn id=none
title="''none''!!'background-image' value">&lsquo;<code
class=css>none</code>&rsquo;</dfn> counts as an image layer but draws
nothing. An image that is empty (zero width or zero height), that fails to
download, or that cannot be displayed (e.g., because it is not in a
supported image format) likewise counts as a layer but draws nothing.
<p>See the section <a href="#layering">“Layering multiple background
images”</a> for how &lsquo;<a href="#background-image"><code
class=property>background-image</code></a>&rsquo; interacts with other
comma-separated background properties to form each background image layer.
<p>When setting a background image, authors should also specify a &lsquo;<a
href="#background-color"><code
class=css>background-color</code></a>&rsquo; that will preserve contrast
with the text for when the image is unavailable.
<p>For accessibility reasons, authors should not use background images as
the sole method of conveying important information. See <a
href="http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/F3">Web Content
Accessibility Guideline F3</a> <a href="#WCAG20"
rel=biblioentry>[WCAG20]<!--{{WCAG20}}--></a>. Images are not accessible
in non-graphical presentations, and background images specifically might
be turned off in high-contrast display modes.
<p class=note>Note that stylistic foreground images can be provided in CSS
with the <a
href="http://www.w3.org/TR/CSS21/generate.html#content">content</a>
property. (Semantically-important foreground images should be provided in
the document markup, e.g. with the &lt;img&gt; tag in HTML.)
<p class=note><a
href="http://www.w3.org/TR/media-frags/#naming-space">Media fragments</a>
can be used to display a portion of an image. The <a
href="http://www.w3.org/TR/css3-images/">CSS Images</a> module will
provide fallback syntax for image formats and include additional controls
for image display.
<div class=example>
<p>Some examples specifying background images:</p>
<pre>
body { background-image: url("marble.svg") }
p { background-image: none }
div { background-image: url(tl.png), url(tr.png) }
</pre>
</div>
<p class=note>Implementations may optimize by not downloading and drawing
images that are not visible (e.g., because they are behind other, fully
opaque images).
<h3 id=the-background-repeat><span class=secno>3.4. </span>The &lsquo;<a
href="#background-repeat"><code
class=property>background-repeat</code></a>&rsquo; property</h3>
<table class=propdef>
<tbody>
<tr>
<th>Name:
<td><dfn id=background-repeat>background-repeat</dfn>
<tr>
<th>Value:
<td><a href="#ltrepeat-stylegt"><var>&lt;repeat-style&gt;</var></a> [ ,
<a href="#ltrepeat-stylegt"><var>&lt;repeat-style&gt;</var></a> ]*
<tr>
<th>Initial:
<td>repeat
<tr>
<th>Applies to:
<td>all elements
<tr>
<th>Inherited:
<td>no
<tr>
<th>Percentages:
<td>N/A
<tr>
<th>Media:
<td>visual
<tr>
<th>Computed value:
<td>as specified
</table>
<p>Specifies how background images are tiled after they have been <a
href="#the-background-size">sized</a> and <a
href="#the-background-position">positioned</a>. Where
<pre class=prod><dfn
id=ltrepeat-stylegt><var>&lt;repeat-style&gt;</var></dfn> = repeat-x | repeat-y | [repeat | space | round | no-repeat]{1,2}</pre>
<p>Single values for <a
href="#ltrepeat-stylegt"><var>&lt;repeat-style&gt;</var></a> have the
following meanings:
<dl>
<dt><dfn id=repeat-x>&lsquo;<code class=css>repeat-x</code>&rsquo;</dfn>
<dd> Equivalent to &lsquo;<code class=css>repeat no-repeat</code>&rsquo;.
<dt><dfn id=repeat-y>&lsquo;<code class=css>repeat-y</code>&rsquo;</dfn>
<dd> Equivalent to &lsquo;<code class=css>no-repeat repeat</code>&rsquo;.
<dt>&lsquo;<code class=css>repeat</code>&rsquo;
<dd> Equivalent to &lsquo;<code class=css>repeat repeat</code>&rsquo;.
<dt>&lsquo;<code class=css>space</code>&rsquo;
<dd> Equivalent to &lsquo;<code class=css>space space</code>&rsquo;
<dt>&lsquo;<code class=css>round</code>&rsquo;
<dd> Equivalent to &lsquo;<code class=css>round round</code>&rsquo;
<dt>&lsquo;<code class=css>no-repeat</code>&rsquo;
<dd> Equivalent to &lsquo;<code class=css>no-repeat
no-repeat</code>&rsquo;
</dl>
<p>If a <a href="#ltrepeat-stylegt"><var>&lt;repeat-style&gt;</var></a>
value has two keywords, the first one is for the horizontal direction, the
second for the vertical one, as follows:
<dl>
<dt><dfn id=repeat
title="''repeat''!!'background-repeat' value">&lsquo;<code
class=css>repeat</code>&rsquo;</dfn>
<dd> The image is repeated in this direction as often as needed to cover
the <a class=index href="#background-painting-area"
id=background-painting-area0>background painting area</a>.
<dt><dfn id=space
title="''space''!!'background-repeat' value">&lsquo;<code
class=css>space</code>&rsquo;</dfn>
<dd> The image is repeated as often as will fit within the <a class=index
href="#background-positioning-area"
id=background-positioning-area0>background positioning area</a> without
being clipped and then the images are spaced out to fill the area. The
first and last images touch the edges of the area. If the <a class=index
href="#background-painting-area" id=background-painting-area1>background
painting area</a> is larger than the background positioning area, then
the pattern repeats to fill the background painting area. The value of
&lsquo;<a href="#background-position"><code
class=property>background-position</code></a>&rsquo; for this direction
is ignored, unless there is not enough space for two copies of the image
in this direction, in which case only one image is placed and &lsquo;<a
href="#background-position"><code
class=property>background-position</code></a>&rsquo; determines its
position in this direction.
<dt><dfn id=round
title="''round''!!'background-repeat' value">&lsquo;<code
class=css>round</code>&rsquo;</dfn>
<dd> The image is repeated as often as will fit within the <a class=index
href="#background-positioning-area"
id=background-positioning-area.>background positioning area.</a> If it
doesn't fit a whole number of times, it is rescaled so that it does. See
the formula under &lsquo;<a href="#background-size"><code
class=property>background-size</code></a>&rsquo;. If the <a class=index
href="#background-painting-area" id=background-painting-area2>background
painting area</a> is larger than the background positioning area, then
the pattern repeats to fill the background painting area.
<dt><dfn id=no-repeat
title="''no-repeat''!!'background-repeat' value">&lsquo;<code
class=css>no-repeat</code>&rsquo;</dfn>
<dd> The image is placed once and not repeated in this direction.
</dl>
<p>Unless one of the two keywords is &lsquo;<code
class=css>no-repeat</code>&rsquo;, the whole background painting area will
be tiled, i.e., not just one vertical strip and one horizontal strip.
<div class=example>
<p style="display:none">Example(s):
<pre>
body {
background: white url("pendant.png");
background-repeat: repeat-y;
background-position: center;
}
</pre>
<div class=figure>
<p><img
alt="A centered background image, with copies repeated up and down the border, padding and content areas."
src=bg-repeat><!--<SPAN class="dlink">&nbsp;&nbsp;&nbsp;<A
name="img-bg-repeat" href="images/longdesc/bg-repeat-desc.html"
title="Long description for background pattern">[D]</A></SPAN>-->
<p class=caption>The effect of &lsquo;<code
class=css>repeat-y</code>&rsquo;: One copy of the background image is
centered, and other copies are put above and below it to make a vertical
band behind the element.
</div>
</div>
<div class=exampl 23A e>
<p style="display:none">Example(s):
<pre>
body {
background-image: url(dot.png) white;
background-repeat: space
}
</pre>
<div class=figure>
<p><img alt="Image of an element with a dotted background" src=bg-space>
<p class=caption>The effect of &lsquo;<code
class=property>space</code>&rsquo;: the image of a dot is tiled to cover
the whole background and the images are equally spaced.
</div>
</div>
<p>See the section <a href="#layering">“Layering multiple background
images”</a> for how &lsquo;<a href="#background-repeat"><code
class=property>background-repeat</code></a>&rsquo; interacts with other
comma-separated background properties to form each background image layer.
<h3 id=the-background-attachment><span class=secno>3.5. </span>The
&lsquo;<a href="#background-attachment"><code
class=property>background-attachment</code></a>&rsquo; property</h3>
<table class=propdef>
<tbody>
<tr>
<th>Name:
<td><dfn id=background-attachment>background-attachment</dfn>
<tr>
<th>Value:
<td><a href="#ltattachmentgt"><var>&lt;attachment&gt;</var></a> [ , <a
href="#ltattachmentgt"><var>&lt;attachment&gt;</var></a> ]*
<tr>
<th>Initial:
<td>scroll
<tr>
<th>Applies to:
<td>all elements
<tr>
<th>Inherited:
<td>no
<tr>
<th>Percentages:
<td>N/A
<tr>
<th>Media:
<td>visual
<tr>
<th>Computed value:
<td>as specified
</table>
<p>If background images are specified, this property specifies whether they
are fixed with regard to the <em class=index id=viewport>viewport</em>
(<dfn id=fixed>&lsquo;<code class=css>fixed</code>&rsquo;</dfn>) or scroll
along with the element (<dfn id=scroll>&lsquo;<code
class=css>scroll</code>&rsquo;</dfn>) or its contents (<dfn
id=local>&lsquo;<code class=css>local</code>&rsquo;</dfn>). The property's
value is given as a comma-separated list of &lt;attachment&gt; keywords
where
<pre class=prod><dfn
id=ltattachmentgt><var>&lt;attachment&gt;</var></dfn> = scroll | fixed | local</pre>
<dl>
<dt><dfn id=fixed0>fixed</dfn>
<dd>The background is fixed with regard to the viewport. In paged media
where there is no viewport, a &lsquo;<a href="#fixed0"><code
class=css>fixed</code></a>&rsquo; background is fixed with respect to the
<a href="http://www.w3.org/TR/CSS21/page.html#page-box">page box</a> and
therefore replicated on every page. <span class=note>Note that there is
only one viewport per view. Even if an element has a scrolling mechanism
(see the &lsquo;<code class=property>overflow</code>&rsquo; property <a
href="#CSS21" rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>), a &lsquo;<a
href="#fixed0"><code class=css>fixed</code></a>&rsquo; background doesn't
move with the element.</span>
<dt><dfn id=local0>local</dfn>
<dd>The background is fixed with regard to the element's contents: if the
element has a scrolling mechanism, the background scrolls with the
element's contents. In this case, the background behind the element's
border (if any) scrolls as well, even though the border itself does not
scroll with the contents. The UA may, however, treat the &lsquo;<code
class=css>border-box</code>&rsquo; value of &lsquo;<a
href="#background-clip"><code
class=property>background-clip</code></a>&rsquo; as &lsquo;<code
class=css>padding-box</code>&rsquo; in cases where &lsquo;<a
href="#background-attachment"><code
class=property>background-attachment</code></a>&rsquo; is &lsquo;<a
href="#local0"><code class=css>local</code></a>&rsquo; and the contents
of the element scroll.
<dt><dfn id=scroll0>scroll</dfn>
<dd>The background is fixed with regard to the element itself and does not
scroll with its contents. (It is effectively attached to the element's
border.)
</dl>
<p>Even if the image is fixed, it is still only visible when it is in the
<a href="#background-painting-area"><em class=index
id=background-painting-area3>background painting area</em></a> of the
element or otherwise unclipped. (See <a href="#special-backgrounds">
“The backgrounds of special elements”</a> for the cases when
background images are not clipped.) Thus, unless the image is tiled, it
may be invisible.
<div class=example>
<p>This example creates an infinite vertical band that remains “glued”
to the viewport when the element is scrolled.
<pre>
body {
background: red url("pendant.gif");
background-repeat: repeat-y;
background-attachment: fixed;
}
</pre>
</div>
<p>User agents that do not support &lsquo;<a href="#fixed0"><code
class=css>fixed</code></a>&rsquo; backgrounds (for example due to
limitations of the hardware platform) should ignore declarations with the
keyword &lsquo;<a href="#fixed0"><code class=css>fixed</code></a>&rsquo;.
For example:
<pre class=example>
body {
/* For all UAs: */
background: white url(paper.png) scroll;
/* For UAs that do fixed backgrounds: */
background: white url(ledger.png) fixed;
}
h1 {
/* For all UAs: */
background: silver;
/* For UAs that do fixed backgrounds: */
background: url(stripe.png) fixed, white url(ledger.png) fixed;
}
</pre>
<p>See the section <a href="#layering">“Layering multiple background
images”</a> for how &lsquo;<a href="#background-attachment"><code
class=property>background-attachment</code></a>&rsquo; interacts with
other comma-separated background properties to form each background image
layer.
<h3 id=the-background-position><span class=secno>3.6. </span>The &lsquo;<a
href="#background-position"><code
class=property>background-position</code></a>&rsquo; property</h3>
<table class=propdef>
<tbody>
<tr>
<th>Name:
<td><dfn id=background-position>background-position</dfn>
<tr>
<th>Value:
<td><a href="#ltpositiongt"><var>&lt;position&gt;</var></a> [ , <a
href="#ltpositiongt"><var>&lt;position&gt;</var></a> ]*
<tr>
<th>Initial:
<td>0% 0%
<tr>
<th>Applies to:
<td>all elements
<tr>
<th>Inherited:
<td>no
<tr>
<th>Percentages: