2009-08-21 26 views

Trả lời

40

Trong print.css, đặt overflow: visible thay vì overflow: auto trên div#content. Điều đó cố định nó cho tôi trong Firefox ít nhất. Định nghĩa của overflow auto là: "Nếu overflow bị cắt bớt, một thanh cuộn sẽ được thêm vào để xem phần còn lại của nội dung" - nhưng các thanh cuộn không tồn tại trên các trang đã in.

Tôi đoán rằng vì div nội dung nên trải rộng trên nhiều trang, trình duyệt cho rằng "bạn đang ở bên ngoài vùng chứa của mình và phải được cắt bớt bằng thanh cuộn". Vùng chứa trong trường hợp đó là trang đầu tiên mà div nội dung xuất hiện.

+3

Nó dường như không hoạt động trong Chrome, nhưng hoạt động tốt cho tôi trong IE. –

+0

Tương tự ở đây Jack Thor. Bạn đã tìm thấy một giải pháp? –

+1

Làm việc cho tôi bằng chrome. Tôi đã lười biếng và chỉ cần thêm '* {overflow: auto! Important; } ' –

0

Bạn đã sử dụng giá trị print cho thuộc tính media cho stylesheet của bạn như

<link rel="stylesheet" href="print.css" media="print" /> 

Bạn cũng có thể muốn sử dụng page-break-before thuộc tính cho các yếu tố mà bạn không muốn phá vỡ.

+0

có, bản định kiểu in chắc chắn đang được sử dụng trang thực sự chỉ là một danh sách dài các bảng, tôi thực sự không muốn ngắt trang trước mỗi trang – mjr

5

Nếu bất kỳ vùng chứa nào bạn đang cố gắng in được lưu hành, chúng sẽ bị cắt như bạn đang thấy.

Trong print.css của bạn, hãy đảm bảo bạn tắt tất cả phần nổi mà bạn có thể mà không phá hủy bố cục của mình. Đó là một nỗi đau, nhưng trình duyệt hỗ trợ cho in ấn là yếu nhất.

+0

không nổi, đã kiểm tra lại rằng – mjr

+0

đã làm việc cho tôi trong FF ! thanks bredren – redress

+0

Chắc chắn đã giải quyết được vấn đề của tôi. Tôi đặt một lớp mà 'rõ ràng: cả hai;' nơi nó chỉ có thể được tìm thấy trong print.css –

2

Tôi vừa giải quyết vấn đề này trong ie7. Điều này đã được trong một dự án Sharepoint, trong đó có các tế bào bảng và/hoặc divs thiết lập để chiều cao: 100%. Khi in, nó sẽ in các biểu mẫu dài, trang đầu tiên hoặc 2 sẽ in như bình thường, sau đó các trang trống thay vì phần còn lại.

Trong biểu định kiểu in của tôi, tôi đặt những bảng đó & divs thành height: auto, và bây giờ nó in được.

Tôi đang gặp sự cố khác trong IE8 ngay bây giờ. UGH!

0

Tôi đã khắc phục sự cố bằng cách thêm overflow:visible; và cung cấp cho nó padding-right: 30px; để thay thế chiều rộng thanh cuộn.

+0

Điều này không hữu ích. Nó không rõ ràng cho những yếu tố bạn đã thêm những phong cách. – cchamberlain

6

Tôi nhận thấy rằng cài đặt display: inline trên div vùng chứa cũng giúp ích. Một số câu trả lời tuyệt vời ở đây đã làm việc cho tôi trong những tình huống nhất định trong khi ở những người khác thì không.

<div class="container"> 
    <div class="content-cutting-off-here"> 
     Some long text that gets cut off at the end of the page... 
    </div> 
</div> 

Hầu hết mọi người đặt vùng chứa để hiển thị block hoặc inline-block. Đối với tôi nó đã được cắt bỏ văn bản, và thiết lập nó để inline phá vỡ đó. Điều này cũng làm cho widthheight không liên quan đến div vùng chứa vi phạm; mà tôi thấy là phiền toái khi in.

@media print { 
    .container { 
     display: inline; 
    } 
} 

Here is a great article that helped me with this solution.

1

nếu overflow:visible; không hoạt động, hãy thử overflow-y:visible;

(tôi đã body{overflow-y:scroll;}, và body{overflow:visible;} trong print.css không rewrited nó ...)

+1

Im sử dụng @print {}, 'body {overflow: visible;}' đã làm cho tôi. – JerryA

4

Tôi biết đây là một câu hỏi cũ nhưng đây là một câu hỏi khác, cách mới hơn điều này có thể xảy ra.

Kiểm tra xem bạn có đang sử dụng display: flex; trên phần tử được cắt bớt hay không. Đó là vấn đề đối với tôi, đặt nó thành block sửa nó.

Các vấn đề liên quan