Element table 的padding失效

咨询各位朋友,用Element table做的表格,表头留空解决不了(我想将表头的留空尽量缩小),下记是我的el-table和 style代码块,
里边的padding:0一直是失效的,请问这是什么原因?

img

这是完整的代码:

<template>
<div id="BiaoGeA">
  <div class="biaogeA-title">出货</div>
  
  <!-- <div>{{R_qita_count}}</div> -->
  <el-table
    :cell-style="{padding:0,borderColor:'white'}"
    style="font-size:25px;width: 100%; border:2px solid; border-color: white;background: transparent"   
    :row-style="{height:0+'55px',}" 
    :data="tableData"
    border>

    <el-table-column
      align="center"
      prop="jitaihao"
      label="客户"
      width="165">
    </el-table-column>


      <el-table-column
      prop="pinfan1"
      align="center"
      label="订单号"
      width="270">
    </el-table-column>
    <el-table-column
      prop="jihua1"
      align="center"
      label="收货状态"
      width="165">
    </el-table-column>
    <el-table-column
      prop="shiji"
      align="center"
      label="入库状态"
      width="165">
    </el-table-column>
    <el-table-column
      prop="wanchenglv"
      align="center"
      label="状态"
      width="165">
    </el-table-column>

  </el-table>
  </div>
</template>

<script>

// import * as echarts from 'echarts'
// import 'echarts-gl'

export default {
  name: 'BiaoGeA',
 //
  methods: {




  },

  created() {
        // setInterval(this.test, 10000);

      },

  data () {
    return {



      tableData: [{
        jitaihao: '甲甲',
        pinfan1: '770/780',
        jihua1:'3000',
        shiji:'2000',
        wanchenglv:'67%',
        pinfan2:'250/260',
        jihua2:'30000',

      }, {
        jitaihao: '乙乙',
        pinfan1: 'FC258-M1',
        jihua1:'6000',
        shiji:'3000',
        wanchenglv:'50%',
        pinfan2:'40110',
        jihua2:'80000',


      },{
        jitaihao: '丙丙',
        pinfan1: '09线轮',
        jihua1:'40000',
        shiji:'3000',
        wanchenglv:'8%',
        pinfan2:'计划停止',
        jihua2:'——',


      },{
        jitaihao: '丁丁',
        pinfan1: 'X7V11',
        jihua1:'80000',
        shiji:'6000',
        wanchenglv:'8%',
        pinfan2:'6218/19',
        jihua2:'80000',


      },{
        jitaihao: '戊戊',
        pinfan1: 'X7V14',
        jihua1:'50000',
        shiji:'10000',
        wanchenglv:'20%',
        pinfan2:'6238',
        jihua2:'20000',


      },]
    }
  }

}


</script>

<style lang="less">




#BiaoGeA {


  background-color: transparent;


.biaogeA-title {
    // height: 50px;
    font-weight: bold;
    text-indent: 2px;
    font-size: 60px;
    // margin-bottom: 10px;
    // display: flex;
    // align-items: center;
    // color:rgb(255, 255, 255);
    border:2px solid white;
    border-bottom:0px ;
    text-align:center
    
    
  }



  .el-table,
  .el-table__expanded-cell {
            background-color: transparent !important;
            color:white;
            padding-top: 0!important;
            padding-bottom: 0!important;                            
        } 

               
  .el-table th,
  .el-table tr,
  .el-table td {
            background-color: transparent !important;
            padding-top: 0 !important;
            padding-bottom: 0!important;
        } 


.el-table__header th {
  margin-top: -10px;
  margin-bottom: -10px;
}

.el-table__header tr,
.el-table__header th {

overflow:hidden;
text-overflow: ellipsis;
margin-top: -10px;
margin-bottom: -10px;
  height: 80px;
  font-size:150%;

}
      



}
 </style>



不是padding影响的
不是padding影响的
不是padding影响的
原因是element的table组件都是以cell为单元的,cell本身有默认样式,

img


行高为23px,cell本身不设高度,也就是说,cell行高的本身就是高度,多余的部分overflow hidden了,被隐藏了。
看上去特别像有padding,其实不是。
解决办法是设置行高
请答主看我设置后的效果:

img

贴出修改后的vue



<template>
    <div id="BiaoGeA">
        <div class="biaogeA-title">出货</div>
        <div> </div>
        <!-- <div>{{R_qita_count}}</div> -->
        <el-table :cell-style="{padding:0+'px',borderColor:'white'}" style="font-size:25px;width: 100%; border:2px solid; border-color: white;background: transparent" :data="tableData" border>

            //:header-row-style="{background:'none',color:'white',borderColor:'white',fontSize: '11px',height:'60px'}" 表头样式设置 //:style="font-size: 18px;width: 100%; border:2px solid; border-color: white;background: transparent;" 表格内容样式设置 //:row-style="{height:'40px'}" 表格内容单元格高度 //:header-row-style="{background:'none',color:'white',borderColor:'white',fontSize: '35px',height:'90px',padding:0+'px'}" //:header-row-style="{background:'none',color:'white',borderColor:'white',fontSize: '35px',height:'90px',padding:0+'px'}" //row-class-name="rowA" //:row-style="{height:0+'55px',}"

            <el-table-column align="center" prop="jitaihao" label="客户" width="200">
            </el-table-column>

            <el-table-column prop="pinfan1" align="center" label="订单号" width="270">
            </el-table-column>
            <el-table-column prop="jihua1" align="center" label="收货状态" width="360">
            </el-table-column>
            <el-table-column prop="shiji" align="center" label="入库状态" width="360">
            </el-table-column>
            <el-table-column prop="wanchenglv" align="center" label="状态" width="200">
            </el-table-column>

        </el-table>
    </div>
</template>
 
<script>

// import * as echarts from 'echarts'
// import 'echarts-gl'

export default {
    name: 'BiaoGeA',
    //
    methods: {




    },

    created () {
        // setInterval(this.test, 10000);

    },

    data () {
        return {



            tableData: [{
                jitaihao: '甲甲',
                pinfan1: '770/780',
                jihua1: '3000',
                shiji: '2000',
                wanchenglv: '67%',
                pinfan2: '250/260',
                jihua2: '30000',

            }, {
                jitaihao: '乙乙',
                pinfan1: 'FC258-M1',
                jihua1: '6000',
                shiji: '3000',
                wanchenglv: '50%',
                pinfan2: '40110',
                jihua2: '80000',


            }, {
                jitaihao: '丙丙',
                pinfan1: '09线轮',
                jihua1: '40000',
                shiji: '3000',
                wanchenglv: '8%',
                pinfan2: '计划停止',
                jihua2: '——',


            }, {
                jitaihao: '丁丁',
                pinfan1: 'X7V11',
                jihua1: '80000',
                shiji: '6000',
                wanchenglv: '8%',
                pinfan2: '6218/19',
                jihua2: '80000',


            }, {
                jitaihao: '戊戊',
                pinfan1: 'X7V14',
                jihua1: '50000',
                shiji: '10000',
                wanchenglv: '20%',
                pinfan2: '6238',
                jihua2: '20000',


            },]
        }
    }

}




</script>
 
<style lang="scss">
#BiaoGeA {
  background-color: transparent;

  .biaogeA-title {
    // height: 50px;
    font-weight: bold;
    text-indent: 2px;
    font-size: 60px;
    // margin-bottom: 10px;
    // display: flex;
    // align-items: center;
    // color:rgb(255, 255, 255);
    border: 2px solid white;
    border-bottom: 0px;
    text-align: center;
  }

  .el-table,
  .el-table__expanded-cell {
    background-color: transparent !important;
    color: white;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  .el-table th,
  .el-table tr,
  .el-table td {
    background-color: transparent !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  .el-table__header tr,
  .el-table__header th {
    overflow: hidden;
    text-overflow: ellipsis;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    height: 80px;
    font-size: 130%;
  }
  .el-table th .cell {
    line-height: 80px;
    font-size: 80px;
  }
}
</style>


您的采纳就是我最大的动力

该回答引用ChatGPT

如果您正在使用Element的Table组件,并且在其中使用padding属性却没有效果,可能是因为Element的Table组件已经设置了一些默认样式,导致您设置的padding被覆盖了。

在这种情况下,您可以尝试在CSS中为表格单元格(td)设置padding,而不是为整个表格设置padding。例如,您可以这样设置CSS样式:

.el-table__body td {
  padding: 10px;
}

这将为表格中的每个单元格设置10像素的内边距。您可以根据需要调整该值。

如果您想要减小表头的留白,您可以为表头单元格(th)设置padding,例如:

.el-table__header th {
  padding: 5px;
}

这将为表头中的每个单元格设置5像素的内边距。同样,您可以根据需要调整该值。

请注意,如果您使用了Element的定制主题或者样式覆盖功能,上述CSS选择器的类名可能会有所不同。请根据您的实际情况进行调整。

参考GPT和自己的思路,在你的代码中,padding:0+'px' 中的字符串连接操作可能导致样式失效。尝试使用一个数字值而不是字符串来设置padding值,例如padding: 0px,或者只使用padding: 0来设置。此外,设置padding的位置应该是padding-top、padding-bottom、padding-left和padding-right,而不是简单的padding。因此,如果您想将单元格的上下padding设置为0,可以使用以下代码:


.el-table td {
    padding-top: 0;
    padding-bottom: 0;
}

如果您想将表头的padding设置为0,可以使用以下代码:

.el-table__header th {
    padding-top: 0;
    padding-bottom: 0;
}


同时,你也可以通过在CSS选择器前添加更高的特定性,以确保样式应用于您想要的元素。例如,将.el-table td更改为.el-table table td,可以帮助您确保样式应用于表格中的单元格而不是其他元素。
如果您想让表头中的某些单元格留空,请使用 colspan 属性。例如,如果您想让表头的第一个单元格跨越两列并留空,请使用以下代码:

<table>
  <thead>
    <tr>
      <th colspan="2"></th>
      <th>Column 1</th>
      <th>Column 2</th>
      <th>Column 3</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Row 1</td>
      <td>Value 1</td>
      <td>Value 2</td>
      <td>Value 3</td>
      <td>Value 4</td>
    </tr>
    <tr>
      <td>Row 2</td>
      <td>Value 5</td>
      <td>Value 6</td>
      <td>Value 7</td>
      <td>Value 8</td>
    </tr>
  </tbody>
</table>

如果您想控制表头单元格的间距和边距,请使用 CSS 中的 padding 和 margin 属性。例如,如果您想将表头中的单元格的左右内边距设置为 10 像素,请使用以下代码:

table thead th {
  padding-left: 10px;
  padding-right: 10px;
}


如果您的 padding 属性没有生效,请检查是否存在其他 CSS 规则覆盖了该属性。您可以使用浏览器的开发者工具检查元素样式并查看应用于该元素的所有 CSS 规则。

row-style要header-row-style里面的height去掉或者调高些试下

开发者工具看下盒子模型,排查是哪个元素的边距影响了。这类样式问题都可以这样解决,建议多学习下浏览器的调试技巧,对你的提升会很大

参考chatGPT的内容和自己的思路,在CSS中,负的padding值是无效的。因此,如果您想缩小表头的留空,可以使用负的margin值来代替padding值。例如,您可以使用以下CSS规则来缩小表头的留空:

.el-table__header th {
  margin-top: -10px;
  margin-bottom: -10px;
}


另外,您的代码中也有一些错误。例如,padding:0+'px'应该被写成padding: 0,padding:-10px!important也应该被更改为margin-top: -10px和margin-bottom: -10px。

以下是更改后的CSS规则:

.el-table__header th {
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: -10px;
  margin-bottom: -10px;
}

.el-table,
.el-table__expanded-cell {
  background-color: transparent !important;
  color: white;
  padding-top: 0!important;
  padding-bottom: 0!important;
}

.el-table th,
.el-table tr,
.el-table td {
  background-color: transparent !important;
  padding-top: 0 !important;
  padding-bottom: 0!important;
}


希望能帮到你,回答不易,还请采纳!!!

我还是将完整的代码贴出来,上面的方法都试过了,还是不行,我希望表头的字体调大点,几乎贴到上下两条线:


<template>
<div id="BiaoGeA">
  <div class="biaogeA-title">出货</div>
  <div>  </div>
  <!-- <div>{{R_qita_count}}</div> -->
  <el-table
    

    :cell-style="{padding:0+'px',borderColor:'white'}"
    style="font-size:25px;width: 100%; border:2px solid; border-color: white;background: transparent"    
    
    :data="tableData"
    border>


    //:header-row-style="{background:'none',color:'white',borderColor:'white',fontSize: '11px',height:'60px'}"    表头样式设置
    //:style="font-size: 18px;width: 100%; border:2px solid; border-color: white;background: transparent;"      表格内容样式设置
    //:row-style="{height:'40px'}"          表格内容单元格高度
    //:header-row-style="{background:'none',color:'white',borderColor:'white',fontSize: '35px',height:'90px',padding:0+'px'}"
    //:header-row-style="{background:'none',color:'white',borderColor:'white',fontSize: '35px',height:'90px',padding:0+'px'}"
    //row-class-name="rowA"
    //:row-style="{height:0+'55px',}"

    <el-table-column
      align="center"
      prop="jitaihao"
      label="客户"
      width="165">
    </el-table-column>


      <el-table-column
      prop="pinfan1"
      align="center"
      label="订单号"
      width="270">
    </el-table-column>
    <el-table-column
      prop="jihua1"
      align="center"
      label="收货状态"
      width="165">
    </el-table-column>
    <el-table-column
      prop="shiji"
      align="center"
      label="入库状态"
      width="165">
    </el-table-column>
    <el-table-column
      prop="wanchenglv"
      align="center"
      label="状态"
      width="165">
    </el-table-column>

  </el-table>
  </div>
</template>

<script>

// import * as echarts from 'echarts'
// import 'echarts-gl'

export default {
  name: 'BiaoGeA',
 //
  methods: {




  },

  created() {
        // setInterval(this.test, 10000);

      },

  data () {
    return {



      tableData: [{
        jitaihao: '甲甲',
        pinfan1: '770/780',
        jihua1:'3000',
        shiji:'2000',
        wanchenglv:'67%',
        pinfan2:'250/260',
        jihua2:'30000',

      }, {
        jitaihao: '乙乙',
        pinfan1: 'FC258-M1',
        jihua1:'6000',
        shiji:'3000',
        wanchenglv:'50%',
        pinfan2:'40110',
        jihua2:'80000',


      },{
        jitaihao: '丙丙',
        pinfan1: '09线轮',
        jihua1:'40000',
        shiji:'3000',
        wanchenglv:'8%',
        pinfan2:'计划停止',
        jihua2:'——',


      },{
        jitaihao: '丁丁',
        pinfan1: 'X7V11',
        jihua1:'80000',
        shiji:'6000',
        wanchenglv:'8%',
        pinfan2:'6218/19',
        jihua2:'80000',


      },{
        jitaihao: '戊戊',
        pinfan1: 'X7V14',
        jihua1:'50000',
        shiji:'10000',
        wanchenglv:'20%',
        pinfan2:'6238',
        jihua2:'20000',


      },]
    }
  }

}




</script>

<style lang="less">




#BiaoGeA {


  background-color: transparent;


.biaogeA-title {
    // height: 50px;
    font-weight: bold;
    text-indent: 2px;
    font-size: 60px;
    // margin-bottom: 10px;
    // display: flex;
    // align-items: center;
    // color:rgb(255, 255, 255);
    border:2px solid white;
    border-bottom:0px ;
    text-align:center
    
    
  }



  .el-table,
  .el-table__expanded-cell {
            background-color: transparent !important;
            color:white;
            padding-top: 0!important;
            padding-bottom: 0!important;                            
        } 

               
  .el-table th,
  .el-table tr,
  .el-table td {
            background-color: transparent !important;
            padding-top: 0 !important;
            padding-bottom: 0!important;
        } 


.el-table__header tr,
.el-table__header th {

overflow:hidden;
text-overflow: ellipsis;
padding-top: 0!important;
  padding-bottom: 0!important;
  height: 80px;
  font-size:130%;

}
      



}
 </style>


以下答案由GPT-3.5大模型与博主波罗歌共同编写:
首先,表头的留空可以通过设置表头列的min-width属性来实现,而不是通过设置padding。

其次,在Element table中,如果要设置单元格的样式,可以使用cell-style属性,而如果要设置行的样式,可以使用row-style属性。

最后,在你的代码中,padding: 0 未能生效的原因可能是被其他样式覆盖了。你可以尝试使用更加具体的样式选择器来覆盖其他样式,例如使用 .el-table__body .el-table td 这样的选择器来设置单元格的样式。

下面是留空表头并设置单元格padding为0的代码示例:

<template>
  <div class="table-container">
    <el-table
      :data="tableData"
      :cell-style="{padding: '0px'}"
      :row-style="{height: '55px'}"
      border
    >
      <el-table-column
        label=""
        align="center"
        min-width="100px"
      ></el-table-column>
      <el-table-column
        prop="name"
        label="Name"
        align="center"
        width="200px"
      ></el-table-column>
      <el-table-column
        prop="age"
        label="Age"
        align="center"
        width="100px"
      ></el-table-column>
      <el-table-column
        prop="gender"
        label="Gender"
        align="center"
        width="100px"
      ></el-table-column>
    </el-table>
  </div>
</template>

<style scoped>
  .table-container {
    width: 500px;
    margin: 0 auto;
  }
  .el-table__header th:first-child {
    width: 0;
    padding: 0;
  }
  .el-table__header .cell {
    line-height: 55px;
    font-size: 20px;
  }
  .el-table__body .el-table td {
    padding: 0;
    line-height: 55px;
    font-size: 16px;
  }
</style>

<script>
  export default {
    data() {
      return {
        tableData: [
          { name: "John", age: 30, gender: "male" },
          { name: "Jane", age: 25, gender: "female" },
        ],
      };
    },
  };
</script>

你可以尝试将上述代码与你的实现进行对比。
如果我的回答解决了您的问题,请采纳!


.el-table__header th {
  padding: 5px  !important;
}


```

:header-cell-style="{padding: 0}"

img

你好,你要改表头的话得使用header-cell-style,而不是cell-style,有用的话请采纳

img

.el-table .el-table__header .cell{
  line-height: normal!important;
}

您的采纳就是我最大的动力

img