【问题标题】:Image maps and HTML5图像映射和 HTML5
【发布时间】:2012-06-25 15:56:48
【问题描述】:

这个问题比技术更哲学。

当网络开发人员被称为网站管理员时,我已经将自己培训为一名网络开发人员,而我选择的工具是 FrontPage,然后转到 Evrsoft 1st Page 2000。

那是我最后一次使用 HTML 图像映射。

现在是 HTML5、AJAX、矢量画布、CSS 3D、jQuery、本地存储、触摸屏 Safari,应有尽有。图像地图已经变得晦涩难懂,甚至谷歌也没有提供太多相关结果;自 2004 年以来,W3C 学校的强制性条目和一些论坛帖子。

显然,使用图像地图创建网站导航或类似的琐事在当时是一个坏主意,而今天它肯定是不可原谅的。

但现在我的任务是在带有背景图像的 div 顶部创建一个多边形可点击区域。

我在图像映射中这样做没有问题,因为它似乎是为完全类似的用例而设计的,虽然我没有进行任何测试,但我无法想象任何浏览器会放弃对元素的支持多年来工作得很好。但我忍不住想,今天一定有更好的方法来做到这一点。

我的网页创作理念是为 IE5.5 开发,然后为 Chrome 边缘设计。这意味着该网站首先需要在即使是最过时的浏览器上也能在基本层面上运行,然后开始添加 JS 和 CSS 以使其更美观、更实用、更快、更简单、更友好和更好。

因此,虽然我知道我可以在 Raphaël 中制作画布并添加各种时髦的悬停效果和东西,但我认为制作如此简单的功能不需要 89 kb(或 X kb)的 JS 库。甚至是 JS。

我不知道 CSS3 是否具有定义多边形区域的能力,但在认识到 CSS3 引入的巨大可能性的同时,我更喜欢将在那里定义的任何东西保留为非必要的风格,可以优雅地退化。

所以在今天的 webdev 世界中,定义多边形点击区域的最跨浏览器方式是什么(最好是通过 jQuery .hover() 或至少是 CSS :hover 可抓取的方式),即'不依赖于少数浏览器中可用的 JavaScript 或 CSS 属性?图像映射真的是唯一的方法吗?移动设备呢?

【问题讨论】:

  • ... 从 IE5.5 开始非常疯狂。真的,你只是在伤害自己。我有一个相当高的访问量网站(每月大约 50 万访问者),在过去 3 年中,我没有一次访问低于 IE6。在过去的一年里,IE6 约占我用户群的 2%。
  • 我并不是针对使用 IE5.5 的用户,我也不想让我的网站在上面看起来很漂亮。我什至没有 IE5.5 的副本来检查我的网站在上面的样子。但是,我在构建时使用这种思维方式,这样我就可以保证我的网站即使在最原始的浏览器上也能正常运行,无论年龄大小(Lynx、Kindle、WAP/Nokia Navigator 时代的浏览器、屏幕阅读器等)。它有助于将内容和结构保持一致,将时髦和天赋保持一致。
  • 哲学是没有解释的——但是为没有 javascript 的最小公分母进行设计会将您的架构限制在一个令人难以置信的原始模型中。没有阿贾克斯。所有通过 HTTP 帖子提交的数据?没有客户端逻辑验证/逻辑/交互性?哎哟。除非您希望所有用户都拥有 1990 年代的 Web 体验,否则您基本上是在谈论设计两个完全不同的网站实现。您不能“逐步降级”ajax 客户端/服务器模型;您将制作该网站的两个版本。这只是太多的额外工作而没有回报。谁用猞猁?
  • 正如我所说,IE5.5 不是我的目标,我不会对其进行测试,但这是我构建网站主干的目的,直到我开始考虑对其进行美化并添加JS 对它的天赋。通过 AJAX 提交很漂亮,但是 JS 真的可以作为表单提交的核心功能的要求吗?例如,您的浏览器和设备必须兼容并启用 JS,否则我网站上的每个表单都无法正常工作?当然,JS 验证并不意味着可以忽略服务器端验证(另一种 IE5.5 风格的方法)。
  • 我当然不是说启用 JS 的用户和禁用 JS 的用户应该有完全相同的用户体验。甚至接近它。我只是说,对我来说,不让您的表单以正常的老式方式提交似乎是一种非常愚蠢的态度。无论如何,在顶部添加 AJAX 提交以使用户体验更好(我愿意)。但在我看来,没有明显的理由为什么我应该专门通过 HTTP 将表单设置为不可提交以支持 AJAX。

标签: image html polygon imagemap


【解决方案1】:

为什么使用图像地图导航不可原谅?它和其他任何工具一样;它有时间和地点。使用带有 javascript 增强功能的图像映射是向后兼容的,可以优雅地降级,并且具有 100% 的浏览器支持。它们不需要像 flash 这样的插件。自从 Web 浏览器问世以来,它们实际上就得到了支持。旧的东西并不意味着它没有用;恰恰相反,这意味着它得到了很好的支持。

我编写了一个名为 ImageMapster 的 jquery 插件来为图像映射添加效果,这样您就可以在不使用 Flash 的情况下创建交互式图像。在这些情况下,通过替换为列表,可以很容易地实现一个没有 Javascript 支持的具有相同功能的工具。就个人而言,我认为尝试在没有 javascript 的情况下为 web 编写就像尝试在没有轮胎的情况下驾驶汽车。没有它,99% 的网络都无法工作。这不是 1995 年。但如果您真的担心,图像地图的好处是基本的导航功能仍然有效。仅使用 CSS 无法做到这一点——如果您有不规则形状的区域,甚至 CSS3 也无法实现。

【讨论】:

  • +1 表示“旧的!= 没用”。 <map> 仍然是 part ofHTML5 specification,因此“旧”甚至不能用于“过时”的上下文中。在您的网站上注意:添加微调器(或任何页面正在加载的指示)将改善用户体验。 “在野外”:提到演示位于“住宅”链接下。我一开始以为是链接坏了,因为截图和登陆页面不匹配。
  • 感谢您的反馈!是的,演示页面可能需要很长时间才能加载 esp。在移动设备上。我应该优化它和/或照你说的做。我真的需要对那个网站进行全面检查并清理文档……只是一天时间不够用!在“野外”链接上,我确实已经说过:)
  • .. 实际上我刚刚意识到我确实有一个用于在站点导航中加载页面的微调器——我怀疑它太微弱了,你没有看到它;似乎快速修复不透明度会有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多