需引入html5shiv.js使IE8及以下识别HTML5语义标签;在中添加CDN链接https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js,仅针对IE生效。
HTML5 标签在 IE8 及更早版本直接不识别怎么办
IE8 及以下版本不认识
、
、
这类语义化标签,会当成未知元素,不渲染样式,
也可能取不到——不是 JS 写错了,是 DOM 根本没生成。
必须让旧 IE “知道”这些标签存在,再触发
重绘
:
在
中引入
(推荐用 CDN:
)
只对 IE
别漏掉
(如果页面需打印样式),否则 IE 打印时语义标签仍失效
CSS Flexbox 在 IE10–IE11 表现不一致怎么处理
IE10–IE11 支持的是旧版 Flexbox 语法(
),和现代标准差异大,比如
不支持、
行为异常、
值解析错位。
实际写法要双轨并行:
立即学习
“
前端免费学习笔记(深入)
”;
Comet AI 浏览器
下载 Comet AI 浏览器,体验由 Perplexity AI 驱动的革命性上网方式。内置 AI 助手可实时总结网页、跨标签页对比信息、自动执行任务。告别繁琐操作,让 AI 成为你的浏览副驾,大幅提升研究与工作效率。支持 Windows、macOS、Android 和 iOS。
下载
先写标准属性:
、
、
紧跟着加 IE 兼容前缀:
、
、
用 Autoprefixer 工具自动生成(配置
),别手写——手写容易漏掉
和
这两个关键映射
ES6+ JS 语法在 IE11 运行报错怎么降级
IE11 不支持
、
、箭头函数、模板字符串、解构赋值,哪怕只是写了个
,整个脚本就中断执行。
不能靠“尽量不用新语法”来凑合,得工程化处理:
用 Babel 编译,目标设为
(注意:Babel 7 默认不转
、
,要额外加
或
)
避免用
——Babel 转成
后体积大、性能差;改用
更稳
检查打包后代码是否含
关键字(IE11 支持
,但某些旧版 webpack 插件可能误删
的 polyfill)
图片和字体加载在 IE 中失败的常见原因
IE 对资源路径、MIME 类型、字体格式极其敏感,常出现“图片空白”或“字体 fallback 到宋体”。
几个硬性检查点:
的
路径不能含 URL 编码空格(如
),IE 会直接 404;用下划线或连字符代替空格
Web 字体必须提供
(IE8–IE11 必需)和
(IE9+ 推荐),仅用
会导致 IE 全部失效
CSS 中
的
顺序很重要:把
放最前,IE 会跳过后续声明;不要写成
IE 兼容不是加几个 polyfill 就完事,而是每个技术点都有独立的断裂面。最容易被忽略的是:CSS 选择器层级超过 4095 条时,IE 会静默丢弃后面所有规则——查了半天样式不生效,结果是压缩工具把多个 CSS 文件合并后超限了。
document.getElementByIdhtml5shiv.jshttps://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.jshtml5shiv-printshiv.jsdisplay: -ms-flexboxflex-wrapalign-contentorderdisplay: flexflex-direction: rowjustify-content: centerdisplay: -ms-flexbox-ms-flex-direction: row-ms-flex-pack: centerbrowsers: ["ie >= 10"]-ms-flex-align-ms-flex-line-packconstletconst name = "Alice"ie 11Promisefetch@babel/polyfillcore-jsasync/awaitregeneratorRuntimePromise.thenclassclassclasssrc%20.eot.woff.woff2@font-facesrcformat("eot")url("font.woff2") format("woff2"), url("font.eot") format("eot")