Hướng Dẫn Chi Tiết Về CSS @media print

Bài viết này sẽ giới thiệu chi tiết về CSS trong câu lệnh truy vấn phương tiện in @mediaprint, bao gồm cú pháp cơ bản, các tình huống sử dụng phổ biến và ví dụ mã, như ẩn các yếu tố không cần thiết, điều chỉnh phông chữ và màu sắc, xử lý hiển thị URL của liên kết, kiểm soát phân trang, điều chỉnh lề và nền, v.v. Bài viết cũng cung cấp phương pháp kiểm tra và những lưu ý quan trọng, chia sẻ các kỹ thuật nâng cao. Mời các bạn cùng tham khảo!

@media print là câu lệnh truy vấn phương tiện in trong CSS, dùng để định nghĩa các quy tắc kiểu chỉ có hiệu lực khi in tài liệu. Với câu lệnh này, bạn có thể tối ưu hóa hiệu quả in trang web, ví dụ như ẩn các yếu tố không cần thiết, điều chỉnh bố cục, thay đổi màu sắc phông chữ, v.v. Dưới đây, tôi sẽ giải thích chi tiết qua các ví dụ mã.

I. Cú Pháp Cơ Bản  

@media print {
/* Viết các quy tắc CSS áp dụng khi in tại đây */
selector {
property: value;
}
}

II. Các Tình Huống Sử Dụng Phổ Biến & Ví Dụ Mã

1. Ẩn các yếu tố không cần thiết
Khi in, bạn thường cần ẩn thanh điều hướng, quảng cáo, nút bấm và các nội dung không liên quan.

@media print {
.navbar, .ad-banner, .print-button {
display: none !important;
}
}

2. Điều chỉnh phông chữ và màu sắc
Khi in, nên sử dụng phông chữ màu tối (tránh màu sáng không rõ ràng) và ưu tiên sử dụng đơn vị pt.

@media print {
body {
font-family: “Times New Roman”, serif;
font-size: 12pt;
color: #000 !important; /* Buộc in màu đen */
}
}

3. Xử lý hiển thị URL của liên kết
Khi in, hiển thị đầy đủ URL của các liên kết (mặc định không hiển thị).

@media print {
a::after {
content: ” (” attr(href) “)”;
font-size: 0.8em;
color: #666;
}
}

4. Kiểm soát phân trang
Tránh nội dung bị cắt đứt, kiểm soát vị trí phân trang.

@media print {
/* Tránh phân trang trước tiêu đề h2 */
h2 {
page-break-before: avoid;
}
/* Cấm phân trang giữa đoạn văn */
p {
page-break-inside: avoid;
}
/* Buộc phân trang trước footer */
.footer {
page-break-before: always;
}
}
 
5.Điều chỉnh lề và nền
Loại bỏ hình nền/màu nền (tiết kiệm mực), tùy chỉnh lề trang.
@media print {
body {
background: none !important;
margin: 2cm; /* Thiết lập lề in */
}
/* Buộc hiển thị nền trắng cho các phần tử khi in */
.resume-section {
background-color: white !important;
-webkit-print-color-adjust: exact; /* Chrome/Safari */
print-color-adjust: exact;
}
}
III. Ví Dụ Mã Hoàn Chỉnh
<!DOCTYPE html>
<html>
<head>
<style>
/* Kiểu dáng thông thường */
.nav { background: #333; color: white; padding: 10px; }
.sidebar { float: right; width: 30%; background: #f0f0f0; }
a { color: blue; }
/* Kiểu dáng khi in */
@media print {
.nav, .sidebar { display: none; }
body {
font-size: 12pt;
color: #000;
margin: 1cm;
}
a::after { content: ” (” attr(href) “)”; }
.page-break { page-break-before: always; }
}
</style>
</head>
<body>
<nav class=”nav”>Thanh điều hướng (ẩn khi in)</nav>
<div class=”content”>
<h1>Hồ sơ cá nhân của tôi</h1>
<p>Liên hệ với tôi: <a href=”https://example.com”>Trang web cá nhân</a></p>
<div class=”page-break”></div>
<h2>Kinh nghiệm làm việc</h2>
<p>2020-2023: Kỹ sư Front-end</p>
</div>
<div class=”sidebar”>Thanh bên (ẩn khi in)</div>
</body>
</html>

IV. Những Lưu Ý Quan Trọng

Phương pháp kiểm tra:
Không cần phải in thật, chỉ cần sử dụng chức năng “Xem trước khi in” trên trình duyệt (phím tắt Ctrl/Cmd + P) để kiểm tra.

Lựa chọn đơn vị:
Khuyến khích sử dụng pt (point), cm/mm (đơn vị vật lý) thay vì px, vì nó phù hợp hơn với kích thước giấy.

Vượt qua kiểu dáng mặc định:
Các kiểu dáng in có thể cần phải sử dụng !important để ghi đè lên các kiểu dáng ban đầu (nhưng nên dùng ít).

Xử lý màu nền:
Trình duyệt mặc định không in màu nền, nếu cần hiển thị, bạn cần thiết lập bắt buộc:

-webkit-print-color-adjust: exact;
print-color-adjust: exact;

V. Kỹ Thuật Nâng Cao

Tùy chỉnh đầu trang và chân trang:
Sử dụng quy tắc @page để định nghĩa:

@page {
margin: 2cm;
@top-center {
content: “Hồ sơ cá nhân của tôi”;
}
}

(Lưu ý: Trình duyệt hỗ trợ hạn chế, hiệu quả có thể khác nhau giữa các trình duyệt).

Nhiều kiểu dáng cho các trang khác nhau:
Sử dụng trang tên:

.cover-page {
page: cover; /* Chỉ định tên trang */
}
@page cover {
margin: 5cm;
}

.cover-page {
page: cover; /* Chỉ định tên trang */
}
@page cover {
margin: 5cm;
}

Đến đây là bài viết chi tiết về CSS @media print. Hy vọng các bạn sẽ tiếp tục ủng hộ trong tương lai!

Tài nguyên này được người dùng tải lên và nội dung được lấy từ Internet. Trang web này chỉ giới thiệu miễn phí để học tập và chia sẻ. Nếu có bất kỳ vấn đề bản quyền hoặc vấn đề nào khác, vui lòng liên hệ với biên tập viên của trang web này để xử lý!

Lưu ý quan trọng: : Nếu phần mềm liên quan đến thanh toán, thành viên, nạp tiền, v.v., thì đây là những hành động của nhà phát triển phần mềm hoặc công ty sở hữu phần mềm đó và không liên quan gì đến trang web này. Cư dân mạng cần phải tự đưa ra phán đoán của mình.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *