2010-01-12 31 views
20

Đây là một Nhiều Choice thi điển hình, Giả dạng câu hỏi:CSS và In ấn: Giữ khối văn bản cùng

<question qid='1'> 
<stem>What is your name?</stem> 
<choice value = 'a'>Arthur, King of the Britons</choice> 
<choice value = 'b'>There are some who call me ... Tim!</choice> 
<choice value = 'c'>He is brave Sir Robin, brave Sir Robin, who-- Shut up! Um, n-- n-- n-- nobody, really. I'm j-- j-- j-- ju-- just, um-- just passing through.</choice> 
<choice value = 'd'>Sir Galahad... the Chaste.</choice> 
<choice value = 'e'>Zoot... Just Zoot.</choice> 
</question> 

và tôi đã có tất cả điều này ánh xạ tới phong cách phù hợp với các nút radio cho web.

Bây giờ, tôi cần tạo phiên bản có thể in của thử nghiệm. Điều này thực sự đơn giản hơn, trong đó tôi không cần phải bao gồm radio, chỉ cần '___' cho một dấu kiểm. Vấn đề chính là làm thế nào để giữ cho các câu hỏi từ tách trên ngắt trang.

+0

Rollback of edit. "góa phụ" là thẻ chính xác. "Windows" thì không. –

+0

Điều này không cần thẻ mới. – Charles

+0

Điều đó có thể đúng. Nhưng bản chỉnh sửa đã sai. –

Trả lời

23

Tôi chưa bao giờ có may mắn với việc ngăn chặn những thứ như thế. Nó có thể là một chút bẩn, nhưng nếu các câu hỏi thường có chiều dài tương tự, bạn có thể buộc một trang-break sau mỗi câu hỏi X?

<style type="text/css"> 
.pageBreak{ 
    page-break-before: always; 
} 
</style> 

<question>...</question><br class="pageBreak" /> 
<question>...</question> 

(Hoặc áp dụng lớp đó đến câu hỏi hoặc bất cứ điều gì bạn muốn)

Bạn có thể thử bằng cách sử dụng trang-break-bên trong bất động sản, nhưng tôi đã không nhìn thấy nó phù hợp như hỗ trợ trình duyệt cho nó là một mớ hỗn độn ngay bây giờ:

question { 
    page-break-inside:avoid; 
} 
+1

Có vẻ như trang-break-inside chỉ được hỗ trợ trong Opera, điều này khiến nó trở nên vô dụng đối với "Thế giới thực" (tm) Tôi đã nghĩ về tùy chọn khác, nhưng thân cây khác nhau từ một lớp lót đến toàn bộ đoạn văn, vì vậy không có sự nhất quán về kích thước. –

+1

Hoạt động trong IE8, mặc dù hiện tại trang w3schools cho biết IE không hỗ trợ. Tôi đoán các phiên bản cũ hơn thì không. Firefox 3 phiên bản tôi hiện có, không. Tôi có một yêu cầu tương tự, tuy nhiên trên một báo cáo sẽ được in, quyết định thử và đi theo cách tạo PDF, hy vọng rằng XSL-FO hoạt động. – jamiebarrow

+1

'page-break-inside: tránh' hoạt động cho tôi trong Chrome 22 (vẫn không có gì trong Firefox 15). – bdukes

1

sử dụng một kiểu in riêng biệt, và sử dụng page-break-beforepage-break-after chọn lọc dùng cho hàng đầu của bạn và các câu hỏi kết thúc trên mỗi trang.

Nếu bài kiểm tra là tĩnh, bạn có thể vẽ các lớp bạn sử dụng và làm cho nó hoạt động mà không cần gì hơn CSS.

+0

là ngẫu nhiên, được chọn từ một nhóm. Vì vậy, không có cách nào để biết câu hỏi đầu tiên và cuối cùng của một trang là gì. –

+1

Bạn cần JS để phân tích cú pháp và tìm câu hỏi kết thúc liên quan đến kích thước bạn muốn "trang" của mình. – tahdhaze09

1

Sử dụng bố cục bảng. Nhưng để tránh thay đổi ngữ nghĩa, hãy sử dụng CSS.

question { 
    display: inline-table; 
}