HTML DOM의 pageBreakInside 속성은 HTML 문서에서 특정 요소 내부에서 페이지 나누기(page break)가 발생하는 방식을 확인하고 설정할 수 있는 스타일 속성입니다. 주로 인쇄(print) 또는 인쇄 미리보기(print preview) 시 콘텐츠가 중간에 잘리지 않도록 제어할 때 유용하게 사용됩니다.
문법(Syntax)
pageBreakInside 속성은 아래 두 가지 방식으로 사용할 수 있습니다.
1. 속성 값 가져오기
object.pageBreakInside
2. 속성 값 설정하기
object.pageBreakInside = "value"
사용 가능한 값
value 자리에는 다음 네 가지 값을 지정할 수 있습니다.
| 값 | 설명 |
|---|---|
| auto | 필요한 경우에만 요소 내부에 페이지 나누기를 삽입합니다. (기본 동작) |
| avoid | 요소 내부에서 페이지 나누기가 일어나지 않도록 방지합니다. |
| initial | 이 속성을 기본(default) 값으로 되돌립니다. |
| inherit | 부모 요소로부터 이 속성 값을 상속받습니다. |
예제(Example)
아래 예제는 버튼을 클릭하면 두 번째 문단 요소에 pageBreakInside: avoid를 적용하여, 인쇄 시 해당 문단이 페이지 경계에서 잘리지 않도록 만드는 코드입니다.
<!DOCTYPE html>
<html>
<style>
body {
color: #000;
height: 100vh;
background-color: #8BC6EC;
background-image: linear-gradient(135deg, #8BC6EC 0%, #9599E2 100%);
}
.btn {
background: #db133a;
border: none;
height: 2rem;
border-radius: 2px;
width: 40%;
display: block;
color: #fff;
outline: none;
cursor: pointer;
margin: 1rem auto;
}
p {
text-align: center;
}
</style>
<body>
<h1 style="text-align:center">DOM Style pageBreakInside Property Demo</h1>
<p>
Hi! I'm a para element with some dummy text. Hi! I'm a para element with some dummy text.
</p>
<p class="page-break">
Hi! I'm second para element with some dummy text. Hi! I'm a second element with some dummy text.
</p>
<button onclick="set()" class="btn">Set Break Page Here</button>
<p>
Hi! I'm another para element with some dummy text. Hi! I'm another para element with some dummy text.
</p>
<script>
function set() {
document.querySelector(".page-break").style.pageBreakInside = "avoid";
}
</script>
</body>
</html>실행 결과(Output)

먼저 브라우저에서 인쇄 미리보기를 열어 현재 HTML 페이지가 어떻게 출력되는지 확인합니다. 그런 다음 빨간색 버튼을 클릭하면 두 번째 문단에 avoid 값이 적용되어 해당 요소 내부에서 페이지 나누기가 발생하지 않습니다.

정리
pageBreakInside 속성은 인쇄물 품질을 좌우하는 세부적인 조정 기능입니다. 표, 이미지, 인용구처럼 한 페이지 안에 온전히 유지해야 하는 요소에 avoid를 적용하면, 독자가 읽기 편한 깔끔한 인쇄 결과물을 만들 수 있습니다. 다만 모든 브라우저에서 동일하게 동작하지 않을 수 있으므로, 실제 배포 전에는 주요 브라우저에서 인쇄 결과를 직접 테스트해 보는 것이 좋습니다.