Gợi ý gỡ lỗi bản định kiểu in?


238

Gần đây tôi đã làm việc trên một bản định kiểu in cho một trang web và tôi nhận ra rằng tôi đã bị mất phương pháp hiệu quả để điều chỉnh nó. Đó là một điều để có một chu kỳ tải lại để làm việc trên bố trí trên màn hình:

  • thay đổi mã
  • tab lệnh
  • tải lại

nhưng toàn bộ quá trình trở nên khó khăn hơn nhiều khi bạn cố in:

  • thay đổi mã
  • tab lệnh
  • tải lại
  • in
  • nheo mắt tại hình ảnh xem trước in
  • mở PDF trong Bản xem trước để kiểm tra thêm

Có công cụ nào tôi đang bỏ lỡ ở đây không? Thanh tra của WebKit có hộp kiểm "giả vờ đây là phương tiện phân trang" không? Có phép thuật nào mà Fireorms ( rùng mình ) có thể làm được không?


4
Còn chức năng "Xem trước bản in" của trình duyệt hỗ trợ nó (ví dụ: Firefox) thì sao? Tôi (hầu hết chính xác) đã gỡ lỗi một số trang web để in với nó.
Halil zgür


3
Trong Firefox, mở "Thanh công cụ dành cho nhà phát triển" bằng Shift + F2, nhập "phương tiện mô phỏng phương tiện in" (hoặc "emu" + Tab + "in"), Enter.
Marcello Nuccio


@MarcelloNuccio Đây phải là một câu trả lời. stackoverflow.com/a/28873496/1696030 nhận được khá nhiều phiếu bầu tích cực để so sánh. Thanh công cụ dành cho nhà phát triển của Nhật Bản là một chút sai lệch vì đây là giao diện dòng lệnh.
Volker E.

Câu trả lời:


327

Có một tùy chọn cho điều đó trong thanh tra của Chrome.

  1. Mở trình kiểm tra DevTools (mac: Cmd+ Shift+ C, windows: Ctrl+ Shift+ C)
  2. Nhấp vào biểu tượng Chuyển đổi chế độ thiết bịChuyển đổi nút chế độ thiết bị , nằm ở góc trên bên trái của bảng DevTools. (cửa sổ: Ctrl+ Shift+ M, mac: Cmd+ Shift+ M).
  3. Nhấp vào biểu tượng Ghi đè khác ghi đè nhiều hơn ở góc trên bên phải của chế độ xem trình duyệt để mở ngăn kéo devtools.
  4. Sau đó, chọn Phương tiện trong ngăn kéo mô phỏng và kiểm tra hộp kiểm phương tiện CSS .

    nhập mô tả hình ảnh ở đây

Cái này cần phải dùng mẹo.

Cập nhật: Các menu đã thay đổi trong DevTools. Bây giờ có thể tìm thấy nó bằng cách nhấp vào menu "ba chấm" ở góc trên cùng bên phải> Công cụ khác> Cài đặt kết xuất> Mô phỏng phương tiện> in.

Nguồn: trang Google DevTools *


5
Cảm ơn, đó là những gì tôi đang tìm kiếm, không thể tìm thấy nó: / Tuy nhiên, phím tắt không hoạt động nữa. Tôi chỉ thực hiện biểu tượng bánh răng F12 + ở góc dưới bên phải, sau đó cài đặt nằm dưới tab Ghi đè,
Aurelien

18
tiếc là nó không chính xác 100% :(
maazza

9
Trong Chrome 32.0.1700.14 beta-m Aura, "Mô phỏng phương tiện CSS [in]" bị thiếu :(
Rocket Hazmat

11
Câu trả lời này cần được sửa chữa. Kể từ Chrome 48, trình giả lập biểu định kiểu in không còn nằm trong "Thi đua" mà dưới "Kết xuất".
chharvey

13
Menu ba chấm (bên phải) trong trình kiểm tra> Công cụ khác> Cài đặt kết xuất> Phương tiện mô phỏng> in
allicarn

74

Tôi giả sử bạn muốn kiểm soát cửa sổ in càng nhiều càng tốt mà không cần sử dụng cách tiếp cận HTML sang PDF ... Sử dụng màn hình @media để gỡ lỗi - @media in cho css cuối cùng

Các trình duyệt hiện đại có thể cung cấp cho bạn một hình ảnh nhanh chóng về những gì sẽ xảy ra tại thời điểm in bằng cách sử dụng inchpts trong một @media query.

@media screen and (max-width:8.5in) { /* resize your window until the event is triggered */
    html { width:8.5in; }
    body { font: 9pt/1.5 Arial, sans-serif; } /* Roughly 12px font */
 ...
}

Khi trình duyệt của bạn hiển thị "inch", bạn sẽ có ý tưởng tốt hơn về những gì mong đợi. Cách tiếp cận này nên tất cả nhưng kết thúc phương pháp xem trước in. Tất cả các máy in sẽ làm việc với ptincác đơn vị, và sử dụng kỹ thuật @media sẽ cho phép bạn nhanh chóng xem điều gì sẽ xảy ra và điều chỉnh cho phù hợp. Firebird (hoặc tương đương) sẽ hoàn toàn đẩy nhanh quá trình đó. Khi bạn đã thêm các thay đổi của mình vào @media, bạn đã có tất cả mã bạn cần cho tệp CSS được liên kết bằng media = "print"thuộc tính - chỉ cần sao chép / dán quy tắc màn hình @media vào tệp được tham chiếu.

Chúc may mắn. Web không được xây dựng để in. Đôi khi, việc tạo một giải pháp cung cấp tất cả nội dung của bạn, các kiểu bằng với những gì nhìn thấy trong trình duyệt có thể là không thể. Chẳng hạn, bố cục chất lỏng cho đối tượng chủ yếu là 1280 x 1024 không phải lúc nào cũng dễ dàng dịch sang bản in laser 8,5 x 11 đẹp và gọn gàng.

Tài liệu tham khảo W3C cho purusal: http://www.w3.org/TR/css3-mediaqueries/


Chỉ muốn nhận xét rằng phương pháp này là khá thông minh. Dễ dàng thay đổi kích thước cửa sổ một chút để "chuyển đổi" kiểu in hơn là sử dụng chức năng xem trước bản in. Mặc dù đôi khi bạn vẫn phải làm điều đó để tương thích với IE và như vậy, điều này rất tốt cho việc lặp lại các kiểu in ban đầu.
chucknelson

@Chuck. Cảm ơn người đàn ông. Này, tôi nhận ra bản demo của mình là ngoại tuyến, vì vậy tôi đã tạo ra một câu đố cho nó. jsfiddle.net/dNEmT
Dawson

20

Chrome 48 , bạn có thể gỡ lỗi phong cách in trong Rendering tab.

Nhấp vào biểu tượng menu trên cùng bên phải của trình kiểm tra và Cài đặt kết xuất .

Chỉnh sửa
cho Chrome 58 , vị trí đã thay đổi thành Trình theo dõi web> Menu> Công cụ khác> Kết xuất


4
Chrome 49: F12 (bảng điều khiển dành cho nhà phát triển) -> ESC (bảng điều khiển) -> Kết xuất -> Mô phỏng phương tiện in
user1477388 18/03/2016

19

Trong Chrome v41, nó ở đó, nhưng ở một vị trí hơi khác.

nhập mô tả hình ảnh ở đây


3
Thay vào đó, trong v53, trên tab Kết xuất, ở phía dưới có một hộp kiểm cho Mô phỏng Phương tiện sẽ cho phép thả xuống mà bạn có thể chọn In, tương tự như ảnh chụp màn hình được cung cấp
James Gray

16

Có một cách dễ dàng để gỡ lỗi biểu định kiểu in của bạn mà không cần chuyển đổi bất kỳ thuộc tính đa phương tiện nào trong mã HTML của bạn (tất nhiên, như đã chỉ ra, nó không giải quyết được vấn đề về chiều rộng / trang):

  • Sử dụng tiện ích mở rộng Firefox + Web Developer.
  • Trong menu Nhà phát triển web, chọn CSS / Hiển thị CSS theo Loại phương tiện / In
  • Quay trở lại menu Nhà phát triển web, chọn Tùy chọn / Tính năng bền bỉ

Bây giờ bạn đang xem CSS in và bạn có thể tải lại trang của mình vô thời hạn. Khi bạn đã hoàn tất, bỏ chọn "Tính năng bền bỉ" và tải lại, bạn sẽ nhận lại CSS màn hình.

HTH.


7
làm cho khác với bản xem trước in, về cơ bản. có lẽ đây là một điều khó hiểu trong css của tôi. trong mọi trường hợp, nó không giải quyết được vấn đề. cảm ơn
Heartpunk

Vâng, hoàn toàn khác nhau đối với tôi quá. Tôi đã theo dõi jsfiddle này ( jsfiddle.net/2wk6Q/3 ) và bản xem trước in cho thấy các trang có lề đỏ, nhưng điều này hoàn toàn khác.
duality_

1
Tôi phải nói rằng "cách giải quyết" này phù hợp nhất với tôi. Có lẽ tôi may mắn và đó là lý do tại sao chỉ có sự khác biệt nhỏ giữa màn hình in gốc và màn hình in của nhà phát triển web nhưng nó chắc chắn đã giúp tôi tìm ra lý do tại sao các khoảng trống xuất hiện và điều quan trọng nhất - tôi có thể xem mã với con bọ lửa và xem điều gì đang xảy ra vào
Erik erpnjak

13

UI của Chrome là khác nhau một lần nữa như của v53.

Tôi không cần phải sử dụng tính năng này thường xuyên, nhưng bất cứ khi nào tôi làm, tôi sẽ phải tìm ra nơi nhóm Chrome đã di chuyển nó kể từ lần cuối cùng tôi đốt cháy chu kỳ cố gắng theo dõi nó.

Lưu ý rằng đó là menu ... trong ngăn Công cụ Dev chứ không phải menu ... trong ngăn Trình duyệt Chrome.

Xem trước máy in kể từ v53 trên MacOS

Bây giờ cuộn xuống trong phần Kết xuất. Nó thường nằm dưới nếp gấp.


1
Bạn vừa lưu tôi ngày gỡ lỗi print.css. Bạn thật tuyệt vời!
zazvorniki

8

Theo câu trả lời của rflnogueira, cài đặt Chrome hiện tại (40.0. *) Sẽ giống như dưới đây:

giả lập css in chrome


Tôi mất một ít thời gian để xác định tab "Phương tiện". Tôi tiếp tục tìm kiếm nó trong tab "Thiết bị".
Sông Lorin

5

Chỉ cần hiển thị biểu định kiểu in trong trình duyệt của bạn bằng cách media="screen"gỡ lỗi. Chế độ xem trước bản in sử dụng cùng một công cụ kết xuất như chế độ duyệt thông thường để bạn có thể nhận được kết quả chính xác bằng cách sử dụng.


14
Ngoại trừ chế độ duyệt thông thường không có trang, vì vậy tôi không biết nội dung sẽ chảy như thế nào. Chế độ duyệt thông thường có chiều rộng của một số pixel nhất định, trong khi một trang có chiều rộng của một số inch hoặc cm nhất định. Có sự khác biệt độc lập thực hiện cơ bản giữa màn hình và in. Gỡ lỗi giữa những thứ đó là những gì tôi đang theo đuổi.
Jim Puls

1
Trên chrome, kết xuất đồ họa khá khác biệt khi chỉ sử dụng đề xuất này. Sẽ không làm việc.
heartpunk

Chiều rộng "Trang" không khó để hạ xuống, chiều cao thực sự khó khăn. Cả trình duyệt và máy in sẽ đóng một vai trò trong cơn đau đầu 11in. Các trang web có độ dài liên tục. Nếu không có sự đảm bảo về loại thiết bị đầu ra và trình duyệt, tôi không nghĩ bạn sẽ đánh dấu nó mỗi lần. Sử dụng phương pháp HTML sang PDF sẽ có hiệu quả, nhưng điều đó nằm ngoài phạm vi câu hỏi của bạn.
Dawson

3

2019 - Hướng dẫn cập nhật

  1. Mở thanh tra Chrome
    • Từ máy Mac => option+ command+i
    • Từ Windows =>F12
  2. Bấm vào 3 chấm nhỏ, customize and control devTools nhập mô tả hình ảnh ở đây

  3. Lựa chọn More Tools

  4. Lựa chọn Rendering

  5. Cuộn xuống phía dưới để Emulate CSS Media

  6. Chọn printtừ mũi tên xuống

nhập mô tả hình ảnh ở đây


0

Nếu bạn có chức năng in viết lại nội dung của trang sang một cửa sổ mới với biểu định kiểu in được tham chiếu, bạn sẽ có ý tưởng tốt hơn nhiều về việc nó sẽ trông như thế nào trên giấy và bạn sẽ có thể gỡ lỗi với những con bọ lửa cũng vậy.

Đây là một ví dụ về cách thực hiện điều này với JavaScript / jquery

        $("#Print").click(function () {
            var a = window.open('', '', 'scrollbars=yes,width=1024,height=768');
            a.document.open("text/html");
            a.document.write("<html><head>");
            a.document.write('<link rel="stylesheet" href="css/style.css" />');
            a.document.write('<link rel="stylesheet" href="css/print.css" />');
            a.document.write("</head><body>");
            a.document.write($('#Content').html());
            a.document.write('</body></html>');
            a.document.close();
            a.print();
        });

2
Vấn đề với cách tiếp cận này là nếu người dùng chỉ cần chọn "In ..." trong trình duyệt của họ, chức năng javascript này sẽ không bao giờ được gọi.
Ken Liu

bạn không cần hiển thị chức năng in cho người dùng, bạn chỉ cần sử dụng nó cho mục đích gỡ lỗi nếu bạn muốn
Blowsie

Đây là một giải pháp được thiết kế quá mức cho một cái gì đó trình duyệt đã làm. Chỉ cần sử dụng một media="print"media="screen"tương ứng cho các bảng định kiểu của bạn và chỉ cần sử dụng menu trình duyệt hoặc các tổ hợp phím để gọi xem trước bản in. (Trong trường hợp này không khác gì mở một cửa sổ bật lên) Và nếu bạn chỉ gỡ lỗi, hãy áp dụng media="screen"thuộc tính cho kiểu in của bạn cho đến khi bạn hoàn tất việc gỡ lỗi.
ORyan

-1

nhập mô tả hình ảnh ở đây

Trong DreamWeaver có một thanh công cụ hiển thị hầu như bất kỳ tùy chọn kết xuất nào bạn muốn: màn hình, in, phương tiện cầm tay, màn hình chiếu, phương tiện truyền hình, biểu định kiểu thời gian, v.v ... Đây là những gì tôi sử dụng đặc biệt bởi vì nó: hiển thị ngay bản xem trước với 1 nhấn một nút.


1
tốt để biết, nhưng nó sẽ yêu cầu sử dụng một công cụ kết xuất khác với những gì chúng tôi phát triển và vẫn yêu cầu nhiều hơn tải lại. cảm ơn
heartpunk

1
Đã trở lại vào năm 2011, đây là phần mềm độc quyền, chỉ mua trên các nền tảng hạn chế mà bạn cần trả tiền để có được chức năng được yêu cầu để gỡ lỗi web mở.
Volker E.

-7

Tôi sử dụng macro để gửi phím bấm và nhấp chuột liên tục. Trong Windows, AutoHotKey là một phần mềm tuyệt vời và trong OS X, bạn có thể đọc về Automator loại AHK thay thế cho OsX .

Trong Windows (thay thế Ctrl bằng Cmd trong OS X) "Ctrl-s / chuyển sang cửa sổ Fx bất cứ nơi nào trong danh sách các cửa sổ được mở / Ctrl-r" bị ràng buộc với 1 phím không sử dụng để tránh sự thất vọng từ các tác vụ không quan tâm và cuối cùng sẽ cứu cánh tay tôi từ RSI :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.