通过修改Ryan Fait的代码来设置多个单选按钮的样式

时间:2012-01-26 15:20:26

标签: javascript css checkbox radio-button customization

我是使用Ryan Fait的“造型复选框和收音机按钮”代码的忠实粉丝 click here for demo

我遇到了一些麻烦。我正在创建一个调查表单,它有两个用于Ryan代码的用法。第一次使用使用大的快乐按钮,询问你是否对所提出的问题感到高​​兴,无动于衷或悲伤。第二个用途是“为你的体验从0-10评分”,我需要使用一个不同的,小得多的单选按钮图形。

我已经收集到不同单选按钮的每个实例都需要自己的CSS和类名,但我试图自己修改Ryan的代码,1)我不是爱因斯坦,2)我在一个可怕的急于完成其他项目。我试图让这种情况发生的方式我在每个子句(移动背景位置)中放置了一个IF语句,寻找className(class =“hugeButton”vs class =“teenyWeeny”)。我要么得到两个结果中的一个:

  • 原来的LARGE按钮甚至不再出现了。
  • 当您点击任何按钮时,它们会消失

是否有人知道如何修改Ryan的代码:

  1. 允许多种图形和尺寸
  2. 检查确保它仅影响指定的className 元件
  3. 洗衣服,让我成为一个sammich
  4. 如果它不能做#3,我会好的。

3 个答案:

答案 0 :(得分:1)

我想说下载该脚本的另一个副本。在一个js文件中,将“styled”一词的所有实例替换为您的第一个类名,在第二个js文件中,将“styled”一词的所有实例替换为您的第二个类名。根据您要使用的图标,根据需要调整文件中的图标高度。然后就像你说的那样,创建单独的CSS类。复选框/单选按钮不应该相互影响,因为他们使用不同的脚本具有不同的属性,我想。

答案 1 :(得分:1)

我找到了解决办法,我无法相信自己太天真了。

我必须区分这些功能,它仍然使所有单选按钮和选择框都不可见,但javascript覆盖了所有功能,因为它们仍然被命名为相同,例如Custom.init和Custom.init。

我重命名了第二个版本CustomMini,然后在脚本末尾重新使用了窗口onload函数,我只是在页面底部放置了一个Custom.init和CustomMini.init,并且VOILA!

使用类似脚本的两个不同的自定义单选按钮。

我认为必须有一种更有活力的方式来做到这一点,但就目前而言,它是有效的,这很好。

答案 2 :(得分:0)

您不需要触摸javascript - CSS规则覆盖应该有效。

  • 如果单选按钮 - 通常是一个适合此类事件的字段集,则将类应用于包装较小集的元素。
  • 添加将适当大小和背景图像应用于新包装器类中的元素的规则。例如“fieldset.compact input {height:14px}”