break-inside CSS property sets how page, column, or region breaks should behave inside a generated box. If there is no generated box, the property is ignored.

/* Keyword values */
break-inside: auto;
break-inside: avoid;
break-inside: avoid-page;
break-inside: avoid-column;
break-inside: avoid-region;
/* Global values */
break-inside: inherit;
break-inside: initial;
break-inside: unset;
					

Each possible break point (in other words, each element boundary) is affected by three properties: the break-after value of the previous element, the break-before value of the next element, and the break-inside value of the containing element.

To determine if a break must be done, the following rules are applied:

  1. If any of the three concerned values is a forced break value ( always , left , right , page , column ,或 region ), it has precedence. If more than one of them are such a break, the value of the element that appears the latest in the flow is used. Thus, the break-before value has precedence over the break-after value, which in turn has precedence over the break-inside 值。
  2. If any of the three concerned values is an avoid break value ( avoid , avoid-page , avoid-region ,或 avoid-column ), no such break will be applied at that point.

Once forced breaks have been applied, soft breaks may be added if needed, but not on element boundaries that resolve in a corresponding avoid 值。

句法

break-inside property is specified as one of the keyword values from the list below.

auto

Allows, but does not force, any break (page, column, or region) to be be inserted within the principal box.

avoid

Avoids any break (page, column, or region) from being inserted within the principal box.

avoid-page

Avoids any page break within the principal box.

avoid-column

Avoids any column break within the principal box.

avoid-region

Avoids any region break within the principal box.

Page break aliases

For compatibility reasons, the legacy page-break-inside property should be treated by browsers as an alias of break-inside . This ensures that sites using page-break-inside continue to work as designed. A subset of values should be aliased as follows:

page-break-inside break-inside
auto auto
avoid avoid

形式定义

初始值 auto
适用于 block-level elements
继承 no
计算值 如指定
动画类型 discrete

形式句法

auto | avoid | avoid-page | avoid-column | avoid-region
					

范例

Avoiding breaking inside a figure

In the following example we have a container that contains an <h1> spanning all columns (achieved using column-span: all ) and a series of paragraphs laid out in multiple columns using column-width: 200px . We also have a <figure> containing an image and a caption.

By default, it is possible for you to get a break between the image and its caption, which is not what we want. To avoid this, we have set break-inside: avoid on the <figure> , which causes them to always stay together.

HTML

<article>
  <h1>Main heading</h1>
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla vitae fringilla mauris. Quisque commodo eget nisi sed pretium. Mauris luctus nec lacus in ultricies. Mauris vitae hendrerit arcu, ac scelerisque lacus. Aliquam lobortis in lacus sit amet posuere. Fusce iaculis urna id neque dapibus, eu lacinia lectus dictum.</p>
  <figure>
    <img src="https://media.prod.mdn.mozit.cloud/attachments/2020/07/29/17350/3b4892b7e820122ac6dd7678891d4507/firefox.png">
    <figcaption>The Firefox logo — fox wrapped around the world</figcaption>
  </figure>
  <p>Praesent condimentum dui dui, sit amet rutrum diam tincidunt eu. Cras suscipit porta leo sit amet rutrum. Sed vehicula ornare tincidunt. Curabitur a ipsum ac diam mattis volutpat ac ut elit. Nullam luctus justo non vestibulum gravida. Morbi metus libero, pharetra non porttitor a, molestie nec nisi.</p>
  <p>In finibus viverra enim vel suscipit. Quisque consequat velit eu orci malesuada, ut interdum tortor molestie. Proin sed pellentesque augue. Nam risus justo, faucibus non porta a, congue vel massa. Cras luctus lacus nisl, sed tincidunt velit pharetra ac. Duis suscipit faucibus dui sed ultricies.</p>
</article>
					

CSS

html {
  font-family: helvetica, arial, sans-serif;
}
body {
  width: 80%;
  margin: 0 auto;
}
h1 {
  font-size: 3rem;
  letter-spacing: 2px;
  column-span: all;
}
h1 + p {
  margin-top: 0;
}
p {
  line-height: 1.5;
  break-after: column;
}
figure {
  break-inside: avoid;
}
img {
  max-width: 70%;
  display: block;
  margin: 0 auto;
}
figcaption {
  font-style: italic;
  font-size: 0.8rem;
  width: 70%;
}
article {
  column-width: 200px;
  gap: 20px;
}
					

结果

规范

规范 状态 注释
CSS Fragmentation Module Level 3
The definition of 'break-inside' in that specification.
候选推荐 无变化。
CSS Regions Module Level 1
The definition of 'break-inside' in that specification.
工作草案 Extends the property to handle region breaks.
CSS Multi-column Layout Module
The definition of 'break-inside' in that specification.
工作草案 初始定义。

浏览器兼容性

The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request. 更新 GitHub 上的兼容性数据
Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
Supported in Multi-column Layout Chrome 完整支持 50 Edge 完整支持 12 Firefox 完整支持 65 IE 完整支持 10 Opera 完整支持 37
完整支持 37
不支持 11.1 — 12.1
Safari 完整支持 10 WebView Android 完整支持 50 Chrome Android 完整支持 50 Firefox Android 完整支持 65 Opera Android 完整支持 37
完整支持 37
不支持 11.1 — 12.1
Safari iOS 完整支持 10 Samsung Internet Android 完整支持 5.0
multicol_context : column and avoid-column Chrome 完整支持 50 Edge 完整支持 12 Firefox 不支持 No IE 完整支持 10 Opera 完整支持 37 Safari 完整支持 10 WebView Android 完整支持 50 Chrome Android 完整支持 50 Firefox Android 不支持 No Opera Android 完整支持 37 Safari iOS 完整支持 10 Samsung Internet Android 完整支持 5.0
Supported in Paged Media Chrome 完整支持 50 Edge 完整支持 12 Firefox 完整支持 65 IE 完整支持 10 Opera 完整支持 37
完整支持 37
不支持 11.1 — 12.1
Safari 完整支持 10 WebView Android 完整支持 50 Chrome Android 完整支持 50 Firefox Android 完整支持 65 Opera Android 完整支持 37
完整支持 37
不支持 11.1 — 12.1
Safari iOS 完整支持 10 Samsung Internet Android 完整支持 5.0
paged_context : page and avoid-page Chrome 完整支持 51 Edge 完整支持 12 Firefox 不支持 No IE 不支持 No Opera 完整支持 38
完整支持 38
不支持 11.1 — 12.1
Safari 不支持 No WebView Android 完整支持 51 Chrome Android 完整支持 51 Firefox Android 不支持 No Opera Android 完整支持 41
完整支持 41
不支持 11.1 — 12.1
Safari iOS 不支持 No Samsung Internet Android 完整支持 5.0
Supported in CSS Regions Experimental Chrome 不支持 No Edge 不支持 No Firefox 不支持 No IE 不支持 No Opera 不支持 No Safari 不支持 No WebView Android 不支持 No Chrome Android 不支持 No Firefox Android 不支持 No Opera Android 不支持 No Safari iOS 不支持 No Samsung Internet Android 不支持 No

图例

完整支持

完整支持

不支持

不支持

实验。期望将来行为有所改变。

实验。期望将来行为有所改变。

Notes on compatibility

Prior to Firefox 65, the older property of page-break-inside will work in Firefox to prevent breaks in columns, as well as pages. Add both properties for backwards compatibility.

For older WebKit-based browsers, the prefixed property -webkit-column-break-inside can be used to control column breaks.

元数据

  • 最后修改: