【问题标题】:Is there a way to change the default color of a selected html listbox item?有没有办法更改选定的 html 列表框项的默认颜色?
【发布时间】:2012-04-09 18:42:42
【问题描述】:

好的,不确定这是否可行,但我想更改所选 HTML 列表框项的默认颜色。我不是在谈论列表框选项标签的背景颜色。这可以通过 CSS 来完成,我明白了。我说的是在选择项目时覆盖该背景颜色的颜色。在 Chrome、FF 和 IE 中,如果我只是将背景颜色更改为红色,然后从列表中选择项目,则颜色现在为蓝色。我似乎找不到任何关于是否可以覆盖颜色的信息,但我希望这里的人可能知道。感谢您的帮助。

【问题讨论】:

  • 虽然我从未在任何网站上遇到过这种情况,而且我认为这是不可能的,因为 javascript 中的列表框没有真正的“项目”对象(我不知道),这是个好问题。
  • 对不起,我所说的“项目”是指
  • OP....如果您想设置选择框的样式,请使用下面的解决方案。仅仅因为人们认为样式选择框不是最佳实践并不意味着您不应该使用它。查看所选的 jQuery,它适用于所有平台。

标签: html css colors listbox listboxitem


【解决方案1】:

不可靠。 <select> 元素的渲染是由操作系统控制的,所以它不是简单的样式。大多数尝试这样做的服务都使用 JS/HTML/CSS 来创建可以随意设置样式的伪元素,而不是真正的<select>s。

一般来说,出于用户体验的原因,我不建议为这个元素设置样式。用户需要看到 UI 元素以相似的方式表现和看待,以了解他们的目的和行为。覆盖默认行为可能会削弱这一点。

【讨论】:

  • OP 询问的是选择框的样式,而不是它是否被 UX 设计普遍接受。
  • @Chad - jimmy 不是在谈论设计。 (有效的)论点是用户的体验可能会由于他们对操作系统 UI 的期望而受到损害。他还通过提供受过教育的建议的附加价值做出了额外的贡献。
  • 谢谢吉米。这是我自己得出的结论。我只是想把这个问题扔出去,看看是否有其他人可以证实这一点。再次感谢。
【解决方案2】:

当我为选择框设置样式时,我使用 jQuery selected 并编辑 CSS

http://harvesthq.github.com/chosen/

【讨论】:

  • 我的意思是臭名昭著的“金锤”反模式:如果你只有一把锤子,那么一切都开始看起来像钉子。 jQuery 并不是要解决所有问题。
  • jQuery 是一个很棒的框架,你可以使用 jQuery selected 来设置选择框的样式,这正是 OP 想要做的,它适用于所有浏览器。据我所知,这是唯一的解决方案。仅仅因为您不想使用 jQuery 并不意味着发布问题的人不会。你对每个答案都是 jquery 的理性表明你的无知,你可能需要停止像你刚离开那样用愚蠢的 cmets 来拖钓这个网站。如果 jQuery 让事情变得更容易,那就使用它。
  • 我没有恶意,如果你被它冒犯了,我很抱歉。只是表达我对这个问题的想法。无论如何,我不欣赏你的语言,这里不适合这种 cmets。
  • 顺便说一句,jQuery 不会为每个选择框设置样式,它只是将其替换为可样式化的结构,即无序列表。
  • 我一直在使用 jQuery。该插件是一个非常好的插件,我可能会在未来的项目中使用它,但我这篇文章的初衷是尝试更改浏览器默认选择的颜色,而无需重新设置列表框的外观。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-16
  • 2011-07-28
相关资源
最近更新 更多