从天猫和支付宝身上学习opcity与rgba

  不知道什么时候,一个双层透明的对话框悄然流行了起来。

  我们在各大网站上都能见到类似这样的对话框:

  这样的聚焦更明显,用户体验更好,也显得更加的高大上。

先说点题外话,这种布局如何用CSS+DIV去实现呢?

  略微了解一点布局和CSS的人可能会给出这样的答案:(*下面这段布局是错误的)

<div class="background-opacity"><div class="panel-opacity"><div>登录框内容</div></div>
</div>

  .background-opcity和.panel-opcity分别使用css的opacity属性实现了大的透明布和方框透明布,然后把内容层层嵌套在中间,这是一种理所当然的想法(用它来实现多层背景色倒是可以)。

  遗憾的是结果差强人意:连中间的纯白色背景以及上面的字都变得透明了!

  来看看Tmall如何实现的:(我将与布局无关的代码略去了。)

<div style="width: 100%; left: 0px; top: 0px; height: 100%; position: fixed;z-index: 999999;"></div><!--全屏透明背景-->
<div style="width: 400px; height: 360px; z-index: 999999; left: 741.5px; top: 476.5px;"><div class="mui-dialog-content mui-overlay-content">登录框内容</div><div class="mui-dialog-skin"></div><!--小透明背景-->
</div>

  是的,正确的做法是做背景的div不能和不透明的内容div存在嵌套关系。通过z-index改变层级,来达到“貌似嵌套”的一种效果。

  第一个div实现了大的透明背景,第二个div包含了垂直页面居中的登录框div,类.mui-dialog-skin实现了与登录框div相同大小的透明背景。

当我为掌握了个中奥秘而欣喜时,我在支付宝页面的对话框中发现了同样的表现形式。

  

  多么的类似啊!我额头微台,眼皮下敛,作出轻蔑状。缓缓的打开FireBug,想验证一下自己的想法:

  

 
<div class="ui-mask"></div><!--全屏透明背景-->
<div class="ui-newxbox"><!--小透明背景--> <div class="ui-newxbox-content">编辑备注信息</div>
</div>

  WTF!!发生什么事了?怎么这么不透明的内容Div是嵌套在透明Div中的?抓紧看看ui-newxbox这个类做了什么,难道不是opacity设置透明吗?

  

.ui-newxbox {background-color: rgba(0, 0, 0, 0.5);padding: 6px;transition: height 0.3s ease-in-out 0s;
}

  原来这里用到的是CSS3的RGBA。Alpha,即透明通道,A取值0-1,完全等同opacity的0-1。看到这里,他们俩的区别呼之欲出,opacity后代元素会随着一起具有透明性,而RGBA则不有这样的问题

  RGBA除了可以设置背景色,还可以应用于color,border-color,box-shadow,text-shadow。

RGBA与Opacity均有兼容性问题。IE8及以下浏览器需要做相应的hack处理。

  正如上面看到的,天猫和支付宝用了两种不一样的HTML结构和透明的方法,hack方式也必然是不一样的。

  

div{filter:alpha(opacity=20); /*天猫---类似opacity,子元素也会透明*/filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr=#88000000, endColorstr=#88000000); /*支付宝---类似RGBA,子元素不会透明*/
}

  从入手难易度来看,第一种方式的hack要好写很多啊!!

  (完)

转载于:https://my.oschina.net/newzreo/blog/733383

从天猫和支付宝身上学习opcity与rgba相关推荐

  1. 从领导身上学习到的几个观点

    从领导身上学习到的. 1.不要随意表态,特别是给政策出思路的表态更要慎重.你说的话很有可能被别有用心的下属用来断章取义达成个人目的. 2.不要经常收集意见建议,收集而不解决,会严重影响领导权威. 3. ...

  2. C++ 代码模拟登录淘宝、天猫、支付宝等电商网站的实现

    有关C++ 代码模拟登录淘宝.天猫.支付宝等电商网站的实现, 在群上有很多人问, 想来有许多人对此非常感兴趣, 其中的厉害关系在此不做深究, 这篇文章也仅仅提供一些基础的实现方法, 由于整个过程中基本 ...

  3. C++ 代码模拟登录淘宝、天猫、支付宝等电商网站的实现 分类: C/C++ 随笔杂文 2015-01-26 11:17 3787人阅读 评论(9) 收藏 举报 有关C++ 代码模拟登录淘宝、天猫、支

    C++ 代码模拟登录淘宝.天猫.支付宝等电商网站的实现 http://blog.csdn.net/rrrfff/article/details/43149993 有关C++ 代码模拟登录淘宝.天猫.支 ...

  4. AI语音技能云开发(天猫精灵技能)学习笔记(结营)

    通过5天的学习,基本了解天猫精灵技能开发的流程,下面做一个小demo,作为结营作业 目标:购物清单中物品的价格查询 一.登录,进入控制台,创建新技能 天猫精灵开放平台首页 (aligenie.com) ...

  5. 支付宝接口学习踩坑记(2)——基于SpringBoot的Alipay-EasySDK配置及网页支付接口简单示例

    Alipay-EasySDK从配置到撒钱 添加SDK依赖 Maven Gradle 配置SDK 准备材料 代码配置 编写代码,准备撒钱 后台逻辑代码 前端调用代码 撒钱开始 打开页面 电脑支付网页 P ...

  6. AI语音技能云开发(天猫精灵技能)学习笔记之一

    打开网址:天猫精灵开放平台首页天猫精灵开放平台基于天猫精灵的硬件和生态,提供一站式语音开发能力.IoT设备控制能力.AI集成算法集成能力.数字内容变现能力等.https://aligenie.com/ ...

  7. 支付宝支付学习:蚂蚁沙箱环境是什么?怎样使用蚂蚁沙箱环境?

    沙箱环境使用说明更新时间:2017-09-19 蚂蚁沙箱环境(Beta)是协助开发者进行接口功能开发及主要功能联调的辅助环境.沙箱环境模拟了开放平台部分产品的主要功能和主要逻辑(当前沙箱支持产品请参考 ...

  8. 学习记录:RGBA格式数据加边框

    项目场景: 最近学习使用ffmpeg在做一个视频缩略图的例子.在这里做一个记录. 在网上找了很多资料,加边框都是更改图片外围数据,这样图片会缺失一部分,不太符合我的需求. 按照这个思路,下面是一种实现 ...

  9. 2020双十一AutoJs自动领喵币再次来袭【天猫、淘宝、支付宝】

    概要   2020年双11又快到了,再次来凑个热闹.天猫.淘宝.支付宝需要各种签到.逛店铺领喵币,一个店铺15S,领完所有喵币,估摸着半小时就没了,作为一名程序员,再次来为大家解放双手了.   19年 ...

  10. IT博客写作者需要向天猫tmall创建者学习哪些优点?

    学习写博客已经半年了,但不见有特别大的好转,因为博客写作很艰难,需要强大的意志力来实现,而且更重要的是,我不大善于建设网站,这是一个巨大的麻烦,但总算也取得了一点点小成绩,虽然距离目标还很遥远.那么我 ...

最新文章

  1. 李书福:对未来世界及汽车发展的六个洞见(附万字内部讲话全文)
  2. python删除类方法_python中向类中动态添加新特性及删除属性方法
  3. 【51NOD1287】加农炮
  4. 技术干货 | 视频直播关键技术和趋势
  5. (51)FPGA面试题-Verilog中function与task之间的区别是什么?
  6. 过程中存根的作用有_聚氨酯发泡胶有哪些作用?使用过程中表现出哪些特点?...
  7. 设计企业网站大纲_深圳企业网站设计公司|品牌网站设计【尼高网站设计】
  8. 人工智能-机器学习之seaborn(读取xlsx文件,小提琴图)
  9. 附上堆和栈的区别 (转贴)
  10. 6款javascript甘特图组件体验
  11. java 域名查询,java 查询可用域名
  12. python 3 12306余票查询脚本
  13. 软件开发过程中的各种文档
  14. 脉冲波形的产生与变换
  15. 鼠标助手V1.2 , 2014-12-27更新
  16. ffmpeg源码分析-ffmpeg_parse_options
  17. python微博文本分析_Python 3.6实现单博主微博文本、图片及热评爬取
  18. JavaScript学习总结(思维导图篇)
  19. java获取WEB INF目录绝对路径
  20. 主管护士需要考计算机和英语吗,主管护师需要考职称英语和计算机吗

热门文章

  1. 这样的谷歌街景,你肯定没见过
  2. 【宏】解决vcard乱码批量导入outlook
  3. 同构 JavaScript 应用开发
  4. STM32蜂鸣器驱动程序
  5. 例外被抛出且未被接住--服务端与客户端隐藏
  6. 一款微信小程序商城项目(附源码)
  7. HTML零基础入门教程完整版
  8. hyperledger fabric explorer 超级账本区块链浏览器搭建-docker的方式
  9. EasyClick 原生UI教程扫盲篇
  10. whale 帷幄:数字化营销运营 全渠道数字化精益营销管理平台