This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The box-decoration-break
CSS property specifies how an element's fragments should be rendered when broken across multiple lines, columns, or pages.
The specified value will impact the appearance of the following properties:
/* Keyword values */ box-decoration-break: slice; box-decoration-break: clone; /* Global values */ box-decoration-break: initial; box-decoration-break: inherit; box-decoration-break: unset;
The box-decoration-break
property is specified as one of the keyword values listed below.
slice
clone
border-radius
, border-image
, and box-shadow
are applied to each fragment independently. The background is also drawn independently for each fragment, which means that a background image with background-repeat
: no-repeat
may nevertheless repeat multiple times.slice | clone
An inline element that contains line breaks styled with:
.example { background: linear-gradient(to bottom right, yellow, green); box-shadow: 8px 8px 10px 0px deeppink, -5px -5px 5px 0px blue, 5px 5px 15px 0px yellow; padding: 0em 1em; border-radius: 16px; border-style: solid; margin-left: 10px; font: 24px sans-serif; line-height: 2; } ... <span class="example">The<br>quick<br>orange fox</span>
... results in:
Adding box-decoration-break: clone
to the above styles:
-webkit-box-decoration-break: clone; box-decoration-break: clone;
... results in:
You can try the two inline examples above in your browser.
Here's an example of an inline element using a large border-radius
value. The second "iM"
has a line-break between the "i"
and the "M"
. For comparison, the first "iM"
is without line breaks. Note that if you stack the rendering of the two fragments horizontally next to each other it will result in the non-fragmented rendering.
Try the above example in your browser.
A block element with similar styles as above and no fragmentation results in:
Fragmenting the above block into three columns results in:
Note that stacking these pieces vertically will result in the non-fragmented rendering.
Now, the same example but styled with box-decoration-break: clone
results in:
Note here that each fragment has an identical replicated border, box-shadow, and background.
You can try the block examples above in your browser.
Specification | Status | Comment |
---|---|---|
CSS Fragmentation Module Level 3 The definition of 'box-decoration-break' in that specification. | Candidate Recommendation | Initial definition. |
Initial value | slice |
---|---|
Applies to | all elements |
Inherited | no |
Media | visual |
Computed value | as specified |
Animation type | discrete |
Canonical order | the unique non-ambiguous order defined by the formal grammar |
Desktop | ||||||
---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
Basic support | 22
|
No | 32
|
No | 15
|
6.1
|
Mobile | |||||||
---|---|---|---|---|---|---|---|
Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
Basic support | Yes
|
18
|
? | 32
|
15
|
7.1
|
Yes |
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/box-decoration-break