如何固定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加具体宽度,单元格加具体宽度,宽度样式不受容器的影响,注意宽度超过纸张会不显示。
根据自己需要的纸张设计表格,如图,修改表格宽度到纸张能容纳的大小。

转载于:https://www.cnblogs.com/huaxie/p/11051242.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要实现表格宽度拖动,可以使用 bootstrap-table 插件的 resizableColumns 插件。具体使用方法如下: 1. 引入插件: ```html <script src="https://cdn.bootcss.com/bootstrap-table/1.15.4/extensions/resizable/bootstrap-table-resizable.min.js"></script> ``` 2. 初始化表格并添加插件: ```javascript $('#table').bootstrapTable({ resizableColumns: true, // 开启列宽拖动功能 columns: [{ field: 'id', title: 'ID' }, { field: 'name', title: 'Name' }, { field: 'price', title: 'Price' }] }); ``` 3. 如果需要固定表头,可以在 CSS 添加以下样式: ```css .fixed-table-header { position: fixed; top: 0; left: 0; z-index: 999; } ``` 然后在表格的父容器添加以下属性: ```html <div class="table-responsive"> <table id="table" data-height="460" data-show-columns="true"> ... </table> </div> ``` 其,`table-responsive` 类用于使表格可以响应式缩放,`data-height` 属性指定表格高度,`data-show-columns` 属性用于显示列选择器。 ### 回答2: Bootstrap Table表格宽度拖动,固定表头的实现方法如下: 1. 使用bootstrap-table插件的table组件来创建表格,并设置table-layout为fixed来固定列宽。 2. 在表格的CSS样式,设置表格容器宽度固定值,以便固定表格宽度。 3. 使用bootstrap-table插件的column的width属性来设置每列的宽度。通过拖拽可调整列宽的方式来改变每列的宽度。 4. 为表格的头部区域创建一个额外的div容器,并设置其CSS样式固定定位和指定高度。 5. 使用jQuery的scroll事件来监听滚动事件,在滚动时将表格头部的div容器进行滚动,使其保持固定在页面上方。 6. 在colgroup标签定义每列的固定宽度,使表格的列宽度表格头部的div容器保持一致。 综上所述,通过使用bootstrap-table插件和一些CSS样式JavaScript代码的设置,我们可以实现Bootstrap Table表格宽度拖动和固定表头的效果。这样,无论用户拖动表格宽度还是滚动页面,表头始终保持在页面顶部,为用户提供更好的表格浏览体验。 ### 回答3: 要实现表格宽度拖动和固定表头,可以使用 Bootstrap Table 插件结合其他一些技术来实现。 首先,引入 Bootstrap Table 插件的样式和脚本文件。在表格容器创建一个 `<table>` 元素,并添加相应的 `class`,如 `table table-bordered table-striped`。 接下来,使用 jQuery UI 的 resizable 方法使表格宽度可以拖动调整大小。为表格添加一个父容器,并给父容器设置合适的宽度。然后,使用 jQuery 选择器选择表格,并调用 resizable 方法,设置拖动范围和回调函数。 为了固定表头,需要创建一个静态的表格头部。复制表格头部的内容并使用 div 包裹起来,添加对应的样式。 接下来,使用 CSS 来实现表格固定表头。设置父容器的 `position` 为 `relative`,表格头部的 `position` 为 `absolute`。通过调整父容器的 `padding-top` 来使表格正文内容向下错开,然后用 `z-index` 来设置表格头部的层级。 最后,为了使表格正文能够滚动,添加 CSS 样式设置表格的 `overflow-x` 为 `auto`。 通过上述步骤,我们就能够实现 Bootstrap Table 表格宽度的拖动和固定表头的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值