IE浏览器html5字体显示异_修正IE的html5字体法【正字】

IE不支持WOFF2格式,必须将EOT置于@font-face的src首位并带?#iefix参数,严格使用小写format声明,且font-display无效;需通过UA检测或构建分流提供专用字体方案。

ie浏览器html5字体显示异_修正ie的html5字体法【正字】

IE 不支持 @font-face 的 WOFF2 格式

IE 完全不识别 woff2,哪怕你只在 @font-facesrc 列表里写了一行 url('font.woff2') format('woff2'),整个规则在 IE 中都会被忽略——字体不会加载,也不会 fallback 到下一个 src。这不是优先级问题,是解析层面直接跳过。

  • 必须把 woff2 条目放在 woffeot 之后,且不能依赖它触发加载
  • IE 11 及以下只认 eot(首选)、woff(IE9+)、ttf(极少数情况)
  • 别用在线字体服务(如 Google Fonts)的默认链接,它们通常只提供 woff2 + woff,缺 eot

@font-facesrc 的顺序和格式声明必须严格匹配 IE 要求

IE 对 src 声明非常挑剔:它要求 eot 必须第一个,且带问号参数(用于触发 IE 特殊解析),否则即使文件存在也不加载;同时,format() 的字符串必须小写、拼写准确,比如 format('embedded-opentype') 写成 'embedded-opentype' 少了引号或大小写错,整条规则失效。

@font-face {
  font-family: 'MyFont';
  src: url('myfont.eot'); /* IE9 及以下必需的兜底 */
  src: url('myfont.eot?#iefix') format('embedded-opentype'), /* IE6–IE8 关键:带 ?#iefix */
       url('myfont.woff') format('woff'), /* IE9+ */
       url('myfont.ttf') format('truetype'); /* 兜底,部分旧 IE 可能用到 */
}

IE 中 font-display 被完全忽略,且字体加载阻塞渲染

font-display: swap 这类现代属性在 IE 中无任何效果,IE 默认行为是“等待字体加载完成才渲染文本”,导致空白闪烁或长时间显示默认字体。你无法用 CSS 控制它,只能靠预加载 + 缓存策略缓解。

  • 不要指望 font-display 在 IE 生效,删掉它或用条件注释隔离
  • 确保 .eot 文件体积小(一般 ≤ 50KB),避免首屏阻塞过久
  • 使用 预加载 .eot,但需配合 as="font"type="application/vnd.ms-fontobject"

HTML 条件注释已失效,改用 JavaScript 特征检测判断 IE

IE10+ 已废弃条件注释(),但很多老项目仍残留这类写法,结果在 IE11 中反而不生效。真正可靠的判断方式是检查 document.documentModewindow.navigator.userAgent 中的 MSIE / Trident

多多校园交易网

多多校园交易网

v2.2 修改相关字眼,加强搜索功能,重写找回密码功能,减少文件,增加学院功能,补给相关页面,修改相关表单字段名,更新图片新闻显示功能,修正租房搜索,增加BLOG,BBS文件夹,并修改频道设置和导航布局,去除相关ID扫描漏洞·全站设计考虑校园电子商务模式,人性化的设计,独特的校园式网络交易平台。 ·功能十分强大的后台管理界面,通过IE浏览器即可管理整个网

下载

立即学习前端免费学习笔记(深入)”;

if (navigator.userAgent.indexOf('MSIE') !== -1 || !!navigator.userAgent.match(/Trident.*rv:11/./)) {
  // 是 IE,可动态插入 eot 专用样式或替换 font-family
  document.documentElement.classList.add('ie');
}

更稳妥的做法是在构建时输出两套字体 CSS:一套给现代浏览器(含 woff2),一套专供 IE(仅 eot + woff),通过服务器 User-Agent 分流或前端加载逻辑区分。

IE 的字体问题从来不是“加个格式就完事”,关键在顺序、后缀、参数、加载时机四者严丝合缝——漏一个,字体就回退到宋体。

https://www.php.cn/faq/1976559.html

发表回复

Your email address will not be published. Required fields are marked *