返回

IE11的硬伤!ElementUI的日期选择器遇到兼容性问题,怎么破?

前端

解决 IE11 中 ElementUI 日期选择器组件的边框线消失问题

在使用 ElementUI 时,您可能会遇到一个奇怪的问题:在 IE11 浏览器中,日期选择器组件的边框线消失不见了。这会让您的界面看起来不完整且不专业。别担心,这个问题很容易解决,我们只需一点 CSS 即可。

问题分析

这个问题是由 IE11 对 CSS 属性的兼容性问题引起的。当页面放大 150% 时,日期选择器组件的上方和下方边框线会消失。

解决方案

要解决此问题,我们可以使用 CSS hack 强制 IE11 正确渲染边框线。以下是如何操作:

  1. 打开您的 CSS 文件。
  2. 添加以下 CSS 代码:
/* 针对 IE11 的 CSS hack */
.el-date-picker__header,
.el-date-picker__body-wrapper {
  border: 1px solid #dcdfe6 !important;
}
  1. 保存您的 CSS 文件,刷新浏览器,问题就解决了!

代码示例

<template>
  <el-date-picker v-model="dateRange" type="datetimerange" :picker-options="pickerOptions" format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</template>

<script>
import { ref } from 'vue';

export default {
  setup() {
    const dateRange = ref([]);
    const pickerOptions = {
      shortcuts: [{
        text: '最近一周',
        onClick(picker) {
          const end = new Date();
          const start = new Date();
          start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
          picker.$emit('pick', [start, end]);
        }
      }, {
        text: '最近一个月',
        onClick(picker) {
          const end = new Date();
          const start = new Date();
          start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
          picker.$emit('pick', [start, end]);
        }
      }, {
        text: '最近三个月',
        onClick(picker) {
          const end = new Date();
          const start = new Date();
          start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
          picker.$emit('pick', [start, end]);
        }
      }]
    };

    return {
      dateRange,
      pickerOptions
    };
  }
};
</script>

<style>
/* 针对 IE11 的 CSS hack */
.el-date-picker__header,
.el-date-picker__body-wrapper {
  border: 1px solid #dcdfe6 !important;
}
</style>

结论

通过使用上述 CSS hack,我们成功解决了 IE11 中 ElementUI 日期选择器组件的边框线消失问题。现在,您的组件将正常显示,您的用户将获得更好的用户体验。

常见问题解答

1. 为什么我的边框线仍然消失?

确保您正确添加了 CSS hack 代码并且它在 CSS 文件中生效。清除浏览器的缓存并重新加载页面。

2. 这个 hack 是否适用于其他浏览器?

这个 hack 专门针对 IE11。在其他浏览器中,它可能会产生意想不到的结果。

3. 是否有其他方法来解决此问题?

这似乎是解决此问题的最佳方法。如果您遇到任何其他问题,请随时在 ElementUI 论坛上寻求帮助。

4. 我应该一直使用这个 hack 吗?

只有在您在 IE11 中遇到此问题时才应使用此 hack。在其他情况下,它可能会导致不必要的样式更改。

5. 这个 hack 安全吗?

是的,这个 hack 是安全的,不会对您的代码或网站造成任何损害。