你好,我是云桃桃。
一个希望帮助更多朋友快速入门 WEB 前端的程序媛。
云桃桃-大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端工具”,可获取 Web 开发工具合集
287篇原创内容-更多前端系列内容可以go公众.h:云桃桃
后台回复“前端工具”可获取开发工具,持续更新中
后台回复“前端基础题”可得到前端基础100题汇总,持续更新中
后台回复“前端电子书”可获取20+本精选电子书
前言
透明度在网页设计中扮演着重要的角色,透明度的合理运用可以提升网页设计的美感和功能性,增强用户体验,突出重点内容,同时也为设计师提供了更多的创作空间和可能性。
那我们一起来看看吧。
2 个透明度属性
可以表示透明度的,有 2 个属性,分别是opacity
和rgba
。
一、opacity
属性
用于设置元素的不透明度,取值范围为 0.0(完全透明)到 1.0(完全不透明)。在写小数值时,一般来说,保留 1~2 位小数即可。
需要注意的是:
-
该属性可以继承,即子元素会继承父元素的透明度。所以,下面案例中文字的颜色也带上透明度了。
-
该属性只对块级元素有效,对行内元素无效。
那,来看 3 个小案例吧。
1、透明度的 div
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Opacity Example</title> <style> /* 清除浮动样式 */ .clearfix::after { content: ''; display: table; clear: both; } .container { margin-top: 50px; } .container div { float: left; width: 200px; height: 200px; font-size: 26px; text-align: center; line-height: 200px; margin-right: 30px; color: #333; font-weight: bold; } .container div { background-color: #f00; } .container .div1 { opacity: 1; } .container .div2 { opacity: 0.7; } .container .div3 { opacity: 0.3; } .container .div4 { opacity: 0.1; } </style> </head> <body> <h1>opacity属性的透明度</h1> <div class="container clearfix"> <div class="div1">opacity:1</div> <div class="div2">opacity:0.7</div> <div class="div3">opacity:0.3</div> <div class="div4">opacity:0.1</div> </div> </body> </html>
复制
效果如下,其内部的文字也自动带上透明度了:
2、透明度的图像
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Opacity Example</title> <style> /* 清除浮动样式 */ .clearfix::after { content: ''; display: table; clear: both; } img { display: block; width: 100%; } .container { margin-top: 50px; } .container div { float: left; width: 200px; font-size: 16px; text-align: center; margin-right: 30px; color: #333; font-weight: bold; } .container div { border: 1px solid #333; } .container .img1 { opacity: 1; } .container .img2 { opacity: 0.7; } .container .img3 { opacity: 0.3; } .container .img4 { opacity: 0.1; } </style> </head> <body> <div class="container clearfix"> <div class="div1"> <img class="img1" src="img/tree.png" alt="" /> <p>opacity:1</p> </div> <div class="div2"> <img class="img2" src="img/tree.png" alt="" /> <p>opacity:0.7</p> </div> <div class="div3"> <img class="img3" src="img/tree.png" alt="" /> <p>opacity:0.3</p> </div> <div class="div4"> <img class="img4" src="img/tree.png" alt="" /> <p>opacity:0.1</p> </div> </div> </body> </html>
复制
效果如下:
3、带交互的透明度图像
这种交互也比较常见的,比如,jd 的这个,把鼠标放在图片放上去之后,是有一点点不透明度的。
怎么做呢?就是配合 hover。来看代码。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Opacity Example</title> <style> /* 清除浮动 */ .clearfix::after { content: ''; display: table; clear: both; } img { display: block; width: 100%; } .container { margin-top: 50px; } .container div { float: left; width: 200px; margin-right: 30px; } .container img { transition: all 0.3s; /* 添加过渡效果 */ } .container div { border: 1px solid #333; } .container div p { margin: 10px 10px; line-height: 24px; height: 48px; color: #333; font-size: 14px; /* 设置超出2行显示省略号 */ word-break: break-all; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .container div:hover img { opacity: 0.5; } </style> </head> <body> <div class="container clearfix"> <div> <img src="img/tree.png" alt="" /> <p>摩天手(Mofii) sweet无线复古朋克键鼠套装 办公键鼠套装 鼠标 电脑键盘 笔记本键盘 白绿色</p> </div> <div> <img src="img/tree.png" alt="" /> <p>摩天手(Mofii) sweet无线复古朋克键鼠套装 办公键鼠套装 鼠标 电脑键盘 笔记本键盘 白绿色</p> </div> <div> <img src="img/tree.png" alt="" /> <p>摩天手(Mofii) sweet无线复古朋克键鼠套装 办公键鼠套装 鼠标 电脑键盘 笔记本键盘 白绿色</p> </div> <div> <img src="img/tree.png" alt="" /> <p>摩天手(Mofii) sweet无线复古朋克键鼠套装 办公键鼠套装 鼠标 电脑键盘 笔记本键盘 白绿色</p> </div> </div> </body> </html>
复制
效果如下。
二、rgba
属性
第一个 opacity
属性会同时改变元素及其子级内容的透明度,但有时候我们只需要改变作用元素的透明度,那 rgba
属性就派上用场了。
rgba
是 CSS 中用来表示颜色的一种方式,它由红色(R)、绿色(G)、蓝色(B)和透明度(A)四个通道组成。其中,R、G、B 通道表示颜色的三原色分量,取值范围为 0 到 255,
A 通道表示透明度,取值范围为 0 到 1,0 表示完全透明,1 表示完全不透明,在写小数值时,应该保留合理的小数位数,一般来说,保留 1~2 位小数即可。
rgba 可以单独控制元素的背景颜色或文本颜色的透明度,而不影响其内容的透明度。这对于需要让元素半透明而保持内容不变的情况非常有用,例如半透明的背景色或文本颜色。
ok,我们通过一个例子来对比一下 opacity 和 rgba。代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Opacity Example</title> <style> /* 清除浮动样式 */ .clearfix::after { content: ''; display: table; clear: both; } .mb-50 { margin-bottom: 50px; } .container div { float: left; width: 200px; height: 200px; font-size: 26px; text-align: center; line-height: 200px; margin-right: 30px; color: #333; font-weight: bold; } .container1 div { background-color: #f00; } .container1 .div1 { opacity: 1; } .container1 .div2 { opacity: 0.7; } .container1 .div3 { opacity: 0.3; } .container1 .div4 { opacity: 0.1; } .container2 .div1 { background: rgba(255, 0, 0, 1); } .container2 .div2 { background: rgba(255, 0, 0, 0.7); } .container2 .div3 { background: rgba(255, 0, 0, 0.3); } .container2 .div4 { background: rgba(255, 0, 0, 0.1); } </style> </head> <body> <div class="mb-50"> <h1>opacity属性的透明度</h1> <div class="container container1 clearfix"> <div class="div1">opacity:1</div> <div class="div2">opacity:0.7</div> <div class="div3">opacity:0.3</div> <div class="div4">opacity:0.1</div> </div> </div> <div> <h1>rgba属性的透明度</h1> <div class="container container2 clearfix"> <div class="div1">rgba:1</div> <div class="div2">rgba:0.7</div> <div class="div3">rgba:0.3</div> <div class="div4">rgba:0.1</div> </div> </div> </body> </html>
复制
效果如下:
是不是一目了然了,rgba并不影响子级的透明度。
OK,本文完。