求IE6浏览器专用的css hack(即该部分语句只对IE6有效)

html-css022

求IE6浏览器专用的css hack(即该部分语句只对IE6有效),第1张

楼主说到的方法一:

/*

ie6

\*/

*

html

{

我找到的方法之一;这里加上

\,有什么好处?}

/*

end

*/

一般\不是你那个位置加的

,不过我可以解释一下在那里加的好处:

本来/**/是构成注释块的,就是里面的内容全部不执行。但ie6,以及windows

ie6以下的浏览器不叫“聪明”,它解析到\*/

的时候,就以为解析完了,因此执行中间的的内容,所以,中间的*html{}

代码被执行。

但你这种用法比较作用比大,以为*html已经起到选择ie6浏览器的左右了。其实"\"我们比较用的多是这样的。

\.element{}

或者

.e\lement{}

或者

.element{wi\th:123px}

这三个例子都系应用ie6不识别\而运动代码。下面给一个应用例子说明一下:

.element{width:123px}

/*element的宽为123px,这个ie6

ie7

ff上面都表现为123px*/

\.element{width:100px}

/*ie7

ff识别\知道它是没用的符号,不赋予执行,而ie6当\没出现,因此宽为100px,*/

通过这个例子,我们就可以筛选出ie6了。.e\lement和.element{wi\th:123px}的应用同理。

不过建议不要使用\来筛选ie6,因为在系统里面\n

\r

这些都是有特别的意思的,呵呵,这里就不详细说明了,为了不出现不必要的麻烦,还是用著名的hack

——

starHTML来筛选ie6吧。

starHTML就是我们经常用的*html{}了。

对于楼主提及的方法二:

*

html

{

这就是IE6专用的?}

其实也可以说*html是ie6专用。因为ie7已经修复了这个hack了。至于为什么一定是*html而不是¥HTML

@html

或者系其他呢?就要问微软的设计师为什么才知道了。不过可以说说css的hack的原理吧。

CSS

Hack的原理是由于不同的浏览器对CSS的支持及解析结果不一样,还由于CSS中的优先级的关系。我们就可以根据这个来针对不同的浏览器来写不同的CSS。

举一个例子吧,希望通过这个例子,你可以感觉到*html这个hack的原理吧。

*+html{}是ie7的专属筛选hack。为什么中间有个+号呢,

因为+是相邻选择符,相邻选择符ie6不支持,不过ie7支持,因此,就可以筛选出应用于ie7的语句了。

关于css

hack,实在涉及的东西比较广,如果你有兴趣,可以联系一下我。我怕我说了一堆话,看了也糊涂了,呵呵。希望对你有帮助啦。

可以在HTML中用if ie条件语句,示例:

<style>

body {background:red}

<!--[if IE]>

body {background:blue}

<![endif]-->

</style>

不过IE10、IE11及以上的IE浏览器已经不支持这种写法了,一般来说它们和标准的现代浏览器差不多,所以也没必要为其加载特殊的CSS样式。

1、下载一个压缩包,里面有一个微软的脚本文件(11KB)和一个用来测试服务器是否有正确的Content-Type的HTML文件:iecss3.rar;.htc文件是IE内核支持Web行为后用来描述此类行为的脚本文件。它们定义了一套方法和属性,程序员几乎可以把这些方法和属性应用到HTML页面上的任何元素上去。Web 行为是非常伟大的因为它们允许程序员把自定义的功能“连接”到现有的元素和控件,而不是必须让用户下载二进制文件(例如ActiveX 控件)来完成这个功能。

解压后,打开test.html,如果显示效果是圆角,则可以继续。

使用演示:

.main{

border: 2px solid #C0C0C0

-moz-border-radius: 10px

-webkit-border-radius: 10px

border-radius: 10px

position:relative

z-index:2

behavior: url(此处为ie-css3.htc文件的绝对路径)

}

Webkit内核的浏览器支持“-webkit-border-radius: 10px”属性(10px是圆角半径),可以直接解析出圆角;Firefox浏览器支持“-moz-border-radius: 10px”属性,也是可以直接解析出圆角;IE系浏览器则需要加上“border-radius: 15px”的属性。

注意事项:

1、behavior的url里一定要填写ie-css3.htc的绝对路径,因为 IE浏览器找该文件是相对当前html文件路径来找的,所以对于Wordpress等动态程序生成的页面一定要填写绝对路径。

2、一定要有定位属性:position:relative

3、因为在IE浏览器下这些CSS3效果的实现是要借助于VML,由VML绘制圆角或是投影效果,所以还需要一个z-index属性。z-index属性最好设置得比较大,如2。

4、如果在IE浏览器下某些模块无法用此渲染,可以试着绝对定位相应的层,即加上“ width: 400pxheight:400px”属性。

5、radius属性的10px是圆角半径,还可以给两个值如“border-radius: 10px 5px”,这样则左上角与右下角半径为10px,右上角与左下角半径为5px。也可以赋4个值,为“上 右 下 左”。