CSS Paged Media: 초보자를 위한 종합 가이드
안녕하세요, 웹 개발자 꿈나이들! 오늘 우리는 CSS Paged Media의 fascinzing 세계로 뛰어들어 보겠습니다. 이전에 들어본 적이 없다면 걱정 마세요 - 우리는 매우 기본적인 것부터 시작하여 차례대로 진행할 것입니다. 이 튜토리얼의 끝까지 따라오면, CSS를 사용하여 놀라운 인쇄 레이아웃을 만들 수 있을 것입니다. 그麼, 시작해 보겠습니다!
CSS Paged Media는 무엇인가요?
CSS Paged Media는 인쇄나 PDF와 같은 페이지 형식에서 웹 콘텐츠가 어떻게 보이는지 제어할 수 있게 해주는 CSS 기능의 모음입니다. 마치 웹사이트를 프린터용으로 리모델링하는 것과 같은 느낌입니다!
아름다운 웹사이트를 만들었지만 인쇄 시 모든 것이 지저분하고 자리를 잃은 것처럼 보인다면, CSS Paged Media가 구원자가 됩니다! 화면이 아닌 곳에서도 레이아웃을 제어할 수 있도록 도와줍니다.
CSS Paged Media - 관련 속성
CSS Paged Media의 마법을 가능하게 하는 중요한 속성들을 살펴보겠습니다:
속성 | 설명 | 예시 |
---|---|---|
@page | 페이지의 크기와 여백을 정의합니다 | @page { size: A4; margin: 2cm; } |
size | 페이지 상자의 크기를 설정합니다 | size: 8.5in 11in; |
marks | 문서에 자르기와/또는 십자 표시를 추가합니다 | marks: crop cross; |
bleed | 인쇄 콘텐츠의 bleed 영역을 지정합니다 | bleed: 0.5cm; |
page-break-before | 요소 앞의 페이지 분할을 제어합니다 | page-break-before: always; |
page-break-after | 요소 뒤의 페이지 분할을 제어합니다 | page-break-after: avoid; |
page-break-inside | 요소 내부의 페이지 분할을 제어합니다 | page-break-inside: avoid; |
다음은 이러한 속성들을 실제로 사용하는 예제입니다:
@page {
size: A4;
margin: 2cm;
@top-center {
content: "My Awesome Document";
}
@bottom-right {
content: counter(page);
}
}
h1 {
page-break-before: always;
}
table {
page-break-inside: avoid;
}
이 예제에서 우리는 A4 페이지 크기와 2cm 여백을 설정하고, 각 페이지의 상단 중앙에 헤더를 추가하며, 하단 오른쪽에 페이지 번호를 추가하고 있습니다. 또한, 각 h1 요소가 새로운 페이지에서 시작하도록 하고, 테이블이 페이지를 가로질러 나뉘지 않도록 설정합니다.
CSS at-규칙
CSS at-규칙은 CSS가 어떻게 행동할지 지시하는 문장입니다. at-규칙은 at 기호(@)와 식별자로 시작됩니다. Paged Media에 특화된 at-규칙을 살펴보겠습니다:
At-규칙 | 설명 | 예시 |
---|---|---|
@page | 페이지 상자를 정의합니다 | @page :first { margin-top: 10cm; } |
@top-left | 페이지의 상단 왼쪽 모서리에 콘텐츠를 정의합니다 | @top-left { content: "Chapter 1"; } |
@top-center | 페이지의 상단 중앙에 콘텐츠를 정의합니다 | @top-center { content: "My Book"; } |
@top-right | 페이지의 상단 오른쪽 모서리에 콘텐츠를 정의합니다 | @top-right { content: date("yyyy-mm-dd"); } |
@bottom-left | 페이지의 하단 왼쪽 모서리에 콘텐츠를 정의합니다 | @bottom-left { content: "Confidential"; } |
@bottom-center | 페이지의 하단 중앙에 콘텐츠를 정의합니다 | @bottom-center { content: "Copyright 2023"; } |
@bottom-right | 페이지의 하단 오른쪽 모서리에 콘텐츠를 정의합니다 | @bottom-right { content: counter(page); } |
다음은 이러한 at-규칙들을 사용하는 예제입니다:
@page {
@top-center {
content: "Alice's Adventures in Wonderland";
font-family: "Times New Roman", serif;
font-size: 12pt;
}
@bottom-right {
content: "Page " counter(page);
}
}
@page :first {
@top-center { content: none; }
@bottom-right { content: none; }
}
이 예제에서 우리는 각 페이지에 책 제목을 추가하고, 하단 오른쪽에 페이지 번호를 추가하고 있습니다. 또한, 첫 페이지에서는 이 요소들을 제거하여 깨끗한 표지를 만듭니다.
CSS 가상 클래스
가상 클래스는 요소의 특별한 상태를 정의하는 데 사용됩니다. Paged Media의 맥락에서는 몇 가지 유용한 가상 클래스가 있습니다:
가상 클래스 | 설명 | 예시 |
---|---|---|
:first | 첫 번째 페이지를 선택합니다 | @page :first { margin-top: 10cm; } |
:left | 모든 왼쪽 페이지를 선택합니다 | @page :left { margin-left: 4cm; } |
:right | 모든 오른쪽 페이지를 선택합니다 | @page :right { margin-right: 4cm; } |
:blank | 모든 공백 페이지를 선택합니다 | @page :blank { @top-center { content: none; } } |
다음은 이러한 가상 클래스들을 사용하는 예제입니다:
@page :first {
margin-top: 10cm;
@top-center { content: none; }
@bottom-right { content: none; }
}
@page :left {
margin-left: 4cm;
margin-right: 3cm;
@top-left {
content: "Alice's Adventures in Wonderland";
}
}
@page :right {
margin-left: 3cm;
margin-right: 4cm;
@top-right {
content: "Chapter " counter(chapter);
}
}
이 예제에서 우리는 첫 페이지, 왼쪽 페이지, 오른쪽 페이지에 대해 다른 레이아웃을 만들고 있습니다. 첫 페이지는 더 큰 상단 여백과 헤더/푸터가 없으며, 왼쪽 페이지는 책 제목이 상단 왼쪽 모서리에 있고, 오른쪽 페이지는 장 번호가 상단 오른쪽 모서리에 있습니다.
결론
그麼, 여러분! 우리는 CSS Paged Media의 fascinzing 세계를 여행했습니다. 페이지 크기와 여백 설정에서부터 페이지 분할과 헤더 및 푸터 추가까지, CSS를 사용하여 아름다운 인쇄 레이아웃을 만드는 도구를 가지셨습니다.
기억해 두세요, 연습이 완벽을 이루게 합니다. 이 속성과 at-규칙들을 자신의 프로젝트에서 실험해 보세요. 인쇄 레이아웃에 얼마나 많은 제어력을 가질 수 있는지 놀라실 겁니다!
행복한 코딩을 기원하며, 인쇄물이 항상 명료하고 아름답기를 바랍니다!
Credits: Image by storyset