【问题标题】:Select list styled with image overlay not working in Opera选择带有图像叠加样式的列表在 Opera 中不起作用
【发布时间】:2012-08-09 13:07:39
【问题描述】:

我们在 CSS 中使用图像来重新设置选择字段的样式,它们会根据需要在所有主浏览器中显示,但在 Opera 中不显示图像。

我创建了一个 JSfiddle 来说明我也在尝试寻找解决方案。在 Opera 中尝试一下,您就会明白我的意思。

http://jsfiddle.net/muhi101/Gj29j/9/

谢谢

多肉

【问题讨论】:

标签: html css image forms select


【解决方案1】:

并非所有浏览器都 100% 支持选择元素的样式。

您可能想试试这个 jquery ui:https://github.com/fnagel/jquery-ui,让您设计自己的选择列表元素。

【讨论】:

    【解决方案2】:

    为实际的选择框设置样式是不切实际的,尤其是在需要完整的跨浏览器支持的情况下。最好的办法是隐藏选择框并创建一个样式模仿它。有两种基本方法可以做到这一点,jQuery 插件适用于这两种方法。

    隐藏和伪造按钮

    重新设置选择框的样式(只要不需要 IE6 支持)最安全的方法是将选择框的不透明度设置为 0(使其完全透明)并将其放置在根据需要设置样式的 div 顶部(不透明度只影响选择框的按钮部分,不影响下拉部分)。用户看到样式化的按钮,但所有 UI 事件都由实际按钮处理。这种方法适用于除 IE6 之外的所有浏览器(不支持在选择框上使用不透明度)。

    有关这方面的示例,请参阅jQuery Uniform 的演示。

    这是可以在不影响可用性和可访问性的情况下设置选择框的样式。而且这种方法很简单,如果需要,人们可以自行实现,无需插件或 jQuery。这种方法的局限性在于下拉菜单的样式很少,但按钮本身可以完全样式化。

    隐藏和伪造整个选择框

    另一个选项是完全隐藏选择框,并用完全样式的仿制品替换按钮和下拉菜单。在这种情况下,所有 UI 事件都将由模仿处理。

    有关这方面的几个示例,请参阅 jqTransformUI Selectmenu 的演示。

    使用这种方法,按钮和下拉菜单都可以完全设置样式,但会损失可用性和可访问性。它通常不能很好地支持屏幕阅读器,并且当用户单击触摸设备上的选择框时,他们不会得到本机选择器弹出窗口。此外,这种方法对于大多数人来说过于复杂,无法在不使用插件的情况下实施。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-20
      • 2019-06-10
      • 1970-01-01
      • 2010-09-27
      • 2014-08-29
      • 2017-09-17
      • 2023-04-10
      相关资源
      最近更新 更多