Az átlátszatlanság
tulajdonság egy elem átlátszatlanságát/átlátszóságát határozza meg.
Az átlátszatlanság
tulajdonság értéke 0,0 és 1,0 között lehet. Minél alacsonyabb az érték, annál átláthatóbb:
opacity 0.2
opacity 0.5
opacity 1
(default)
img {
opacity: 0.5;
}
Próbálja ki Ön is →
<!DOCTYPE html>
<html>
<head>
<style>
img {
opacity: 0.5;
}
</style>
</head>
<body>
<h1>Image Transparency</h1>
<p>The opacity property specifies the transparency of an element. The lower the value, the more transparent:</p>
<p>Image with 50% opacity:</p>
<img src="img_forest.jpg" alt="Forest" width="170" height="100">
</body>
</html>
Az átlátszatlanság
tulajdonságot gyakran használják a :hover
választóval együtt az átlátszatlanság megváltoztatására, amikor az egeret fölé viszi:
img {
opacity: 0.5;
}
img:hover {
opacity: 1.0;
}
Próbálja ki Ön is →
<!DOCTYPE html>
<html>
<head>
<style>
img {
opacity: 0.5;
}
img:hover {
opacity: 1.0;
}
</style>
</head>
<body>
<h1>Image Transparency</h1>
<p>The opacity property is often used together with the :hover selector to change the opacity on mouse-over:</p>
<img src="img_forest.jpg" alt="Forest" width="170" height="100">
<img src="img_mountains.jpg" alt="Mountains" width="170" height="100">
<img src="img_5terre.jpg" alt="Italy" width="170" height="100">
</body>
</html>
Az első CSS-blokk hasonló az 1. példában szereplő kódhoz. Ezenkívül hozzáadtuk, hogy mi történjen, ha a felhasználó az egyik kép fölé viszi az egérmutatót. Ebben az esetben azt szeretnénk, hogy a kép NE legyen átlátszó, amikor a felhasználó rámutat. Ennek CSS-je opacity:1;
.
Amikor az egérmutató elmozdul a képtől, a kép ismét átlátszó lesz.
Példa a fordított lebegés effektusra:
img:hover {
opacity: 0.5;
}
Próbálja ki Ön is →
<!DOCTYPE html>
<html>
<head>
<style>
img:hover {
opacity: 0.5;
}
</style>
</head>
<body>
<h1>Image Transparency</h1>
<p>The opacity property is often used together with the :hover selector to change the opacity on mouse-over:</p>
<img src="img_forest.jpg" alt="Forest" width="170" height="100">
<img src="img_mountains.jpg" alt="Mountains" width="170" height="100">
<img src="img_5terre.jpg" alt="Italy" width="170" height="100">
</body>
</html>
Ha az átlátszatlanság
tulajdonságot használja egy elem hátterének átlátszóságának növelésére, az összes alárendelt eleme ugyanazt az átlátszóságot öröklik. Ez nehezen olvashatóvá teheti a teljesen átlátszó elemen belüli szöveget:
opacity 1
opacity 0.6
opacity 0.3
opacity 0.1
div {
opacity: 0.3;
}
Próbálja ki Ön is →
<!DOCTYPE html>
<html>
<head>
<style>
div {
background-color: #04AA6D;
padding: 10px;
}
div.first {
opacity: 0.1;
}
div.second {
opacity: 0.3;
}
div.third {
opacity: 0.6;
}
</style>
</head>
<body>
<h1>Transparent Box</h1>
<p>When using the opacity property to add transparency to the background of an element, all of its child elements become transparent as well. This can make the text inside a fully transparent element hard to read:</p>
<div class="first"><p>opacity 0.1</p></div>
<div class="second"><p>opacity 0.3</p></div>
<div class="third"><p>opacity 0.6</p></div>
<div><p>opacity 1 (default)</p></div>
</body>
</html>
Ha nem szeretne átlátszatlanságot alkalmazni a gyermekelemekre, mint a fenti példánkban, használja az RGBA színértékeket. A következő példa a háttérszín átlátszatlanságát állítja be, nem a szöveget:
100% opacity
60% opacity
30% opacity
10% opacity
A CSS Színek fejezetünkből megtanulta, hogy színértékként használhatja az RGB-t. Az RGB mellett RGB színértéket használhat alfa csatornával (RGBA) - ez határozza meg a szín átlátszatlanságát.
Az RGBA színérték a következőkkel van megadva: rgba(piros, zöld, kék, alpha). A Az alpha paraméter egy 0,0 (teljesen átlátszó) és 1,0 (teljesen átlátszatlan) közötti szám.
Tipp: Az RGBA színekről a CSS-színek című fejezetben tudhat meg többet.
div {
background: rgba(76, 175, 80, 0.3) /* Green background with 30%
opacity */
}
Próbálja ki Ön is →
<!DOCTYPE html>
<html>
<head>
<style>
div {
background: rgb(4, 170, 109);
padding: 10px;
}
div.first {
background: rgba(4, 170, 109, 0.1);
}
div.second {
background: rgba(4, 170, 109, 0.3);
}
div.third {
background: rgba(4, 170, 109, 0.6);
}
</style>
</head>
<body>
<h1>Transparent Box</h1>
<p>With opacity:</p>
<div style="opacity:0.1;"><p>10% opacity</p></div>
<div style="opacity:0.3;"><p>30% opacity</p></div>
<div style="opacity:0.6;"><p>60% opacity</p></div>
<div><p>opacity 1</p></div>
<p>With RGBA color values:</p>
<div class="first"><p>10% opacity</p></div>
<div class="second"><p>30% opacity</p></div>
<div class="third"><p>60% opacity</p></div>
<div><p>default</p></div>
<p>Notice how the text gets transparent as well as the background color when using the opacity property.</p>
</body>
</html>
This is some text that is placed in the transparent box.
<html>
<head>
<style>
div.background {
background: url(klematis.jpg) repeat;
border: 2px solid black;
}
div.transbox {
margin: 30px;
background-color: #ffffff;
border: 1px solid black;
opacity: 0.6;
}
div.transbox p {
margin: 5%;
font-weight: bold;
color: #000000;
}
</style>
</head>
<body>
<div class="background">
<div class="transbox">
<p>This is some text that is placed in the transparent box.</p>
</div>
</div>
</body>
</html>
Próbálja ki Ön is →
<!DOCTYPE html>
<html>
<head>
<style>
div.background {
background: url(klematis.jpg) repeat;
border: 2px solid black;
}
div.transbox {
margin: 30px;
background-color: #ffffff;
border: 1px solid black;
opacity: 0.6;
}
div.transbox p {
margin: 5%;
font-weight: bold;
color: #000000;
}
</style>
</head>
<body>
<div class="background">
<div class="transbox">
<p>This is some text that is placed in the transparent box.</p>
</div>
</div>
</body>
</html>
Először létrehozunk egy <div> elemet (class="background") háttérképpel és szegéllyel.
Ezután létrehozunk egy másik <div>-t (class="transbox") az első <div>-n belül.
A <div class="transbox"> van háttérszínnel és szegéllyel - a div átlátszó.
Belül az átlátszó <div>, hozzáadunk néhány szöveget egy <p> elemen belül.