我决定不支持IE7;我现在可以使用哪些 JS/CSS/HTML 功能

I've decided not to support IE7; what JS/CSS/HTML features can I now use?

本文关键字:JS CSS 功能 HTML 可以使 不支持 决定 IE7      更新时间:2023-09-26

{想法来自 我决定不迎合IE6 - 我可以使用哪些美味的CSS零食?但我想要IE7版本}

好的,首先,这不是关于我是否应该迎合IE7的讨论。我敢肯定,S.O.上有数百个线程,您可以在其中讨论优点,缺点,市场份额,javascript shivs以及随之而来的所有其他内容。

假设我把两根手指放在 IE7 并忽略了它的存在——

我现在可以在 我制作页面的方式?

伪选择器?

父/子选择器?

硬件加速的马铃薯计数?

其他整洁的东西?

放弃IE7会带来哪些新的自由?

我知道你们中的一些人会渴望告诉我为什么我应该支持 ie7 或关于 js 修复,这意味着我可以使用某些东西等 - 请不要浪费你/我/我们的时间!

Internet Explorer 8被Microsoft吹捧为完全符合CSS2.1。但是,已经发现了许多错误,因此它实际上并不完全兼容,但当然这并不意味着它从版本 7 开始没有变得更好。

无论如何,以下是IE8中引入的一些众所周知的功能,这些功能在IE7中不存在(此列表绝不是详尽无遗的):

JavaScript

  • 选择器 API 级别 1 的基本实现 ( querySelectorAll()
  • 跨域
  • 资源共享(跨域 Ajax)的基本实现
  • 原生 JSON 解析功能
  • DOM 改进(修复 CSS 属性选择器的可能原因 — 见下文)

HTML5 中的 JS API

  • 跨文档消息传递
  • 网络存储
  • 历史遍历

.CSS

CSS2.1

  • IE8 已经赶上了添加到 CSS1 属性中的所有(大多数?)CSS2.1 增强功能,您可以在 MSDN 上找到其列表
  • 修复了盒模型关于折叠边距、浮动和堆叠的问题
  • inherit关键字
  • outline属性
  • white-space pre-wrappre-line的财产
  • 完全支持对任何元素的display: inline-block
  • display: table
  • 生成内容和自动编号:伪元素:before:after,以及quotescontentattr()函数和CSS计数器
  • 打印和分页介质:@page规则现在适用于页面伪类、排版orphanswidows,并且在一定程度上支持分页符
  • 伪类:active:focus
  • :lang()伪类
  • IE7中影响兄弟组合器,CSS2.1的+和CSS3的~的模糊语法问题已在IE8中得到纠正(* + html黑客也不再有效)
  • 仅影响相邻同级运算器+的 DOM 更新的晦涩错误已在 IE8 中得到纠正
  • 影响 IE7 中 CSS2.1 和 CSS3 属性选择器的 HTML 属性和 DOM 属性问题已在 IE8 中得到纠正
  • 一些与特异性相关的晦涩错误已经得到纠正;一个例子是我在这个答案中在IE6/7中确定的各种动态伪类。

CSS3

  • box-sizing CSS3 中用于 content-boxborder-box 的属性(padding-box最初是 Mozilla 提案,因此它在 IE 中不存在;直到最近才被添加到 CSS3 UI 规范中,截至 2012 年 1 月的 Last Call 工作草案,它仍然面临被删除的风险)
  • 一些CSS3功能已经存在于IE中,并且在它们被重新调整为各自的规范之前很久就由Microsoft提出,包括@font-faceoverflow-x/overflow-ytext-align-lastword-wrap(现在overflow-wrap)和Ruby文本。

.HTML

  • <abbr><q>
  • <object>回退

杂项

  • 对数据 URI 的支持有限
  • 符合无障碍的 WAI-ARIA 标准

当然,还有一些来源:

  • IE8发布公告
  • CSS 兼容性和 Internet Explorer
  • Internet Explorer 8 中的 CSS 改进
  • QuirksMode CSS 兼容性表
  • IE7 和 IE8 在 caniuse.com 的功能支持比较