CSS 인쇄: 초보자를 위한 종합 가이드
안녕하세요, 미래의 CSS 마에스트로 여러분! 오늘 우리는 CSS 인쇄의 fascinational한 세상으로 뛰어들어 보겠습니다. 여러분의 친절한 이웃 컴퓨터 교사로서, 이 여정을 함께 하게 되어 기쁩니다. 코드를 한 줄도 작성해 본 적이 없어도 걱정하지 마세요 - 우리는 매우 기본적인 것부터 시작하여 차근차근 올라갈 것입니다. 그러니 커피(또는 당신이 좋아하는 차)를 한 잔 마시고, 시작해 보세요!
CSS 인쇄 - 인쇄 스타일 시트 사용하기
어떤 웹페이지를 인쇄해 보았지만, 화면에서 보는 것과 전혀 다르게 나왔던 경험이 있나요? 그때 인쇄 스타일 시트가 구원자로 등장합니다! 이 것은 마치 웹 콘텐츠를 인쇄 친화적인 형식으로 변환하는 마법의 주문 같은 것입니다.
간단한 예제를 보겠습니다:
<head>
<link rel="stylesheet" type="text/css" href="screen.css" media="screen">
<link rel="stylesheet" type="text/css" href="print.css" media="print">
</head>
이 코드에서 우리는 브라우저에게 화면과 인쇄를 위해 다른 스타일 시트를 사용하도록 지시하고 있습니다. media
속성이 우리의 비밀 무기입니다. 화면에서 페이지를 봤을 때는 screen.css
를 사용하지만, 인쇄 버튼을 눌렀을 때는 print.css
가 적용됩니다.
CSS 인쇄 - 미디어 쿼리와 @page 규칙 사용하기
이제 미디어 쿼리와 @page 규칙으로 우리의 게임을 레벨 업 시켜보겠습니다. 이 것들은 CSS 인쇄의 듀오 마법사입니다!
@media print {
body {
font-size: 12pt;
color: #000;
background-color: #fff;
}
@page {
margin: 1in;
}
}
이 코드는 "브라우저야, 인쇄할 때는 텍스트를 12pt로, 검정색에 하얀 배경으로, 각 쪽에 1인치의 여백을 주세요."라고 말합니다. @media print
부분이 우리의 미디어 쿼리이고, @page
는 페이지 레이아웃을 설정합니다.
CSS 인쇄 - 인쇄 요청 감지하기
웹페이지가 누군가가 인쇄하려고 할 때 알 수 있었으면 멋질 것 같지 않나요? 그렇다면 이렇게 할 수 있습니다:
window.addEventListener('beforeprint', function() {
console.log('인쇄 중...');
});
window.addEventListener('afterprint', function() {
console.log('인쇄 완료');
});
이 자바스크립트 코드는 인쇄가 시작되고 끝나는 것을 귀 기울여 듣는 작은 스파이입니다. 마지막 순간의 조정에 매우 유용합니다!
CSS 인쇄 - @page 규칙 사용하기
@page 규칙은 인쇄된 페이지를 제어하는 마법의 지팡이입니다. 그것을 활용해 보겠습니다:
@page {
size: A4;
margin: 0;
}
@page :first {
margin-top: 2cm;
}
여기서 우리는 모든 페이지를 A4 크기로 설정하고 여백을 제거하며, 첫 페이지에는 특별히 2cm의 상단 여백을 주고 있습니다. 콘텐츠에 환영의 붉은 카펫을 깔아주는 것과 같습니다!
CSS 인쇄 - 미디어 쿼리 사용하기
@media를 이미 봤지만, 더 깊이 탐구해 보겠습니다:
@media print {
.no-print {
display: none;
}
a[href^="http"]:after {
content: " (" attr(href) ")";
}
}
이 코드는 클래스 no-print
을 가진 요소를 숨기고, 외부 링크 뒤에 URL을 추가합니다. 인쇄를 위한 웹페이지를 정리해주는 개인 비서와 같습니다!
CSS 인쇄 - afterprint 이벤트 사용하기
우리의 작은 자바스크립트 스파이를 다시 한 번 활용해 보겠습니다:
window.addEventListener('afterprint', function() {
document.body.style.backgroundColor = 'lightblue';
alert('인쇄물을 즐기셨나요!');
});
이 코드는 인쇄 후 배경색을 푸른색으로 변경하고, 친절한 메시지를 띄웁니다. 사용자에게 작은 감사의 인사를 남기는 것과 같습니다!
CSS 인쇄 - 외부 스타일 시트에 링크하기
마지막으로, 외부 인쇄 스타일 시트에 링크하는 방법을 다시 요약해 보겠습니다:
<link rel="stylesheet" type="text/css" href="print.css" media="print">
이 줄은 인쇄 친화적인 웹페이지로 가는 금지 티켓입니다. print.css
파일을 만들어 인쇄 스타일을 추가하면 끝입니다!
방법 | 설명 | 예제 |
---|---|---|
인쇄 스타일 시트 | 인쇄 미디어를 위한 별도의 CSS 파일 | <link rel="stylesheet" type="text/css" href="print.css" media="print"> |
미디어 쿼리 | 인쇄 시 적용되는 CSS 규칙 | @media print { body { font-size: 12pt; } } |
@page 규칙 | 페이지 특정 속성을 제어 | @page { margin: 1in; } |
인쇄 요청 감지 | 인쇄 시도를 감지하는 자바스크립트 | window.addEventListener('beforeprint', function() { ... }); |
afterprint 이벤트 | 인쇄 후 코드를 실행 | window.addEventListener('afterprint', function() { ... }); |
그렇게 되면, 여러분은 CSS 인쇄의 세계로 첫 걸음을 뗐습니다. 연습이 완벽을 만든다는 것을 기억하고, 두려워 말고 실험해 보세요. 누가 알겠는가? 여러분이 인쇄 스타일시트의 picasso가 될 수 있을지도 모릅니다! 다음 번에 다시 만날 때까지, 즐겁게 코딩하세요!
Credits: Image by storyset