ie8如何兼容css中的选择器:before和:checked

html-css013

ie8如何兼容css中的选择器:before和:checked,第1张

为了实现ridio 选中ridio 样子自动变用了input:checked + .ridio {background-image:url(../img/radio1.png)}实现,但是后来发现:checked 选择器ie8以下不能识别,最近从一个大神那发现了了一个可以使ie8版本识别css3伪类和属性选择器selectivizr,地址为http://www.zhangxinxu.com/wordpress/2010/09/selectivizr-%E8%AE%A9ie6ie7ie8%E6%94%AF%E6%8C%81css3%E4%BC%AA%E7%B1%BB%E5%92%8C%E5%B1%9E%E6%80%A7%E9%80%89%E6%8B%A9%E5%99%A8/

实际使用时发现,ridio 选中样式不会随着点击选中而改变样子,看起来好像就没有什么作用。后来发现,原来在ie8下我的Input隐藏了display:none这种写法好像ie8默认不能点击,只能用filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0)来透明隐藏住按钮,但是input所占的空间还是存在的,这样看起来比较丑,但是目前也没啥比较好的解决方法,只想这个样式在ie8以下使用就好,ie9以上还是用display:none来实现。

问题来了,之前是:root来区分ie9的hack的,结果selectivizr支持了:root属性,只能换了另一种写法

[html] view plain copy

<span style="font-size:14px">.hide{filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0)}

@media all and (min-width:0) {

.hide{display:none}

}

</span>

第一个li的高度高了,所以后面float的元素就卡住了。你可以直接在第一个li里面设置一下style="line-height:29px",就可以看出来效果了。反正就是这个的原因。至于怎么解决,没有找到问题产生的原因啊。。。。------解决方案--------------------.parameterslispan这个里面的字体大小影响的,改为12px就可以解决这个问题。至于为何这个字体会影响,估计是跟line-height在混杂模式下,浏览器的解释不同照成的吧。总结性的影响因素,还说不上来。。。

这是ie6下一个bug 叫双倍间距

如果一个div 有浮动 并且 margin-left或right 其值会变成两倍

解决办法就是对ie6hack一下 设置 display: inline即可

.inform {

_display: inline

width: 500px

float: left

font-size: 16px

font-weight: bold

color: #333

margin: 170px 0 0 310px

}