【发布时间】:2011-06-10 16:57:30
【问题描述】:
我想在 Web UI 中使用图标,同时保留单击链接将实现的上下文语言,但可能不显示文本和拥挤的 UI 空间。例如,使用 CRUD 屏幕,我想显示一个用于添加项目的加号图标,一个用于删除它的减号图标,一个用于编辑它的铅笔图标,以及一个用于搜索不同项目的放大镜。有几种方法可以实现这一点。
在
anchor 内渲染一个img元素。img alt属性将描述图标所代表的内容(alt="pencil icon"),而 title 属性将描述预期结果(即“单击此处编辑此小部件”)。仅渲染
anchor 标签,并使用css 将图像显示为背景。在这种情况下,锚的内容应该描述预期的结果,但是it needs to be wrapped in a span element so that its display style can be set to none。锚点还应该包含与内容匹配的标题属性(当然没有周围的跨度)。
在我看来,选项 #2 更容易在 asp.net mvc 应用程序中实现。由于图标是设计问题而不是标记问题,因此在 CSS 中定义图像是有意义的。从代码维护的角度来看,它也使事情变得更容易......更改 img src 位置只需要更改 CSS 文件,而不需要更改视图文件。删除 CSS 也会导致应用程序回退到全文可访问性。
让我闻起来很有趣的是关于将链接内容嵌套到跨度中的部分,以便它可以在 css 中设置disply: none;。另一件事是,如果我使用 :hover 选择器来交换图像并提供翻转/滚动效果,则图像的交换时间似乎比使用 javascript 时要长。
我错过了什么吗?
【问题讨论】:
标签: css asp.net-mvc icons background-image image