首頁  >  文章  >  web前端  >  CSS透明度之rgba和opacity的區別(實例解析)

CSS透明度之rgba和opacity的區別(實例解析)

yulia
yulia原創
2018-09-13 15:06:0211131瀏覽

我們在進行頁面佈局時,為了給使用者呈現不同的效果,常常需要設定透明度,提到透明度很多人第一反應就是CSS中的opacity這個屬性,沒錯,它確實是調節透明度的一種方式。但是,因為opacity這個屬性有繼承性,有時將不要設為透明的部分變成了透明,所以,我們用另一種樣式,即RGBA,接下來就詳細講講rgba和opacity分別怎麼使用,以及rgba和opacity的區別。

一、怎麼使用rgba和opacity

#1、opacity

取值在0到1之間,0表示完全透明,1表示完全不透明。

.aa{opacity: 0.5;}

2、rgba

rgba中的R表示紅色,G表示綠色,B表示藍色,三種顏色的值都可以是正整數或百分數。 A表示Alpha透明度。取值0~1之間,類似opacity。

.aa{background: rgba(255,0,0,0.5);}

二、rgba和opacity的區別

rgba()和opacity都能實現透明效果,但最大的不同是opacity作用於元素,以及元素內的所有內容的透明度,而rgba()只作用於元素的顏色或其背景色。 (設定rgba透明的元素的子元素不會繼承透明效果!)例如,我們寫透明的黑色部分都是用opcity(0.5),但這帶出來一個問題就是如果你在這一div上寫字的話,然後那個字體也會變成透明色。所以我們採取rgba的樣式寫,前面三個數字分別對應r,g,b,的三種顏色,第四位的數字對應的是透明的係數。

舉例:給外面一個div紅色背景,並設定它的透明度為0,5,給裡面的div顏色為綠色,加上文字。程式碼如下:

!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title></title>
  <style type="text/css">
   .a1{width: 200px;height: 200px;background: red;opacity: 0.5;}
   .a2{width: 200px;height: 50px;background: #008000;font-size: 30px;}
  </style>
 </head>
 <body>
  <div class="a1">
   <div class="a2">今天心情不好</div>
  </div>
 </body>
</html>

效果如圖:

CSS透明度之rgba和opacity的區別(實例解析)

看圖顯而易見,給外面的div設定了opacity為0.5後,裡面的div和文字的透明度都隨之改變了。這不是我們想要看到的,那我們用rgba設定透明度,看看效果如何。其他程式碼不變,只將外面div的opacity換成rgba。

.a1{width: 200px;height: 200px;background: rgba(255,0,0,0.5);}

效果如圖:

CSS透明度之rgba和opacity的區別(實例解析)

看看,這個是不是正常了。

總結:opacity會繼承父元素的 opacity 屬性,而RGBA設定的元素的後代元素不會繼承不透明屬性。看了這個應該應該要清楚rgba和opacity的差別了吧,至於什麼場景該用什麼,還要看狀況。希望這個簡單的教學可以幫助你!

以上是CSS透明度之rgba和opacity的區別(實例解析)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn