当你期望放弃 IE11 时会发生什么?
呼!
所以你决定放弃对 IE11 的支持,转而只支持常用浏览器(IE11 的全球用户比例约为 2%)。太棒了!🌲
考虑到这一点,这里列出了您今天(即 2019 年中)应该安全使用的功能,无需polyfill 或功能检测。📃
当然,在我们开始之前,总会有老旧的浏览器。而且,公平地说,新兴市场的浏览器更加复杂:例如 UC、KaiOS(基于旧版 Firefox)和 Opera Mini。在这种情况下,我建议尽可能不要提供任何 JS,或者鼓励用户升级。🤷
出发啦!⬇️
DOM
-
根据分辨率选择图像 URL 📽️ (通过
<img srcset>
和<picture>
) -
框架可以从
Blob
-
使用 禁用表单元素
<fieldset disabled>
,对于正在处理的表单很有用 -
HTML 输入类型
color
和各种日期/时间选项 -
HTML 模板和
<template>
元素(这也是在 JS 中,但您可以在页面中指定它们) -
元素
<meter>
(伴随<progress>
)
JavaScript 语言
-
ES 模块,通过
<script type="module">
和import
/export
🎉 -
模板文字(带反引号)
-
类似课程
class Foo { constructor() { ... } }
-
函数!箭头函数、剩余参数、
async
允许的函数await
、可以yield
JavaScript 库
-
Promise
并且fetch
(不再需要XMLHttpRequest
🚫)- ... XHR现在
responseType
也可以安全地设置为 "json",但你为什么要这么做呢?🤷
- ... XHR现在
-
方法
Array
:find
,includes
;以及String
:includes
,padStart
和padEnd
-
该
Proxy
对象允许有趣的方法 -
方法
Object
:entries
和values
,用于迭代(如Object.keys
) -
对象
URL
(用于检查查询参数和处理 URL) -
属性
currentScript
(“我是什么文件”) -
你可以安全地调度一个,
new CustomEvent('....')
而不必处理奇怪的初始化程序 -
Symbol
和朋友们
JavaScript + DOM
-
的第三个参数
addEventListener
,允许您设置{once: true}
和其他选项 -
IntersectionObserver
,让你判断DOM 节点是否可见 -
即使页面关闭,也
navigator.sendBeacon
可以发送 POST 消息的方法 -
找到最接近的匹配元素
closest
-
的第二个参数
classList.toggle
,允许您通过参数设置或删除类(也是.relList
链接上的属性) -
画布混合模式(这是
.globalCompositeOperation
属性) -
确定 CSS 功能是否受支持
CSS.supports
(但这仅有助于未来的功能)
全新 API
CSS
-
网格🎉
-
CSS 变量,例如
--foo: blue;
,与color: var(--foo)
-
粘性位置
-
CSS 过滤器,允许实现反转、阴影和色调变化等视觉效果
-
图像
object-fit
(Edge 仅在 上支持<img>
),允许您使图像包含或覆盖其内容而不是拉伸 -
改进了指针或鼠标访问的 媒体查询有趣的事实:这是我在 Chrome 上编写的第一个演示之一。
-
新的CSS 光标“抓取”、“放大”、“缩小”
-
伪元素
::placeholder
,用于设置占位符文本的样式<input>
-
使用
initial
或unset
作为 CSS 值 -
单位,取宽度或高度
vmax
中较大者的百分比 -
遵循 JS 方法,CSS
@supports
规则 -
只读和读写伪类选择器(
:read-write
似乎两者中更有用) -
- ...虽然所有常青树都支持,但您需要包含
-webkit-
前缀:是的,即使对于 Edge 和 Firefox
- ...虽然所有常青树都支持,但您需要包含
-
IE11 中的危险错误不再是问题:
呼!
你做到了!恭喜!🎉
如果我遗漏了任何内容,或者这些功能中的任何一个都有很好的资源,请在下面告诉我。
17 👋
文章来源:https://dev.to/samthor/what-to-expect-when-you-re-expecting-to-drop-ie11-ifg