【问题标题】:Select list styled with image overlay not working in Opera选择带有图像叠加样式的列表在 Opera 中不起作用
【发布时间】:2012-08-09 13:07:39
【问题描述】:
【问题讨论】:
标签:
html
css
image
forms
select
【解决方案2】:
为实际的选择框设置样式是不切实际的,尤其是在需要完整的跨浏览器支持的情况下。最好的办法是隐藏选择框并创建一个样式模仿它。有两种基本方法可以做到这一点,jQuery 插件适用于这两种方法。
隐藏和伪造按钮
重新设置选择框的样式(只要不需要 IE6 支持)最安全的方法是将选择框的不透明度设置为 0(使其完全透明)并将其放置在根据需要设置样式的 div 顶部(不透明度只影响选择框的按钮部分,不影响下拉部分)。用户看到样式化的按钮,但所有 UI 事件都由实际按钮处理。这种方法适用于除 IE6 之外的所有浏览器(不支持在选择框上使用不透明度)。
有关这方面的示例,请参阅jQuery Uniform 的演示。
这是可以在不影响可用性和可访问性的情况下设置选择框的样式。而且这种方法很简单,如果需要,人们可以自行实现,无需插件或 jQuery。这种方法的局限性在于下拉菜单的样式很少,但按钮本身可以完全样式化。
隐藏和伪造整个选择框
另一个选项是完全隐藏选择框,并用完全样式的仿制品替换按钮和下拉菜单。在这种情况下,所有 UI 事件都将由模仿处理。
有关这方面的几个示例,请参阅 jqTransform 和 UI Selectmenu 的演示。
使用这种方法,按钮和下拉菜单都可以完全设置样式,但会损失可用性和可访问性。它通常不能很好地支持屏幕阅读器,并且当用户单击触摸设备上的选择框时,他们不会得到本机选择器弹出窗口。此外,这种方法对于大多数人来说过于复杂,无法在不使用插件的情况下实施。