Maison >interface Web >tutoriel CSS >Exemple d'utilisation de RGBa pour ajuster la transparence en CSS3
Cet article présente un tutoriel sur l'utilisation de RGBa pour ajuster la transparence dans CSS3. RGBA est une extension du modèle de couleur RVB Cette abréviation représente la première des trois couleurs primaires. de rouge, vert et bleu. Les lettres et les valeurs Alpha représentent la transparence ou l'opacité d'une couleur. Les amis dans le besoin peuvent se référer à
En CSS3, un attribut d'opacité RGBA(R,G,B,A)Valeur :
R : valeur rouge. Positif
Entier | PourcentG : Valeur verte. Entier positif | Pourcentage
B : valeur bleue. Entier positif | Pourcentage
A : transparence alpha. La valeur est comprise entre 0 et 1.
Ce qui suit est blanc en utilisant rgba() pour définir une transparence de 50 %.
p { color: rgba(255, 255, 255, 0.5); }RGBA est une extension du modèle de couleur RVB. Cet acronyme représente les premières lettres des trois couleurs primaires rouge, vert et bleu, et la valeur alpha représente la transparence/opacité de la couleur. Ce qui suit est une introduction détaillée aux couleurs RGBa.
1. Base de couleur RVBA
RGBa ajoute essentiellement un canal alpha aux éléments définis, c'est-à-dire en plus des trois canaux de couleur rouge, vert et bleu. un canal représentant la transparence, dans lequel la valeur RVB utilise les trois entiers familiers de 0 à 255 pour représenter respectivement le rouge, le vert et le bleu, tandis que la valeur alpha est de 0 à 1 (une décimale). Voici un exemple pour illustrer son utilisation spécifique :
/* RGB 表示方式 */ #example {background: rgb(52, 52, 52); }puis utiliser RGBa pour changer la couleur d'arrière-plan dans l'exemple pour avoir une transparence de 0,5.
/* 设置 0.5 透明度 */ #example-a {background: rgba(52, 52, 52, 0.5); } /* 也可以省略小数点前的 0 */ #example-a {background: rgba(52, 52, 52, .5); }Les effets avant et après l'ajout de transparence sont les suivants (afin de refléter plus clairement l'effet de transparence, le corps de l'exemple a une texture de fond ajoutée) :
2. Prise en charge du navigateur et amélioration progressive
Bien que RGBa ait reçu un bon support dans les navigateurs modernes grand public, la prise en charge de RGBa par Webkit est la plus ancienne,Chrômeome a a commencé à prendre en charge RGBa depuis au moins la version 0.415. À cet égard, Chrome peut être considéré comme très puissant. De plus, les noyaux Gecko et Presto ont également progressivement implémenté la prise en charge de RGBa depuis IE9. Une prise en charge plus spécifique du navigateur est la suivante :
Bien sûr, pour IE, vous pouvez utiliser des filtres pour obtenir le même effet que dans les navigateurs prenant en charge RGBa. Par exemple : pour l'exemple ci-dessus, vous pouvez écrire le code comme suit
<.>Notez ici que le filtre utilise la même couleur et la même transparence que dans l'exemple ci-dessus, mais utilise une représentation hexadécimale.
IE 会忽略 RGBa 颜色设置,并且根据 filter 滤镜设置颜色,这样的效果与 RGBa 的效果相同。
三. 不影响子元素
在文章的开头已经介绍过,RGBa 相对 opacity 的优势是不会影响其子元素,即可以单独为被设置的元素设置透明度,而子元素而不受该设置影响。下面再例举一个具体的例子,分别以 RGBa 和 opacity 为元素设置透明度说明两者的区别。
完整代码:
<!DOCTYPE HTML> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>RGBa 与 opacity 效果的区别</title> <style type="text/css"> body {padding-top: 200px; background: url(bg.png); } #example, #example-a {width: 200px; height: 100px; margin: 0 auto; } #example {background: rgb(52, 52, 52); opacity: 0.5; } #example-a {margin-top: 20px; background: rgba(52, 52, 52, .5); } .inside {display: block; width: 50px; height: 50px; margin-left: 10px; background: rgb(100, 140, 180); } </style> </head> <body> <p id="example"> <span class="inside"></span> </p> <p id="example-a"> <span class="inside"></span> </p> </body> </html>
具体效果
可以看出,opacity 会使其中的子元素 span 同时变为半透明的效果,而 RGBa 则只改变被设置的元素的透明度,而在大多数情况下,开发者只需要设置当前元素的透明度(如遮罩,半透明背景等),因此使用 RGBa 会更加的灵活。
另外,在 IE9 中,直接使用 RGBa 颜色与使用 opacity 设置透明的效果会有差异(读者可以在 IE9 下浏览 Demo 查看具体的效果),开发者需要注意这一点差异。
相关文章:
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!