求大神分析CSS三角代码、IE6的。有些属性我不理解

html-css014

求大神分析CSS三角代码、IE6的。有些属性我不理解,第1张

CSS滤镜:Chroma属性 .Chroma属性可以设置一个对象中指定的颜色为透明色,它的表达式如下:Filter:Chroma(color=color).下面三个选择器你完全可以这么理解:

border-top-color:#dddddd

border-bottom-color:#dddddd

filter: chroma( color =#dddddd)

只不过加上_后,只有ie6能够识别,这属于css hacker。你可以上网查一查css hacker,你就会懂了

其实很简单

HTML代码:

[html] view plain copy

<div class="sanjiao"></div>

CSS代码:

[css] view plain copy

.sanjiao {

width: 0

height: 0

overflow: hidden

border-width: 10px

border-color: transparent transparent #000 transparent

border-style: dotted dotted solid dotted

}

其原理就是给元素加一个比较大的边框,箭头的方向就是border-color四个参数的方向(上、右、下、左),箭头指向那一边就给哪一边设置颜色,其他边透明。

这样就很方便的做了一个小的三角形图标。

其中需要注意的地方是:由于IE6不支持overflow属性,会将其他边框也显示出来,所以将不需要显示的边框的border-style属性设置为dotted就可以完美兼容IE6啦!

图片是png格式么?IE6不支持png的。

要麽使用gif,要麽用js或者滤镜来做背景透明。

当网页中使用半透明的图片时,在IE6浏览器下半透明部分会显示灰色的背景,而其它浏览器则正常显示。 发生的条件: 1. IE6 浏览器 2. 使用半透明的png24位图片 png8和gif类似,是全透明类型,没有alpha半透明通道,该类型不存在这种情况。 解决的方法: 1. 使

当网页中使用半透明的图片时,在IE6浏览器下半透明部分会显示灰色的背景,而其它浏览器则正常显示。

发生的条件:

1. IE6 浏览器

2. 使用半透明的png24位图片

 png8和gif类似,是全透明类型,没有alpha半透明通道,该类型不存在这种情况。

解决的方法:

1. 使用css的滤镜针对IE6进行hack;

兼容的代码:

background:transparent url(test.png) no-repeat scroll left top!important

background:none

_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader

(src='test.png',sizingMethod='scale')

在样式属性值的末尾添加!important,在IE7、IE8、FF浏览器中可以识别,意义是:当多个地方都设置了该样式,且多个地方的样式值不一样,使用了!important的样式优先级别最高。本例子中有两次设置了background属性,在IE7、IE8、FF中会选择优先级别高的样式来渲染,即使用了!important的样式起作用。

因为IE6不识别!important,对于IE6,起作用的是第二个background,即:background:none

在样式的属性的前面添加“_”下划线,只有IE6可以识别该属性,而其它浏览器不识别有下滑线前缀的属性,所以该样式只有IE6才可以正常解析。

综合以上的设置就可以兼容IE6、IE7、FF。

AlphaImageLoader滤镜属性说明:

src: 使用滤镜效果的png图片地址,设置该属性需要注意,该属性的意义不同于background样式中的url,url的地址是相对于样式文件目录,而这里的src是相对于使用到这个滤镜的html文档的目录,所以最好写成根路径或全路径。本实例中使用根路径

sizingMethod:image 容器根据Png图片适应; crop 图片根据容器尺寸进行切割;scale 图片根据容器尺寸进行缩放