box-decoration-break

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

box-decoration-break CSS 属性指定当元素在多行、多列或多页中断裂时,其片段应如何渲染。

试一试

-webkit-box-decoration-break: slice;
box-decoration-break: slice;
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
<section id="default-example">
  <div id="example-container">
    <span id="example-element">This text breaks across multiple lines.</span>
  </div>
</section>
#example-container {
  width: 14rem;
}

#example-element {
  background: linear-gradient(to bottom right, #6f6f6f, black);
  color: white;
  box-shadow:
    8px 8px 10px 0 #ff1492,
    -5px -5px 5px 0 blue,
    5px 5px 15px 0 yellow;
  padding: 0 1em;
  border-radius: 16px;
  border-style: solid;
  margin-left: 10px;
  font: 24px sans-serif;
  line-height: 2;
}

指定的值将影响以下属性的显示:

语法

css
/* Keyword values */
box-decoration-break: slice;
box-decoration-break: clone;

/* Global values */
box-decoration-break: inherit;
box-decoration-break: initial;
box-decoration-break: revert;
box-decoration-break: revert-layer;
box-decoration-break: unset;

box-decoration-break 属性被指定为下面列出的关键字值之一。

slice

元素最初渲染时,就好像它的框没有被碎片化一样,然后这个假想框的渲染被切片成每行/列/页的片段。请注意,每个片段的假想框可能不同,因为如果中断发生在行内方向,它会使用自己的高度;如果中断发生在块方向,它会使用自己的宽度。有关详细信息,请参阅 CSS 规范。

clone

每个框片段独立渲染,并带有指定的边框、内边距和外边距包裹每个片段。border-radiusborder-imagebox-shadow 独立应用于每个片段。背景也为每个片段独立绘制,这意味着带有 background-repeat: no-repeat 的背景图像仍可能重复多次。

正式定义

初始值slice
应用于所有元素
继承性
计算值同指定值
动画类型离散

正式语法

box-decoration-break = 
slice |
clone

示例

行内框片段

带有框装饰的行内元素在包含换行符时,由于初始 slice 值,可能会出现意外的外观。以下示例展示了将 box-decoration-break: clone 添加到包含 <br> 标签的 <span> 的效果:

css
span {
  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;
}

#clone {
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
html
<p>
  <span>The<br />quick<br />orange fox</span>
</p>
<p>
  <span id="clone">The<br />quick<br />orange fox</span>
</p>

块框片段

以下示例展示了带有框装饰的块级元素在多列布局中包含换行符时的外观。请注意,如果垂直堆叠,box-decoration-break: slice 的结果将等同于第一个 <div>

css
span {
  display: block;
  background: linear-gradient(to bottom right, yellow, green);
  box-shadow:
    inset 8px 8px 10px 0px deeppink,
    inset -5px -5px 5px 0px blue,
    inset 5px 5px 15px 0px yellow;
}
#base {
  width: 33%;
}
.columns {
  columns: 3;
}

.clone {
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
html
<div id="base">
  <span>The<br />quick<br />orange fox</span>
</div>
<br />

<h2>'box-decoration-break: slice'</h2>
<div class="columns">
  <span>The<br />quick<br />orange fox</span>
</div>

<h2>'box-decoration-break: clone'</h2>
<div class="columns">
  <span class="clone">The<br />quick<br />orange fox</span>
</div>

规范

规范
CSS Fragmentation Module Level 3
# break-decoration

浏览器兼容性

另见