gpt4 book ai didi

javascript - 为什么不使用依赖于浏览器的 CSS?

转载 作者:太空宇宙 更新时间:2023-11-03 20:51:25 24 4
gpt4 key购买 nike

例如,SO 会像大多数热门网站一样在加载时抛出 50 多个 CSS 错误和警告。

只需检测正确的浏览器并动态加载正确的 CSS 就很简单。

我想了解为什么大多数网站都忽略了这些错误/警告?

即使解析无用 CSS 的性能损失可能在微秒范围内,但这不只是草率的编码吗?

最佳答案

两个原因:

  1. 检测客户端正在使用的浏览器是不可能的。您可以嗅探与请求一起发送的 user-agent header (如果存在),但它仅与浏览器制造商和用户一样可靠(因为用户可以禁用或更改 header 值) — 让它成为。

  2. 使用特定于浏览器的 CSS、DOM 或 Javascript“功能”会鼓励非标准实现。参见 http://www.webstandards.org/为什么这很重要。您的建议是回到 W​​eb 开发的“黑暗时代”。

最好直接失败或在您的页面上显示一个横幅,指出客户端使用的浏览器是非标准的,而且考虑到浏览器的价格是多么便宜——免费! — 表明如果用户获得更好的浏览器,他们将在网络上获得更好的体验。

Jon Postel(愿他安息)曾经说过,为了稳健性,应用程序应该严格控制它们发出的内容并容忍它们接受的内容。早期的 HTTP 实现和早期的 HTML 渲染引擎对它们所接受的内容具有极端的容忍度,这最终导致了浏览器大战,Web 浏览器实现了各种非标准扩展,Web 服务器提供了各种损坏、格式错误的服务标记。我认为,如果浏览器制造商在接收非标准或格式错误的数据时简单地抛出错误,我们的情况会好得多。

针对 OP 问题的回应:

I'm trying to understand why these errors/warnings are ignored by most sites?

简短的回答是因为标准规定了特定的行为。请参阅 CSS 标准的 §4.2,网址为 http://www.w3.org/TR/CSS21/syndata.html#parsing-errors .

关于javascript - 为什么不使用依赖于浏览器的 CSS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15508705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com