你好,我是云桃桃。
一个希望帮助更多朋友快速入门 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,本文完。