2013-12-09 4 views
10

W3.org के अनुसार, शैली page-break-after स्तर तत्वों ब्लॉक करने के लिए लागू होता है (http://www.w3.org/TR/2004/CR-CSS21-20040225/page.html#page-break-props)लागू करना "पृष्ठ ब्रेक-से पहले" एक तालिका पंक्ति पर (tr)

<tr> एक ब्लॉक स्तर तत्व (इस के अनुसार है: http://www.htmlhelp.com/reference/html40/block.html, यह है)

मैं यह कर रहा हूँ, लेकिन जब मुद्रण पृष्ठ विराम एक वास्तविक पृष्ठ विराम नहीं बना रहा है:

<table> 
    <tr><td>blah</td></tr> 
    <tr><td>blah</td></tr> 
    <tr style="page-break-after: always"><td>blah</td></tr> 
    <tr><td>blah</td></tr> 
    </table> 

मैं इस का सही तरीका क्या कर रहा हूं?

यदि <tr> ब्लॉक स्तर तत्व नहीं था: मुझे इस पृष्ठ को तोड़ने का तरीका कैसा लगता है?

नोट: पहले कोड केवल एक उदाहरण है, लेकिन मैं जो करने की कोशिश कर रहा हूं वह तालिका के हर 5 पंक्तियों को पृष्ठ-ब्रेक रखना है, इसलिए यदि आप उस मामले के लिए कोई सुझाव जानते हैं, तो इसकी सराहना की जाएगी

+1

प्रिंट फ़ंक्शंस ब्राउज़र में खराब रूप से कार्यान्वित किए जाते हैं; आपको सभी तरह की असंगतता मिलती है।यदि आप प्रोग्राम को प्रोग्रामेटिक रूप से बना रहे हैं, तो मैं इसे छोटे टेबल, प्रत्येक पंक्ति में 5 पंक्तियों काटने का सुझाव देता हूं, और उनके बीच पेज ब्रेक डालता हूं। –

+0

इसे छोटे टेबल में काटना "एचटीएमएल संस्करण" (प्रिंटिंग से पहले) में दिखाई देगा :( – sports

+0

फिर प्रिंटिंग करते समय उन्हें काट लें ... –

उत्तर

11

<head> के अंदर, इस शैली

<head> 
    <style> 
     @media print { 
      tr.page-break { display: block; page-break-before: always; } 
     } 
    </style> 
</head> 

इस तरह निर्धारित करते हैं, यह सही इस तालिका पंक्ति से पहले मुद्रण के दौरान एक पृष्ठ विराम का उत्पादन करेगा।

<tr class="page-break"> 
</tr> 
+6

इसके अतिरिक्त (बदसूरत को रोकने के लिए टीडीएस, जो कि एक ब्लॉक है जो डिस्प्ले ब्लॉक है) मैंने क्लास 'पेज ब्रेक' और ऊंचाई = 0. – phikes

+0

के साथ एक खाली टी डाली है, आप रिक्त ट्रू की आवश्यकता से बचने के लिए छद्म-तत्व का भी उपयोग कर सकते हैं: '@media प्रिंट { tr.page ब्रेक: पहले { सामग्री: ""; प्रदर्शन: ब्लॉक; पेज ब्रेक-से पहले: हमेशा; } } ' –

+1

यह वास्तव में काम करते हैं या कुछ भी बदलने की, कम से कम नहीं प्रतीत नहीं होता क्रोम 50-कुछ में। –

2

The site you referenced कहा गया है कि <tr> "भी एक ब्लॉक स्तर तत्व माना किया जा सकता है, क्योंकि यह ब्लॉक स्तर तत्व शामिल हो सकते।" न तो W3.org या Mozilla docs राज्य जो <tr> एक ब्लॉक-स्तर तत्व है।

कुछ संभव समाधान

  1. शब्दों और अपने उदाहरण के आधार पर, मैं यह सुनिश्चित करना होगा कि सेल एक सच्चे ब्लॉक स्तर तत्व शामिल है। यहां <h1> और <p> का उपयोग करके दो उदाहरण दिए गए हैं जो ब्लॉक-स्तरीय टेक्स्ट तत्व हैं।

    <tr style="page-break-after: always"><td><h1>Next Section</h1></td></tr> 
    <tr style="page-break-after: always"><td><p>This will be a new page.</p></td></tr> 
    
  2. अन्य ने समान समस्याएं रिपोर्ट की हैं और समाधानों में से एक आपके लिए काम कर सकता है।

  3. My Lister से उल्लेख किया है, आप कर सकते थे attempt to catch the printing action या उस तालिका ताकि आप को अलग होता पेज का प्रिंट संस्करण उत्पन्न प्रत्येक पांच पंक्तियों के बाद वांछित पेज ब्रेक प्राप्त कर सकते हैं।

संबंधित मुद्दे