Η ιδιότητα αδιαφάνεια
καθορίζει την αδιαφάνεια/διαφάνεια ενός στοιχείου.
Η ιδιότητα αδιαφάνεια
μπορεί να πάρει τιμή από 0,0 - 1,0. Όσο χαμηλότερη είναι η τιμή, τόσο πιο διαφανές:
opacity 0.2
opacity 0.5
opacity 1
(default)
img {
opacity: 0.5;
}
Δοκιμάστε το μόνοι σας →
<!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>
Η ιδιότητα αδιαφάνεια
χρησιμοποιείται συχνά μαζί με τον επιλογέα :hover
για αλλαγή της αδιαφάνειας κατά την τοποθέτηση του ποντικιού:
img {
opacity: 0.5;
}
img:hover {
opacity: 1.0;
}
Δοκιμάστε το μόνοι σας →
<!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>
Το πρώτο μπλοκ CSS είναι παρόμοιο με τον κώδικα στο Παράδειγμα 1. Επιπλέον, έχουμε προσθέσει τι πρέπει να συμβεί όταν ένας χρήστης τοποθετεί το δείκτη του ποντικιού πάνω από μία από τις εικόνες. Σε αυτήν την περίπτωση θέλουμε η εικόνα να ΜΗΝ είναι διαφανής όταν ο χρήστης τοποθετεί τον δείκτη του ποντικιού πάνω της. Το CSS για αυτό είναι opacity:1;
.
Όταν ο δείκτης του ποντικιού απομακρυνθεί από την εικόνα, η εικόνα θα είναι ξανά διαφανής.
Ένα παράδειγμα αντίστροφου εφέ αιώρησης:
img:hover {
opacity: 0.5;
}
Δοκιμάστε το μόνοι σας →
<!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>
Όταν χρησιμοποιείτε την ιδιότητα αδιαφάνεια
για να προσθέσετε διαφάνεια στο φόντο ενός στοιχείου, όλα τα θυγατρικά του στοιχεία κληρονομούν την ίδια διαφάνεια. Αυτό μπορεί να κάνει το κείμενο μέσα σε ένα πλήρως διαφανές στοιχείο δυσανάγνωστο:
opacity 1
opacity 0.6
opacity 0.3
opacity 0.1
div {
opacity: 0.3;
}
Δοκιμάστε το μόνοι σας →
<!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>
Εάν δεν θέλετε να εφαρμόσετε αδιαφάνεια σε θυγατρικά στοιχεία, όπως στο παραπάνω παράδειγμά μας, χρησιμοποιήστε τιμές χρώματος RGBA. Το παρακάτω παράδειγμα ορίζει την αδιαφάνεια για το χρώμα του φόντου και όχι για το κείμενο:
100% opacity
60% opacity
30% opacity
10% opacity
Μάθατε από το Κεφάλαιό μας για τα χρώματα CSS, ότι μπορείτε να χρησιμοποιήσετε το RGB ως τιμή χρώματος. Εκτός από το RGB, μπορείτε να χρησιμοποιήσετε μια τιμή χρώματος RGB με ένα κανάλι άλφα (RGBA) - το οποίο καθορίζει την αδιαφάνεια για ένα χρώμα.
Μια τιμή χρώματος RGBA καθορίζεται με: rgba(κόκκινο, πράσινο, μπλε, άλφα). ο Η παράμετρος alpha είναι ένας αριθμός μεταξύ 0,0 (πλήρως διαφανές) και 1,0 (πλήρως αδιαφανής).
Συμβουλή: Θα μάθετε περισσότερα για τα χρώματα RGBA στο Κεφάλαιο Χρώματα CSS.
div {
background: rgba(76, 175, 80, 0.3) /* Green background with 30%
opacity */
}
Δοκιμάστε το μόνοι σας →
<!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>
Δοκιμάστε το μόνοι σας →
<!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>
Αρχικά, δημιουργούμε ένα στοιχείο <div> (class="background") με εικόνα φόντου και περίγραμμα.
Στη συνέχεια δημιουργούμε ένα άλλο <div> (class="transbox") μέσα στο πρώτο <div>.
ο Το <div class="transbox"> έχει χρώμα φόντου και περίγραμμα - το div είναι διαφανές.
Μέσα στο διάφανο <div>, προσθέτουμε λίγο κείμενο μέσα σε ένα στοιχείο <p>.