想要给element中表格的表头加鼠标划过背景颜色改变,但是不生效

这是没有加hover的我想使它上下垂直居中也是不生效,该怎么解决呢?

img


eltable上有没有事件可以监听鼠标移入或者移出表头(注意是表头)的事件呢?不使用slot=header的情况下

该回答引用ChatGPT
要给element中表格的表头加鼠标划过背景颜色改变,可以使用CSS中的:hover伪类来实现。具体实现方法如下:
1. 在CSS中为表头th元素添加:hover伪类,设置背景颜色。
css
.el-table__header th:hover {
background-color: #f5f5f5;
}

2. 如果想要使表头上下垂直居中,可以使用CSS中的flex布局,将表头容器设置为display:flex,并设置align-items:center。
css
.el-table__header-wrapper {
display: flex;
align-items: center;
}

3. 如果想要监听鼠标移入或者移出表头的事件,可以使用element-ui中提供的header-cell-mouseenter和header-cell-mouseleave事件。具体实现方法如下:
html




日期







javascript
methods: {
handleHeaderMouseEnter() {
console.log('鼠标移入表头');
},
handleHeaderMouseLeave() {
console.log('鼠标移出表头');
}
}

以上是对问题的解答,希望能够帮到你。

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
要给element中表格的表头加鼠标划过背景颜色改变,可以使用CSS中的:hover伪类来实现,例如:

.el-table th:hover {
  background-color: #f5f5f5;
}

这样当鼠标移动到表头上时就会出现背景颜色的变化。

如果想要实现表头内容居中,可以使用CSS中的text-align属性,例如:

.el-table th {
  text-align: center;
}

至于el-table是否有事件可以监听鼠标移入或移出表头,目前官方文档上没有提到,但可以使用JavaScript来监听鼠标移入或移出表头的事件。

下面是示例代码:

<el-table :data="tableData">
  <el-table-column prop="date" label="日期"></el-table-column>
  <el-table-column prop="name" label="姓名" width="180">
    <template slot-scope="{ row }">
      <div class="name-cell">{{ row.name }}</div>
    </template>
  </el-table-column>
  <el-table-column prop="address" label="地址"></el-table-column>
</el-table>
.el-table th:hover {
  background-color: #f5f5f5;
}

.el-table th {
  text-align: center;
}

.name-cell {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
}
mounted() {
  const tableHeader = document.querySelector('.el-table__header-wrapper');
  tableHeader.addEventListener('mouseover', () => {
    console.log('鼠标移入表头');
  });
  
  tableHeader.addEventListener('mouseout', () => {
    console.log('鼠标移出表头');
  });
}

在mounted钩子函数中,通过querySelector方法获取到el-table的表头容器,然后对它绑定mouseover和mouseout事件。当鼠标移入或移出表头时,就会触发对应的事件,这里只是简单的打印一些信息,具体要实现什么功能可以根据需要进行修改。
如果我的回答解决了您的问题,请采纳!

打开控制台看css,如果加上了是被其他样式覆盖了,没加上就是写的选择器有问题。想用flex垂直上下居中,你要把宽先调大,不然被挤下去了。然后再加个 justify-content: center;

宽度调宽一点不就垂直居中了吗


1、通过header-cell-class-name给表头单元格添加类名
比如:<el-table header-cell-class-name="tableStyle"></el-table>
2、然后设置样式即可
::v-deep .tableStyle:hover{
  background: #000!important;
}