我的收音机按钮很少。我使用以下css来更改带图像的单选按钮样式。它在firefox,chrome甚至Internet Explorer 9中都能很好地工作,但在Internet Explorer 8中却不行。
input[type='radio'] + label {
margin: 0;
clear: none;
padding: 5px 0 4px 24px;
/* Make look clickable because they are */
cursor: pointer;
background: url(icons.png) left center no-repeat;
background-position:0px -7055px; width:45px; height:20px; border:0px; cursor:pointer
}
input[type='radio']:checked + label {
background-image: url(icons.png);
background-position:-54px -7055px; width:45px; height:20px; border:0px; cursor:pointer
}
答案 0 :(得分:5)
IE8中没有:checked
伪类
http://www.quirksmode.org/css/contents.html
http://www.quirksmode.org/css/enabled.html
我只是在IE8及更低版本中显示正常的单选按钮。这为使用旧技术的人们提供了相同的体验,并且不会给您带来数小时/天的工作负担,只是为了让所有浏览器看起来都一样。
答案 1 :(得分:1)
仅适用于IE 8及以上版本。你可以用
input[type='radio'][checked] + label {
background-image: url(icons.png);
background-position:-54px -7055px; width:45px; height:20px; border:0px; cursor:pointer
}
这适用于IE8及以上版本,但不适用于IE7及以下版本。
答案 2 :(得分:0)
我尝试了所有的polyfills。除了ie9.js,它们都没有奏效。不幸的是ie9.js让我的页面加载速度和一群穿过花生酱的蜗牛一样慢。经过近2(!)天的诅咒,我终于得到了一块IE8单选按钮,并使用了一些jQuery和CSS。
第一个问题是在un / / checked输入中添加和删除一个类。其次是在检查另一个单选按钮后强制IE8重新呈现未检查的输入。我认为这种方法也适用于复选框。
jQuery的:
// maybe you need this next small line, I didn't
// $('input:checked').addClass("selected");
$('input').change(function () { // click() worked too but change is safer
$(this).addClass("selected");
$('input:not(:checked)').removeClass("selected");
// adding a class to a wrapping element
// and then remove it to force IE8 to rerender
var testClass = "testClass";
$(this).parent().parent().addClass(testClass).removeClass(testClass);
});
CSS:
input[type="radio"] {
// display: none; won't work
// so replace the actual button offscreen
// or cover it with following label
}
input[type="radio"] + label {
background-color: red; // or background-image
}
input[type="radio"].selected + label {
background-color: green; // or background-image
}
input[type="radio"] + label,
input[type="radio"].selected + label {
position: relative;
top: 150px;
left: 300px;
height: 48px;
width: 48px;
display:inline-block;
padding: 0;
text-indent: -9999px;
cursor: pointer;
}