css透明度兼容问题opacity

article/2025/11/5 5:29:23

CSS3的透明度属性opacity想必大家都已经用的无处不在了。而对于不支持CSS3的浏览器如何进行透明处理,保持浏览器效果的一致,这个估计谁都会写,但是涉及到filter的具体语法含义和各版本写法的不同区别,很多人都搞不准确,我曾经问过许多群里的大牛,说的都不是很准确,网上的说法就更五花八门了。今天呢,主要是重新温习一下这个属性,并实际测试来说明正确的写法,和IE各版本的支持度和书写区别。

首先,Opacity属性用来设置一个元素的透明度,取值范围是0~1之间,不可为负值。opacity取值为1是完全不透明,取值为0是完全透明,视觉上看不见。关于浏览器对opacity属性的兼容性请继续往下看:

从Firefox3.5+不再支持私有属性-moz-opacity了,在Mozilla 1.7 (Firefox 0.9)之前FF都是使用这个私有属性的,Firefox 0.9-Firefox3同时支持-moz-opacity和opacity这两个属性,现在回想起刚入职场不久那时候,正好是Firefox升级到3.5之后,一些做好的页面透明效果突然没有了,如今已经CSS3铺天盖地,概叹时光荏苒啊。

IE9+才开始支持CSS3 opacity,而对IE6-IE8我们习惯使用filter滤镜属性来进行实现。IE4-IE9都支持滤镜写法progid:DXImageTransform.Microsoft.Alpha(Opacity=xx).

IE8又引入了特殊的-ms-filter,IE认为这种写法是对旧写法的一次更正,更符合规范,这个写法的属性值只是多了一对引号,效果同前。不过,这种写法的寿命也不长,到IE10对filter与-ms-filter都已经不再支持。

Safari 1.2之前的版本,是基于khtml的浏览器内核,1.2版发布后,不再支持-khtml-opacity的写法,-khtml-opacity也随之成为历史。

Konqueror从未支持过-khtml-opacity,从4.0版本开始已经支持opacity。

除IE外,目前主流浏览器 Opera 9.0+,Safari  1.2(WebKit 125) +,chrome等等都支持opacity这个透明度属性。

IE 从4.0版开始,就提供了一些内置的多媒体滤镜特效,具体的使用方法是:

语法:

 
filter : filter
 
参数:
 
filter :  要使用的滤镜效果。多个滤镜之间用空格隔开。
 
说明:
 
设置或检索对象所应用的滤镜效果。
要使用该属性,对象必须具有height,width,position三个属性中的一个。
滤镜的机制是可扩展的。可以开发和使用第三方滤镜。
该属性在MAC平台上不可用。

对应的脚本特性为filter。

IE4.0以上版本,支持以下14种滤镜:

滤镜名    说明

Alpha     让HTML元件呈现出透明的渐进效果
Blur     让HTML元件产生风吹模糊的效果
Chroma     让图像中的某一颜色变成透明色
DropShadow     让HTML元件有一个下落式的阴影
FlipH     让HTML元件水平翻转
FlipV     让HTML元件垂直翻转
Glow     在元件的周围产生光晕而模糊的效果
Gray     把一个彩色的图片变成黑白色
Invert     产生图片的照片底片的效果
Light     在HTML元件上放置一个光影
Mask     利用另一个HTML元件在另一个元件上产生图像的遮罩
Shadow     产生一个比较立体的阴影
Wave     让HTML元件产生水平或是垂直方向上的波浪变形
XRay     产生HTML元件的轮廓,就像是照X光一样

Alpha 滤镜参数详解

参数名     说明     取值说明

Opacity     不透明的程度,百分比。    从0到100,0表是完全透明,100表示完全不透明。
FinishOpacity     这是一个同Opacity一起使用的选择性的参数,当同时Opacity和FinishOpacity时,可以制作出透明渐进的效果,比较酷。    从0到100,0表是完全透明,100表示完全不透明。
Style     当同时设定了Opacity和finishOpacity产生透明渐进时,它主要是用赤指定渐进的显示形状。    0:没有渐进;1:直线渐进;2:圆形渐进;3:矩形辐射。
StartX     渐进开始的 X 坐标值    
StartY     渐进开始的 Y 坐标值    
FinishX     渐进结束的 X 坐标值    
FinishY     渐进结束的 Y 坐标值    

下面通过一个例子来测试filter和opacity的兼容性:
Html代码
[html] view plain copy
print ? 在CODE上查看代码片 派生到我的代码片
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta charset=utf-8 />  
  5. <title>JS Bin</title>  
  6. </head>  
  7. <body>  
  8.   <div class=“transparent_class”>测试透明度</div>  
  9. </body>  
  10. </html>  
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body><div class="transparent_class">测试透明度</div>
</body>
</html>
注意:测试不要忘了写DOCTYPE,否则会偏离真实效果。
对应CSS代码:
[css] view plain copy
print ? 在CODE上查看代码片 派生到我的代码片
  1. .transparent_class {  
  2.     /* Required for IE 5, 6, 7 */  
  3.     /* …or something to trigger hasLayout, like zoom: 1; */  
  4.     width:300px;  
  5.     height:300px;  
  6.     line-height:300px;  
  7.     text-align:center;  
  8.     background:#000;  
  9.     color:#fff;  
  10.     /* older safari/Chrome browsers */  
  11.     -webkit-opacity: 0.5;  
  12.     /* Netscape and Older than Firefox 0.9 */  
  13.     -moz-opacity: 0.5;  
  14.     /* Safari 1.x (pre WebKit!) 老式khtml内核的Safari浏览器*/  
  15.     -khtml-opacity: 0.5;  
  16.     /* IE9 + etc…modern browsers */  
  17.     opacity: .5;  
  18.     /* IE 4-9 */  
  19.     filter:alpha(opacity=50);  
  20.     /*This works in IE 8 & 9 too*/  
  21.     -ms-filter:”progid:DXImageTransform.Microsoft.Alpha(Opacity=50)”;  
  22.     /*IE4-IE9*/  
  23.     filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);  
  24. }  
.transparent_class {/* Required for IE 5, 6, 7 *//* ...or something to trigger hasLayout, like zoom: 1; */width:300px;height:300px;line-height:300px;text-align:center;background:#000;color:#fff;/* older safari/Chrome browsers */-webkit-opacity: 0.5;/* Netscape and Older than Firefox 0.9 */-moz-opacity: 0.5;/* Safari 1.x (pre WebKit!) 老式khtml内核的Safari浏览器*/-khtml-opacity: 0.5;/* IE9 + etc...modern browsers */opacity: .5;/* IE 4-9 */filter:alpha(opacity=50);/*This works in IE 8 & 9 too*/-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";/*IE4-IE9*/filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
}

使用中,我们可以根据要适配的浏览器/版本,从上面选择自己需要的代码行。如果要全面支持所有浏览器,至少需要有关opacity或filter的前5句。

需要声明的是,如果你要同时使用filter和-ms-filter,请将-ms-filter写在filter的前面。原文描述如下:

If you want opacity to also work in IE8′s emulating IE7 mode, the order should be:

[css] view plain copy
print ? 在CODE上查看代码片 派生到我的代码片
  1. -ms-filter:”progid:DXImageTransform.Microsoft.Alpha(Opacity=50)”; // first  
  2. filter: alpha(opacity=50); // second  
-ms-filter:”progid:DXImageTransform.Microsoft.Alpha(Opacity=50)”; // first
filter: alpha(opacity=50); // second

If you don’t use this order, IE8 emulating IE7 doesn’t apply the opacity, although IE8 and IE7 native do.

基于统计的CSS属性支持可以参照caniuse网站 http://caniuse.com/css-opacity
参考文献: CSS opacity介绍 https://developer.mozilla.org/en-US/docs/Web/CSS/opacity?redirectlocale=en-US&redirectslug=CSS%2Fopacity


http://chatgpt.dhexx.cn/article/WkIF0ZMh.shtml

相关文章

css3透明度渐变

在需要使用透明度渐变的div中添加 linear类即可 <div class"linear" style"widht:500px;height:500px"></div> .linear {background: -webkit-linear-gradient( top, rgba(0, 0, 0, 0),rgba(0, 0, 0, 0.2) ); /* Safari 5.1 - 6 /background…

html中透明度100是,CSS 透明度设置方法及常见问题解析

你对 CSS 中的半透明颜色可能已经有了基础的了解&#xff0c;CSS透明算得上是一种相当流行的技术&#xff0c;但在跨浏览器支持上&#xff0c;对于开发者来说&#xff0c;可以说是一件令人头疼的事情。目前还没有一个通用方法&#xff0c;以确保透明度设置可以在目前使用的所有…

html页面透明度属性,css透明度属性是什么?

css透明度属性是什么&#xff1f;CSS透明度属性是opacity属性。下面本篇文章就来给大家介绍一下CSS 透明度属性--opacity属性。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对大家有所帮助。 CSS 透明度属性--opacity属性 css opacity属性用于设置一…

html中的透明度怎么设置,css透明度怎么设置?css中各种透明度的设置方法总结...

本篇文章给大家介绍一下css中透明度的设置方法,下面我们就来看看具体的内容。 不透明度和透明度 根据定义,CSS中的不透明度和透明度定义了元素的可见性,无论是图像,表格还是RGBA(红绿蓝alpha)颜色值。根据它们的意思,不透明度是元素不透明度或坚固度的度量,而透明度则衡量…

html页面透明度属性,css透明度是什么属性?

css透明度属性指的是opacity属性&#xff1b;opacity属性可以设置一个元素了透明度级别。下面本篇文章就来给大家介绍一下CSS opacity属性&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对大家有所帮助。 css opacity属性用于设置一个元素…

html css表格透明度,【总结】CSS透明度大汇总_html/css_WEB-ITnose

近年来,CSS不透明算得上是一种相当流行的技术,但在跨浏览器支持上,对于开发者来说,可以说是一件令人头疼的事情。目前还没有一个通用方法,以确保透明度设置可以在目前使用的所有浏览器上有效。 这篇汇总主要是提供一些CSS不透明的详细介绍,代码示例和解释,以实现这项有用…

CSS透明度[简述]

CSS透明度 CSS中设置透明度有两种方式: GRBA和opacity. 下面我们就这两种方式进行简要介绍: GRBA 语法如下: rgba(R,G,B,A); rgba只是单纯的设置颜色的透明度,但是标签上的文字不会透明. 即透明元素的子元素不会继承其透明效果. 代码示例如下: <!DOCTYPE html> <…

一文搞懂蓝绿发布、灰度发布和滚动发布

应用程序升级面临最大挑战是新旧业务切换,将软件从测试的最后阶段带到生产环境,同时要保证系统不间断提供服务。 长期以来,业务升级渐渐形成了几个发布策略:蓝绿发布、灰度发布和滚动发布,目的是尽可能避免因发布导致的流量丢失或服务不可用问题。 一、 蓝绿发布 项目逻…

微信小程序的灰度发布

❤️最细微信小程序版本上传、提交审核、发布【建议收藏】❤️ ❤️2021直击大厂前端开发岗位面试题❤️ ❤️效果图如下&#xff0c;如有需要请自取修改【建议收藏】&#xff01;❤️最火前端Web组态软件(可视化)❤️效果图如下&#xff0c;如有需要请自取修改【建议收藏】&…

持续集成和灰度发布

一、持续集成 持续集成&#xff08;Continuous integration&#xff0c;简称CI&#xff09;是一种软件开发实践&#xff0c;即团队开发成员经常集成它们的工作&#xff0c;通常每个成员每天至少集成一次&#xff0c;也就意味着每天可能会发生多次集成。每次集成都通过自动化的构…

灰度发布:灰度很简单,发布很复杂

什么是灰度发布&#xff0c;其要点有哪些&#xff1f; 最近跟几个聊的来的同行来了一次说聚就聚的晚餐&#xff0c;聊了一下最近的工作情况如何以及未来规划等等&#xff0c;酒足饭饱后我们聊了一个话题“灰度发布”。 因为笔者所负责的产品还没有达到他们产品用户的量级上…

互联网产品灰度发布

互联网产品灰度发布 关于2016年5月15日&#xff0c;DevOps成都站&#xff5c;架构与运维峰会活动总结 1. 前言 2 2. 灰度发布定义 5 3. 灰度发布作用 5 4. 灰度发布步骤 5 5. 灰度发布测试方法 6 6. 灰度发布引擎 6 7. 灰度发布常见问题 8 7.1. 以偏概全 8 7.1.1. 问题…

使用 KubeSphere 实现微服务的灰度发布

前言 今天来说一说&#xff0c;在 KubeSphere 中两个 " 小姐姐 " 如何来回切换&#xff0c;这是什么意思哩&#xff1f;其实就是互联网产品中常用的灰度发布方式。 互联网产品需要快速迭代上线&#xff0c;既要保证新功能运行正常&#xff0c;又要保证质量&#xf…

Spring Framework灰度发布

今天简单介绍下SpringFramework微服务中几种服务发布策略以及实现方式。我接触过的有蓝绿、滚筒和灰度发布。 蓝绿发布&#xff1a; 简单说就像美帝选总统投票一样&#xff0c;非蓝即绿一刀切&#xff0c;这个其实也是传统软件架构最常使用的升级方式&#xff0c;只不过服务需…

构建灰度发布环境

手把手教你搭建一个灰度发布环境 提示&#xff1a;灰度发布&#xff0c;又称金丝雀发布金丝雀发布 这一术语源于煤矿工人把笼养的金丝雀带入矿井的传统。矿工通过金丝雀来了解矿井中一氧化碳的浓度&#xff0c;如果一氧化碳的浓度过高&#xff0c;金丝雀就会中毒&#xff0c;从…

灰度发布与滚动发布、蓝绿发布介绍

文章目录 灰度发布与滚动发布、蓝绿发布介绍一、灰度发布与滚动发布、蓝绿发布介绍1、蓝绿部署2、滚动发布3、灰度发布 二、灰度发布好处三、Gitee上高热度的开源灰度发布系统四、安装使用 灰度发布与滚动发布、蓝绿发布介绍 一、灰度发布与滚动发布、蓝绿发布介绍 ​ 引用文…

不容闪失的灰度发布简介

目录 1 线上项目灰度发布的重大意义2 项目发布问题剖析3 解决方案3.1 蓝绿部署3.2 滚动发布3.3 灰度发布3.4 灰度发布方法 1 线上项目灰度发布的重大意义 上面这个软件相信大家一定不陌生&#xff0c;很多人和我一样一定还欠他钱&#xff01;支付宝经历了十多年&#xff0c;从未…

不停服更新应用的方案:蓝绿发布、滚动发布、灰度发布

原文网址&#xff1a;不停服更新应用的方案&#xff1a;蓝绿发布、滚动发布、灰度发布_IT利刃出鞘的博客-CSDN博客 简介 本文介绍不停服更新应用的方案&#xff1a;蓝绿发布、滚动发布、灰度发布。 升级服务器的应用时&#xff0c;要停止掉老版本服务&#xff0c;将程序上传…

互联网产品的灰度发布

互联网产品的灰度发布 在传统软件产品发布过程中&#xff08;例如微软的Windows 7的发布过程中&#xff09;&#xff0c;一般都会经历Pre-Alpha、Alpha、Beta、Release candidate(RC)、RTM、General availability or General Acceptance (GA)等几个阶段&#xff08;参考Softwa…

【产品】什么是灰度发布

灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式,一级一级的发布逐渐的扩大发布范围,最后达到系统的完全上线。  在其上可以进行A/B testing,即让一部分用户继续用产品特性 A,一部分用户开始用产品特性 B,如果用户对 B 没有什么反对意见,那么逐步扩大范围,把所…