css – 使用-webkit-backface-visibility时,单选按钮背景在Windows Chrome中变为白色.有任何变通方法吗?

前端之家收集整理的这篇文章主要介绍了css – 使用-webkit-backface-visibility时,单选按钮背景在Windows Chrome中变为白色.有任何变通方法吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Windows Chrome中存在一个错误,当其父级文件流不在文档流中并且应用了-webkit-backface-visibility时,它会使单选按钮的背景变为白色.

这是在行动:
http://jsfiddle.net/misterkeg/uMajC/

我正在使用-webkit-backface-visiblity:hidden来绕过WebKit转换闪烁错误.

如果我使用-webkit-transform:translateZ(0)修复,也会出现此问题,因此无论何时硬件加速处于活动状态,它似乎都会启动.

将输入的-webkit-backface-visibility重写为可见也无济于事.

这有什么已知的解决方法吗?我已经提交了Chromium bug,但想知道在此期间是否有任何方法可以解决这个问题.

解决方法

我发现了同样的问题但是在不同的环境中,所以可能是-webkit-backface-visiblity不是问题,而是有几种组合.在我的情况下,当带有单选按钮的页面包含像地图这样的谷歌地图(一个专有的地图,我还没有找到地图中究竟是什么导致问题)并且显示在iframe内时,就会出现问题.
如果我使用检查器隐藏地图,单选按钮看起来不错,或者我直接查看页面,而不是iframe内部.

我发现的唯一解决方法是在这个页面来自CSS ninja:http://www.thecssninja.com/css/custom-inputs-using-css.

总之,这是解决方案(从我提到的页面链接到现场演示,http://www.thecssninja.com/demo/css_custom-forms/):

HTML

<label for="input1" class="radio_image">
 <input type="radio" name="input" id="input1" />
 <span>Option 1</span>
</label>

CSS

/*we hide the real radio button*/
.radio_image input[type=radio] {
  position:absolute;opacity:0;
}
/*we assign the span a background image
  which is a capture of the actual radio button*/
.radio_image input[type=radio] + span {
  background-image: url("radio-button.gif");
  background-position: left top;
  background-repeat: no-repeat;
  padding-left: 1.6em;
}
/*if radio is checked we change the background
  image to one with a checked radio button (it can be
  done with a sprite type background too): */
.radio_image input[type=radio]:checked + span {
  background-image: url("radio-button-checked.gif");
}

由于跨度位于标签内部,单击它将与单击单选按钮本身具有相同的效果,因此单选按钮仍然可以正常工作.

我正在开发环境中工作,所以我不能发布你的网址,但是上面的代码链接我觉得很容易看到.

如果您只想定位Chrome,可以尝试使用此帖子中提供的解决方案:
Can you target Google Chrome?

我希望它有所帮助,我不喜欢这么复杂的方式来渲染一个简单的单选按钮,在我的情况下,我已经在我的网站中唯一有问题的页面中使用它并且它运行良好.

猜你在找的CSS相关文章