elementui之table表格实现自适应

问题:刚开始想要实现自适应设置了 width:10%;min-width:50; 这样结果表格直接乱了
解决:给min-width设定固定值,这样当浏览器窗口比较小的时候,显示滚动条,当比较大的时候,表格也会自适应占满。
参考

<el-table
      v-loading="loading"
      :data="testresultList"
      :header-cell-style="{ textAlign: 'left' }"
      @selection-change="handleSelectionChange"
    >
      <el-table-column type="selection" width="55" align="left" />
      <el-table-column
        label="被抽食品所属企业"
        min-width="180"
        align="left"
        prop="entName"
        fixed
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="被抽检单位"
        min-width="180"
        align="left"
        prop="sampledUnit"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="被抽食品"
        min-width="160"
        align="left"
        prop="sampleName"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="检测机构"
        min-width="160"
        align="left"
        prop="testOrg"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="检测日期"
        min-width="160"
        align="left"
        prop="testDate"
        :show-overflow-tooltip="true"
      >
        <template slot-scope="scope">
          <span>{{ parseTime(scope.row.testDate, "{y}-{m}-{d}") }}</span>
        </template>
      </el-table-column>
      <el-table-column
        label="检测结果"
        min-width="100"
        align="left"
        prop="testResult"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="检测结果状态"
        min-width="160"
        align="left"
        prop="testResultStatus"
        :show-overflow-tooltip="true"
      >
        <template slot-scope="scope">
          <dict-tag
            :options="dict.type.test_result"
            :value="scope.row.testResultStatus"
          />
        </template>
      </el-table-column>
      <el-table-column
        label="备注"
        min-width="160"
        align="left"
        prop="remark"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="操作"
        min-width="100"
        align="left"
        class-name="small-padding fixed-width"
        fixed="right"
        :show-overflow-tooltip="true"
      >
        <template slot-scope="scope">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            v-hasPermi="['sample:testresult:edit']"
            >查看</el-button
          >
        </template>
      </el-table-column>
    </el-table>
### ElementUI 表格组件固定列自适应时出现错位的解决方案 #### 方法一:使用 `doLayout` 函数调整布局 当表格发生滚动或窗口大小变化时,可以通过调用 `this.$refs.elTable.doLayout()` 来重新计算并修正表格布局。这有助于解决由于浏览器渲染引起的错位问题[^2]。 ```javascript activated() { this.$nextTick(() => { this.$refs.elTable.doLayout(); }); } ``` 此方法可以在 Vue 生命周期钩子中实现,在每次激活路由时自动触发表格重绘操作,从而确保表格始终保持正确的布局状态[^4]。 #### 方法二:防止弹层插入至 body 中 对于某些情况下,如果存在下拉菜单或其他浮动元素干扰,则可能导致固定列与其他部分不对齐的情况。此时可以尝试通过设置属性 `popper-append-to-body="false"` 来阻止这些浮层被追加到文档根节点 `<body>` 下面: ```html <el-select popper-append-to-body="false"> </el-select> ``` 这样做能够使下拉列表保持在其父级容器内,减少对外部因素的影响,进而改善固定列位置偏移的现象[^3]。 #### 方法三:CSS 定义绝对定位 针对特定场景下的样式冲突问题,还可以利用 CSS 的方式来强制设定 `.popper-select` 类的选择器为相对其最近已定位祖先的位置进行放置,并指定具体的坐标参数以达到精确控制的效果: ```css <style lang="scss" scoped> ::v-deep .popper-select { position: absolute !important; top: 35px !important; left: 0px !important; } </style> ``` 这种方法适用于需要长期稳定展示且不希望受到其他样式变动影响的情形之下。 综上所述,以上三种策略可以根据实际应用场景灵活选用或者组合应用,以便更有效地应对 ElementUI 表格组件中可能出现的各种错位情况。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值