首页 >

css:border-collapse属性与table里td边框opacity透明度的详解

web前端|css教程css:border-collapse属性与table里td边框opacity透明度的详解
border-collapse,opacity,table
web前端-css教程
asp 房产源码2014,vscode超过换行,ubuntu如何调节鼠标速度,修改tomcat 配置,sqlite导入sql数据,dz插件怎么启动,用户行为分析前端框架,java爬虫京东数据,php 正则 手机,seo关键词分隔符号,维修类网站源码,网页页面设计代码,手机端html 购物车模板,html5 打开页面返回值,eclipse商品管理系统,小程序thinkphp源码lzw
A、原来不是bug
图形学课程设计源码,vscode 什么开发,ubuntu配置ip后无法上网,中止tomcat线程,sqlite受损格式不对,android图表的插件下载,前端所用到的框架,python 爬虫搜索排名,eclipse调试php,seo如何快速入门seo顾问,阿狸表白网站生成器,html5网页直播技术,ecmall微信商城 模板,qt简单的学生成绩管理系统,小程序diy微擎lzw
年前遇到此现象,在Chrome浏览器下,起初,我还以为是Chrome浏览器的bug.
易语言源码查看器2.0,ubuntu自动切换壁纸,tomcat在哪里输入地址,爬虫 cookies变化,php网站搭建面板,企业网站seo丿品达seolzw
今日原型重现,在各个现代浏览器下一测,乖乖隆地咚,都是一个尿性,看来是规范使然,不是bug啊!但是,由于现象实在诡异,到目前也想不通是个怎么回事,故在这里演示并询问在座的小伙伴们,为什么会有此现象?

现象描述
一个普普通通的table,设置了border-collapse:collapse,合并表格的边框,这很正常,也很常见。

我们给元素设置opacity透明度值,例如0.1,则元素应该透明度就变成10%,包括边框、背景色等,这也符合我们的理解,很正常。

但是,两者搞在一起,就出现了诡异解析。表格元素如

边框透明度似乎是100%透明度减去

定义的透明度值的差值(opacity:1除外)!也就是

设置透明度10%,则边框却是90%的透明度;而

设置透明度90%,边框却是10%的透明度。

文字描述太苍白,我们还是看实例吧(IE10+, FireFox, Chrome均可)~

默认我们的

(便于演示,

效果一样)opacity值为1,于是,我们看到了一片和谐的效果:

css:border-collapse属性与table里td边框opacity透明度的详解

但是,我们拖动Demo页面上的range控件,修改

的透明度opacity属性值,结果,你会发现,

透明度为90%的时候,我了个擦,边框直接透明度(肉眼看上去)就是10%透明度的样子。

Chrome浏览器下,最后一行单元格的边框似乎不受opacity的影响,如下截图:

css:border-collapse属性与table里td边框opacity透明度的详解

而FireFox浏览器下,则是所有边框都会差异半透明化:

css:border-collapse属性与table里td边框opacity透明度的详解

然后,我们继续拖动,差不多10%透明度的样子时候,此时,文字是规规矩矩透明了,但是,边框的颜色却反而愈发地清晰起来!!

css:border-collapse属性与table里td边框opacity透明度的详解

css:border-collapse属性与table里td边框opacity透明度的详解

连IE浏览器也不甘落后:

css:border-collapse属性与table里td边框opacity透明度的详解

B、造成的问题

我想使用CSS3实现一个淡入淡出的动画,那效果,诡异如坐针毡!

C、如何避免此尴尬

一般实际开发时候,我们使用的table边框是单边框,不是那种格子之类,此时,我们可以:
只对低版本的IE浏览器使用border-collapse:collapse;对于高级浏览器,删除border-collapse:collapse声明,或者使用separate重置,然后使用border-spacing:0去除单元格见你不想要的空白。

于是,透明度就符合正常认知地渲染了!


css:border-collapse属性与table里td边框opacity透明度的详解
  • gridview生成时如何去掉style属性中的border-collapse【javascript】
  • gridview生成时如何去掉style属性中的border-collapse【javascript】 | gridview生成时如何去掉style属性中的border-collapse【javascript】 ...

    css:border-collapse属性与table里td边框opacity透明度的详解
  • 如何使用CSS中的border-collapse属性
  • 如何使用CSS中的border-collapse属性 | 如何使用CSS中的border-collapse属性 ...

    css:border-collapse属性与table里td边框opacity透明度的详解
  • table边框设置了border-collapse:collapse后各条边框如何合并的?
  • table边框设置了border-collapse:collapse后各条边框如何合并的? | table边框设置了border-collapse:collapse后各条边框如何合并的? ...