如何固定table表格寬度,樣式不受容器影響


之前有篇關於LODOP打印超文本表格,兩個樣式相同的表格,出現錯位的情況。
該博文地址:LODOP打印表格錯位的幾種情況
該文試驗了兩種現象,第一種瀏覽器頁面顯示錯位,打印預覽也錯位,第二種瀏覽器頁面表格不錯位,打印預覽卻錯位。
這兩個其實都是和容納table表格的容器有關,也就是樣式有問題的導致的,仔細對比排查樣式,可排查出問題。

想讓樣式不變形,完全按照代碼的寬度,可:在table標簽里添加寬度,單元格里加寬度。這種是不受容器影響的。如下面圖示,按照紙張進行設計表格,而不是瀏覽器

上面那個博文鏈接中,
1.table表格設置了寬度為100%,單元格不設置寬度,導致內容不同每個單元格寬度不同。
2.table表格設置了寬度為100%,每個單元格設置了具體的寬度,然后實際中,表格整體的寬度還是按照的百分之百,設置的具體寬度並不是固定的,只是按照一定比例進行了放大,布滿了瀏覽器的寬度。
這兩種都導致了單元格錯位。

如果table表格不設置寬度為100%,table表格不設置寬度,單元格設置具體的寬度,測試發現,瀏覽器中確實能正常顯示單元格寬度,增大瀏覽器等沒有問題,但是減小的時候,瀏覽器還是會自動對寬度進行縮小,也就是瀏覽器中的表格是這樣的:table不設置寬度,瀏覽器寬度拖動減小,會自適應一樣的表格寬度本身也會改變,即使每個單元格設置了具體的寬度數值,瀏覽器還是自適用。

如果想要去掉樣式和容器的影響,就是把table標簽本身設置上具體寬度,這樣之后,即使瀏覽器怎么拖動,樣式已經固定了,就不會受瀏覽器樣式影響了。

不受容器影響,也就不會發生內容不同導致的錯位現象。
表格代碼:

    <table border=1 cellSpacing=0 cellPadding=0 style="border-collapse:collapse;width:880px;">
        <tr>
            <td style="width:600px;">分析差異點,因瀏覽器版本不同遵循的html標准不同</td>  
            <td style="width:90px;">分析差異點</td> 
            <td style="width:100px;">排查樣式</td>
            <td style="width:90px;">在ie下不同版本仿真情況下驗證差異</td>
        </tr>
    </table>

打印代碼:(紙張設置的較小,表格本身的寬度已經超過了紙張)

    function prn1_preview() {
        LODOP=getLodop(); 
        LODOP.PRINT_INIT("");
        LODOP.SET_PRINT_PAGESIZE(1,600,1600,"");
        LODOP.ADD_PRINT_HTM(0,0,"100%","100%",document.getElementById("div1").innerHTML);
        LODOP.PRINT_DESIGN();
//        LODOP.PREVIEW();    
    };

圖示見后面,和后面的合成了一張圖:

修改為固定寬度后,表格不會隨着容器自適用了,如果想保留自適用,可以合成到一個表格里,或者根據紙張重新設計表格。
解決兩個表格自適應導致錯位的方法:
1.合成一個table表格,同一個表格里不會發生單元格錯位。(保留自適用)
2.兩個表格進行重組,設置具體的表格寬度和單元格寬度,根據紙張進行設計。(不受容器影響,保持樣式不變形,不再自適應,適應設計的表格。)

代碼:(根據紙張設計表格),如該紙張寬度是600, LODOP.SET_PRINT_PAGESIZE中的紙張參數,默認單位是0.1mm,也就是紙張是60mm。
表格設計的寬度迎合紙張,可以轉換成pt試試,60*(72/25.4)約等於170pt。然后隨便分配了下每個單元格占的數值,該表格就能固定寬度顯示且能不會超過紙張。
表格代碼:

    <table border=1 cellSpacing=0 cellPadding=0 style="border-collapse:collapse;width:170pt;">
        <tr>
            <td style="width:70pt;">分析差異點,因瀏覽器版本不同遵循的html標准不同</td>  
            <td style="width:50pt;">分析差異點</td> 
            <td style="width:20pt;">排查樣式</td>
            <td style="width:30pt;">在ie下不同版本仿真情況下驗證差異</td>
        </tr>
    </table>

圖示:

table加具體寬度,單元格加具體寬度寬度樣式不受容器的影響,注意寬度超過紙張會不顯示。
根據自己需要的紙張設計表格,如圖,修改表格寬度到紙張能容納的大小。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM