IE下checkbox或radio隐藏bug

由于各浏览器对checkbox或radio的渲染效果各不相同,为了美化和统一界面样式,一般会选择用js和css来自定义checkbox或radio的样式,此时一般会隐藏原始的checkbox或radio,用自定义的icon来显示

HTML:

<div class="checkbox">
    <label for="filter_1"><input type="checkbox" name="activities" id="filter_1" value="Activities" checked="checked" />Activities</label>
    <label for="filter_2"><input type="checkbox" name="services" id="filter_2" value="Services" />Services</label>
</div>
<div class="radio-group">
    <label for="male"><input type="radio" name="gender" id="male" value="Activities" checked="checked" />Male</label>
    <label for="female"><input type="radio" name="gender" id="female" value="Services" />Female</label>
</div>

CSS:

input[type=checkbox], input[type=radio] {
	display: none;
}
input[type=checkbox], input[type=radio] {
	visibility: hidden;
}

以上两种写法在IE下会有点击label后checkbox或radio无法选中的bug, 解决此bug有以下几种方案:

1. 用css的其他方法实现checkbox或raido的隐藏

input[type=checkbox], input[type=radio] {
  /*#1 将checkbox和radio放到可视区以外 */
  position: absolute;
  top: -50px;
  left: -50px;
  /*#2 或者将checkbox和radio宽度设计为0 */
  width: 0;
  /*#3 或者将checkbox和radio透明度设置为0 */
  -moz-opacity:0;
  filter:alpha(opacity:0);
  opacity:0;
}

2. 用js解决

$("label").click(function(e){
    e.preventDefault();
    $("#"+$(this).attr("for")).click().change();
});
时间: 2024-11-05 16:26:59

IE下checkbox或radio隐藏bug的相关文章

前端的小玩意(4)自定义checkbox或者radio的外观

原理: 通过隐藏原有的(调透明度和绝对定位),然后用一个新的图标来覆盖上去 CSS代码: .radio { /*这个描述的是输入框的基本样式,透明,绝对定位,浮动在最下*/ opacity: 0; position: absolute; z-index: -1; /*这行是让原图标被其他的遮挡,避免挡住其他按钮影响事件触发*/ <span style="font-family: Arial, Helvetica, sans-serif;">/* </span>o

论checkbox和radio的样式美化问题

原文:论checkbox和radio的样式美化问题 如果你下定决心要改变现有的默认的checkbox和radio的样式,那么我目前有两种办法: 1.自己动手写一个,也就是自己写代码实现将input的checkbox和radio默认的样式隐藏掉,使用绝对定位的方式,手动切换checked和unchecked的图片,定位到原来input显示的地方: 2.使用jQuery的iCheck插件 .      中文DOC地址:http://www.bootcss.com/p/icheck/      git

jQuery实现自定义checkbox和radio样式_jquery

1,起因 最近在工作中要实现自定义式的radio样式,而我们通常使用的时默认的样式,因为自己实在想不到解决的方法,于是开始搜索,最终看到了不错的解决办法,可以完美解决我们遇到的问题. 2,原理 大家都知道在写结构的时候,radio或checkbox都会跟随label一起使用,label的for属性值和input的id值相同的情况下,点击label就可以选中input,这里正是利用label 来覆盖我们的input默认样式,通过给label添加背景图片(美化的checkbox或radio),也就是

HTML复选框和单选框 checkbox和radio事件介绍_基础知识

checkbox 和 radio的事件选择一度让我很迷惑. 开始以我对js的理解,我觉得change事件应该是最合理的,可惜啊ie下change事件是在改变后焦点离开时才触发. 后来就用click mousedown等鼠标事件代替.发现click比mousedown要更完美一些: radio注册了click事件以后,神奇的是用键盘上的上下左右选择时,居然会触发鼠标事件,滚轮也会触发,这种神奇的事情在mousedown下面是不会发生的.(webkit不能使用上下左右选择) checkbox注册cl

Win8.1系统下360浏览器被隐藏了怎么办

  Win8.1系统下360浏览器被隐藏了的解决方法. 具体步骤如下: 1.在默认情况下,360安全浏览器恢复的快捷键是"Ctrl+Q",隐藏之后再次按下就可以恢复了; 2.如果之前有有设置快捷键的话,请回想一下,实在想不起来,我们可以重新打开360浏览器,重新设置隐藏浏览器的快捷键即可恢复之前的窗口.

firefox-火狐下如何获取radio选中值

问题描述 火狐下如何获取radio选中值 火狐下如何获取radio选中值,火狐下radio选中会有什么不一样的,如何能够获取选中的值 解决方案 加个事件onclick=""doRadio(this)"",然后在函数当中var doRadio = function(param){ var value= $(param).val();}这样就能获取当中的值并触发事件

jquery checkbox和radio控件美化实例

由于checkbox与radio的特性,一般利用css教程是无法定义他的样式的,现在我们来讲一款jquery checkbox和radio控件美化实例哦,先到jquery.com下载jquery插件. $(function(){ $('#chklist').hcheckbox(); $('#radiolist').hradio(); $('#btnok').click(function(){ var checkedvalues = new array(); $('#chklist :checkb

combobox-C#vs2010中comboBox的下拉框如何隐藏

问题描述 C#vs2010中comboBox的下拉框如何隐藏 如图,如何让comboBox下面的下拉框一直不显示? 解决方案 一直不显示就用文本框算了,自绘一个假的箭头唬下人. 也许你要的根本不是comboBox,而是带AutoComplete的TextBox 解决方案二: 你要的是设置DropDownStyle属性?

javascript-多个下拉框样式隐藏问题

问题描述 多个下拉框样式隐藏问题 我想在页面上显示一个下拉框,我前面有一个控制的代码,如果选择zazhi其他的下拉框隐藏,选择网站,其它的不显示,用js怎么实现,具体代码,谢谢 解决方案 在杂志的按钮下设置一个自定义属性 例如 data-sort='zazhi',网站的按钮下设置自定义属性 data-sort='wangzhan',app按钮下设置自定义属性data-sort='app',报纸按钮下设置自定义属性data-sort='baozhi';假设这四个按钮统一设置了一个class类为'b