Το στοιχείο είναι διαφανές. Ιδιότητα αδιαφάνειας CSS: ελέγχει τη διαφάνεια. Πώς να κάνετε ένα στοιχείο διαφανές και να αφαιρέσετε τη διαφάνεια στο CSS

Το orem Ipsum είναι απλώς εικονικό κείμενο της βιομηχανίας εκτύπωσης και στοιχειοθεσίας. Το Lorem Ipsum ήταν το τυπικό εικονικό κείμενο της βιομηχανίας από το 1500, όταν ένας άγνωστος εκτυπωτής πήρε μια γαλέρα τύπου και την ανακάτεψε για να φτιάξει ένα βιβλίο τύπων. Έχει επιβιώσει όχι μόνο πέντε αιώνες, αλλά και το άλμα στην ηλεκτρονική στοιχειοθεσία Διαδόθηκε στη δεκαετία του 1960 με την κυκλοφορία των φύλλων Letraset που περιείχαν αποσπάσματα Lorem Ipsum και πιο πρόσφατα με το λογισμικό επιτραπέζιων εκδόσεων όπως το Aldus PageMaker, συμπεριλαμβανομένων των εκδόσεων του Lorem Ipsum.
Είναι από καιρό καθιερωμένο γεγονός ότι ο αναγνώστης θα αποσπαστεί από το αναγνώσιμο περιεχόμενο μιας σελίδας όταν κοιτάζει τη διάταξή της. Το νόημα της χρήσης του Lorem Ipsum είναι ότι έχει μια λίγο πολύ κανονική κατανομή γραμμάτων, σε αντίθεση με τη χρήση του "Περιεχόμενο εδώ, περιεχόμενο εδώ", κάνοντάς το να μοιάζει με ευανάγνωστα αγγλικά. Πολλά πακέτα επιτραπέζιων εκδόσεων και συντάκτες ιστοσελίδων χρησιμοποιούν πλέον το Lorem Ipsum ως το προεπιλεγμένο κείμενο μοντέλου και μια αναζήτηση για το "lorem ipsum" θα αποκαλύψει πολλούς ιστότοπους που βρίσκονται ακόμη σε αρχικό στάδιο. Διάφορες εκδοχές έχουν εξελιχθεί με τα χρόνια, άλλοτε τυχαία, άλλοτε επίτηδες (ενέσιμο χιούμορ και τα παρόμοια).

Σήμερα λοιπόν θα μιλήσουμε διαφάνεια σε htmlσελίδες. Πιθανότατα έχετε συναντήσει διαφανή μπλοκ αναδυόμενων παραθύρων, είτε πρόκειται για γκαλερί φωτογραφιών είτε για φόρμες σύνδεσης σε κάποια δημοφιλή ιστοσελίδα. Υπάρχουν πολλές χρήσεις για τη διαφάνεια στην HTML. Πώς φτιάχνεται λοιπόν και πού μπορεί να χρησιμοποιηθεί;

Λοιπόν, πρώτα απ 'όλα, ας καταλάβουμε ότι το έγγραφό μας δεν έχει μόνο ένα επίπεδο παρακολούθησης - είναι γενικά τρισδιάστατο, το ανέφερα στο άρθρο "Z-index". Αντίστοιχα, ακόμη και ένα εντελώς διαφανές στρώμα, αν βρισκόταν στην κορυφή της στοίβας της οθόνης, θα εμπόδιζε την πρόσβαση σε άλλα στοιχεία. Αυτή είναι μια από τις κύριες χρήσεις των διαφανών μπλοκ. Αν και χρησιμοποιείται συνήθως ένα εφέ σκίασης, ένα εντελώς διαφανές στρώμα θα λειτουργήσει ακριβώς το ίδιο. Έτσι, για παράδειγμα, λειτουργούν πολλές δημοφιλείς γκαλερί φωτογραφιών· οργανώνεται ένα σκιασμένο στρώμα στο οποίο εμφανίζονται φωτογραφίες και στοιχεία ελέγχου για αυτές. Το υπόλοιπο μέρος της σελίδας «καλύπτεται» με ένα (ημι) διαφανές στρώμα, που εμποδίζει την πρόσβαση σε όλα τα άλλα στοιχεία της σελίδας. Εκείνοι. Δεν θα μπορείτε να φύγετε από τη σελίδα κάνοντας κλικ σε οποιοδήποτε σύνδεσμο σε αυτήν - όλο το κείμενο καλύπτεται με φόντο. Για να επιστρέψετε στο κύριο μέρος του ιστότοπου, συνήθως παρέχουν στοιχεία ελέγχου για το κλείσιμο της συλλογής, τη φόρμα σύνδεσης κ.λπ. Έλεγχος εμφάνισης/απόκρυψης διαφανών μπλοκ με χρήση javascript. Δυστυχώς, δεν υπάρχει εναλλακτική λύση. Χωρίς να το χρησιμοποιήσει, ο χρήστης είτε δεν θα το δει καθόλου διαφανές μπλοκ, ή δεν θα μπορείτε να το κλείσετε χωρίς να φύγετε από την τρέχουσα σελίδα. Σημειώνω ότι για αυτό χρησιμοποιούνται ιδιότητες ορατότητας ή εμφάνισης.

Πώς οργανώνεται λοιπόν η διαφάνεια στην html; Η διαφάνεια του στοιχείου ρύθμισης γενικά δεν περιλαμβάνεται στην προδιαγραφή CSS, επομένως πρέπει να χρησιμοποιήσετε πολλές οδηγίες ταυτόχρονα για να το δημιουργήσετε. Ορισμένα προγράμματα περιήγησης (δηλαδή) θα λειτουργούν με μια επιλογή, άλλα με μια άλλη. Δηλαδή χρησιμοποιεί την ενσωματωμένη λειτουργία φίλτρου, άλλα προγράμματα περιήγησης χρησιμοποιούν την ιδιότητα "αδιαφάνεια", η οποία ορίζεται στην περιοχή από 0 (εντελώς διαφανές αντικείμενο) έως 1 (εντελώς αδιαφανές). Για παράδειγμα, σε περίπτωση διαφάνειας 30%, θα πρέπει να γράψετε " αδιαφάνεια:0,30; φίλτρο:άλφα(αδιαφάνεια=30);". Οι ιδιότητες, όπως φαίνεται από το παράδειγμα, είναι παρόμοιες - μόνο στην πρώτη περίπτωση χρησιμοποιείται ένας αριθμός από το 0 έως το 1, στη δεύτερη χρησιμοποιείται ένας συμβολισμός ποσοστού. Ένα παράδειγμα τέτοιου μπλοκ:

<στυλ div = "position:absolute; top: 0; left: 0; background-color:rgb(18, 114, 214); width:100%; id = "VideoFrame" >

Το παράδειγμα χρησιμοποιεί ένα μπλοκ εμφάνισης βίντεο, το οποίο ενεργοποιείται όταν κάνετε κλικ στη μικρογραφία του βίντεο. Το ύψος του μπλοκ δεν καθορίζεται, καθώς μπορεί να διαφέρει ανάλογα με το μέγεθος της οθόνης και το περιεχόμενο της σελίδας. Επομένως, υπολογίζεται δυναμικά κατά το άνοιγμα ενός βίντεο. Ένα παράδειγμα χρήσης αυτής της τεχνικής μπορεί να δει κανείς στην κύρια σελίδα του ιστότοπου ruscircus.ru, στον οποίο εργάστηκα κάποια στιγμή.

Αυτό, στην πραγματικότητα, είναι όλο το μυστικό της διαφάνειας στο html. Χρησιμοποιούμε δείκτη z και αδιαφάνεια για να επιτύχουμε ένα διαφανές αποτέλεσμα. Και μπορείτε να βρείτε πολλές εφαρμογές για αυτό - όλα εδώ περιορίζονται μόνο από τη φαντασία σας.

08.02.2013 Θα απαντήσω στις ερωτήσεις που γίνονται στα σχόλια, δηλαδή για το πώς να φτιάξετε ένα αδιαφανές σε ένα διαφανές μπλοκ. Όλα είναι απλά εδώ, δεν είναι για τίποτα που υπέδειξα στο υλικό έναν σύνδεσμο προς υλικό σχετικά με τον δείκτη z, πρέπει να δημιουργήσετε ένα άλλο μπλοκ, με υψηλότερο δείκτη z από το διαφανές. Τώρα, σε λίγα λεπτά, σκιαγράφω ένα παράδειγμα. Μπλοκ:

<στυλ div = "position:absolute; top: 0; left: 0; background-color:rgb(18, 114, 214); πλάτος:100%; ύψος:100%; αδιαφάνεια:0,30; φίλτρο:άλφα(αδιαφάνεια=30); ορατότητα:κρυφό; z-index:1;" id = "VideoFrame" > <div id = Στυλ "VideoFrame2" = "θέση:απόλυτο; επάνω: 25%; αριστερά: 25%, χρώμα φόντου: λευκό; πλάτος: 50%; ύψος: 50%; αδιαφάνεια:0,99; φίλτρο:άλφα(αδιαφάνεια=99); ορατότητα:κρυφό; z-index:2;" onclick = "javascript:HideForm();" >Εδώ γράφουμε το κείμενο</div>

Και λειτουργίες javascript

< script type= "text/javascript" >συνάρτηση ShowForm() ( document.getElementById ("VideoFrame" ) .style .visibility = "visible" ; document.getElementById ("VideoFrame2") .style .visibility = "visible" ; ) function HideForm() ( document.getElementById (" VideoFrame" ) .style .visibility = "hidden" ; document.getElementById ("VideoFrame2") .style .visibility = "hidden" ;)

Η πρώτη λειτουργία εμφανίζει ένα διαφανές μπλοκ (μαζί με ένα αδιαφανές μπλοκ κειμένου) - μπορεί να συνδεθεί σε ένα κουμπί. σύνδεσμος κ.λπ.. Η δεύτερη λειτουργία που έχω συνδέεται με ένα κλικ του ποντικιού σε ένα μπλοκ με κείμενο - κρύβει το διαφανές μπλοκ.

Ελπίζω να έχω δώσει κάποια σαφήνεια για το πώς λειτουργεί αυτό. Λοιπόν, αν όχι, κάντε ερωτήσεις.

Ιδιότητα CSS 3 αδιαφάνειασας επιτρέπει να κάνετε διαφανές ένα ή άλλο στοιχείο του ιστότοπου.

Ο βαθμός διαφάνειας ενός στοιχείου καθορίζεται από την τιμή από 0 πριν 1 Οπου 0 – εντελώς διαφανές 1 – αδιαφανές καθόλου.. Έτσι για παράδειγμα το νόημα 0.5 ιδιότητες αδιαφάνειαπου εφαρμόζεται σε μια εικόνα σημαίνει ότι αυτή η εικόνα πρέπει να είναι ημιδιαφανής.





Διαφάνεια










Διαφάνεια στην ΙΕ

Ο Internet Explorer δεν υποστηρίζει ιδιότητες αδιαφάνειαμέχρι την ένατη έκδοση, ωστόσο, έχει το δικό του φίλτρο με το οποίο μπορείτε να ορίσετε τον βαθμό διαφάνειας:

φίλτρο: άλφα (αδιαφάνεια=50)

Εννοια αδιαφάνειαγια τον Internet Explorer το φίλτρο προγράμματος περιήγησης μπορεί να διαφέρει από 0 - εντελώς διαφανές 100 - αδιαφανές





Διαφάνεια στην ΙΕ



Τα μπλοκ αυτού του μενού θα είναι ημιδιαφανή και στο hover στον IE!!


Σπίτι
Χάρτης τοποθεσίας
Αγοράστε έναν ελέφαντα
Πουλήστε έναν ελέφαντα
Νοικιάστε έναν ελέφαντα

Προθέματα.

Κατ' αρχήν, αυτό θα μπορούσε να είναι το τέλος του κεφαλαίου για τη διαφάνεια, αλλά θα ήθελα επίσης να σας πω για το λεγόμενο προθέματα πωλητή.. αυτοί οι σύντροφοι δεν έχουν καμία ιδιαίτερη σχέση με αυτό το κεφάλαιο, ωστόσο, καθώς προχωράτε στην εκμάθηση CSS3, θα εμφανίζονται όλο και πιο συχνά και πρέπει να μιλήσετε για αυτούς κάπου - γι' αυτό θα σας πω εδώ.

Έτσι, τα προθέματα προμηθευτή είναι ειδικά προθέματα ιδιοτήτων CSS που χρησιμοποιούνται από προγράμματα περιήγησης για πειραματικές ιδιότητες που δεν περιλαμβάνονται επίσημα στην προδιαγραφή CSS.

Θυμόμαστε ότι η προδιαγραφή CSS 3 είναι ακόμα υπό ανάπτυξη και τυπικά οι ιδιότητες που περιγράφονται σε αυτό το σεμινάριο δεν υπάρχουν στη φύση, αλλά τα προγράμματα περιήγησης τις χρησιμοποιούν ήδη ενεργά με δικό τους κίνδυνο και κίνδυνο.

Γιατί με δική σας ευθύνη; Ναι, επειδή υπάρχει πιθανότητα όταν εγκριθεί επίσημα η προδιαγραφή CSS 3, οι ιδιότητες που περιγράφονται σε αυτήν να διαφέρουν ως προς την επίδρασή τους από ιδιότητες με το ίδιο όνομα που χρησιμοποιούνται ήδη από προγράμματα περιήγησης. Λοιπόν, ας τρελαθούμε και αφήστε τους προγραμματιστές της προδιαγραφής CSS 3 να ορίσουν την ιδιοκτησία αδιαφάνειαόχι ως ο βαθμός διαφάνειας του μπλοκ, αλλά για παράδειγμα ως η σκίαση ή το τρεμόπαιγμα του (φυσικά γράφω ανοησίες), το οποίο στη συνέχεια θα εμφανίζεται από εκατομμύρια ήδη εγκατεστημένα προγράμματα περιήγησης για τα οποία αδιαφάνειαΑυτό είναι διαφάνεια;

Ή ας πούμε ότι οι προγραμματιστές του προγράμματος περιήγησης βρήκαν τη δική τους ιδιοκτησία - μια καινοτομία που κανείς άλλος δεν έχει πουθενά, αλλά ένα έγγραφο με τέτοια ιδιότητα δεν περνά τον έλεγχο εγκυρότητας επειδή μια τέτοια ιδιότητα δεν περιλαμβάνεται στις προδιαγραφές.

Για αυτούς και άλλους λόγους, τα προγράμματα περιήγησης προθέτουν ιδιότητες που δεν αποτελούν μέρος της επίσημης προδιαγραφής. Κάθε πρόγραμμα περιήγησης έχει το δικό του πρόθεμα που ξεκινά με το σύμβολο "-", αυτό το σύμβολο στην αρχή της ιδιότητας, καθώς και αυτό το σύμβολο "_", σύμφωνα με την προδιαγραφή CSS 2.1, σημαίνει ότι η ιδιότητα προορίζεται για επεκτάσεις CSS ορισμένων προγράμματα περιήγησης.

Εδώ είναι τα πιο δημοφιλή προγράμματα περιήγησης και τα προθέματά τους:

Πρόγραμμα περιήγησηςΠρόθεμα
ΛΥΡΙΚΗ ΣΚΗΝΗ-ο-
Firefox, SeaMonkey, Camino-moz-
Internet Explorer 8 και νεότερη έκδοση-Κυρία-
Safari έως την έκδοση 3, Konqueror-khtml-
Safari 3 και νεότερη έκδοση, Google Chrome-webkit-

Είναι πολύ εύκολο να χρησιμοποιήσετε προθέματα, απλώς πάρτε οποιαδήποτε ιδιότητα CSS και αντικαταστήστε το επιθυμητό πρόθεμα σε αυτήν, για παράδειγμα στην ιδιότητα αδιαφάνειαυποκατάστατο -moz-αποδεικνύεται: -moz-αδιαφάνεια

Αν και στην πραγματικότητα η έκφρασή μου " χρησιμοποιήστε προθέματα"λανθασμένος! στην πραγματικότητα, τίποτα δεν υποκαθίσταται πουθενά, υπάρχει απλώς μια ιδιοκτησία αδιαφάνεια, είναι εκεί -moz-αδιαφάνειακαι αυτές είναι δύο διαφορετικές ιδιότητες που δεν χρειάζεται απαραίτητα να εκτελούν την ίδια λειτουργία!! - αυτό πρέπει να γίνει κατανοητό..

Θα πρέπει επίσης να καταλάβετε ότι ορισμένα συγκεκριμένα προγράμματα περιήγησης, μέχρι ορισμένες εκδόσεις, μπορούν να υποστηρίξουν ιδιότητες CSS μόνο με τα δικά τους προθέματα (και πάλι, εκφράζομαι εσφαλμένα, είναι σωστό να λέτε τις δικές σας ιδιότητες - επεκτάσεις CSS προγράμματος περιήγησης) και μπορούν αρχικά να βασιστούν σχετικά με τις προδιαγραφές, ακόμη και αν αυτές βρίσκονται υπό ανάπτυξη. – Θα εξετάσουμε κάθε συγκεκριμένη περίπτωση ξεχωριστά σε αυτό το εγχειρίδιο.

Όσον αφορά αυτό το κεφάλαιο για τη διαφάνεια, θα πρέπει να σημειωθεί ότι ο Firefox 3.5 και οι προηγούμενες εκδόσεις του χρησιμοποιούν τη δική τους ιδιοκτησία -moz-αδιαφάνεια, και το πρόγραμμα περιήγησης Safari μέχρι την έκδοση 1.1 χρησιμοποιεί την ιδιότητά του -khtml-αδιαφάνεια .

Έτσι, για να κάνουμε το παράδειγμά μας εντελώς συμβατό με προγράμματα περιήγησης, πρέπει να προσθέσουμε μερικές ακόμη γραμμές στον κώδικα:





Προθέματα και διαφάνεια





Όπως μπορείτε να δείτε, τα προθέματα επεκτείνουν σημαντικά τον κώδικα και η χρήση τους δεν δικαιολογείται πάντα εάν οι εκδόσεις των προγραμμάτων περιήγησης που θέλουν να λειτουργούν με συγκεκριμένες ιδιότητες χρησιμοποιώντας μόνο τα προθέματά τους είναι αρκετά παλιές, όπως συμβαίνει με την ιδιότητα αδιαφάνεια, τότε δεν χρειάζεται να τα υποδείξετε.. – αν και φυσικά αυτή είναι κακή συμβουλή..

Λοιπόν, τώρα μερικές χρήσιμες συμβουλές...

Να χρησιμοποιείτε πάντα προθέματα (εκτός, φυσικά, εάν ένα συγκεκριμένο πρόγραμμα περιήγησης δεν μπορεί να τα κάνει χωρίς αυτά) σε περιπτώσεις όπου η ιδιότητα που χρησιμοποιείται μπορεί να επηρεάσει σημαντικά την απόδοση, την αναγνωσιμότητα και τη χρηστικότητα του ιστότοπου. Είναι ένα πράγμα όταν ορισμένα μικρά πράγματα στη σχεδίαση του ιστότοπου δεν λειτουργούν και πολύ άλλο όταν, για παράδειγμα, το μενού του ιστότοπου δεν λειτουργεί ή είναι αδύνατο να διαβάσετε το κείμενο στον ιστότοπο λόγω του γεγονότος ότι το πρόγραμμα περιήγησης t υποστηρίζει κάποια ιδιότητα και αντ' αυτού χρησιμοποιεί μια παρόμοια δική της.

Η διαφάνεια στο CSS είναι μια αρκετά μοντέρνα τεχνική τον τελευταίο καιρό, η οποία προκαλεί δυσκολίες στην υλοποίηση μεταξύ των προγραμμάτων περιήγησης. Δεν υπάρχει ακόμη καθολική μέθοδος που θα επέτρεπε την εφαρμογή της διαφάνειας για όλα τα προγράμματα περιήγησης. Ωστόσο, πρόσφατα η κατάσταση έχει βελτιωθεί αισθητά.

Αυτό το άρθρο παρέχει μια λεπτομερή ματιά στις υπάρχουσες προσεγγίσεις, καθώς και παραδείγματα κώδικα και επεξηγήσεις που θα σας βοηθήσουν να επιτύχετε το ίδιο αποτέλεσμα σε όλα τα προγράμματα περιήγησης με ελάχιστη προσπάθεια.

Ένα πράγμα που αξίζει να αναφέρουμε είναι ότι ενώ η διαφάνεια υπάρχει εδώ και αρκετά χρόνια, δεν ήταν ποτέ μέρος του προτύπου CSS. Αυτή είναι μια μη τυπική ιδιότητα που πρέπει να αποτελεί μέρος της προδιαγραφής CSS3.

Παλιά προσέγγιση

Σε παλαιότερες εκδόσεις του Firefox και του Safari, πρέπει να εφαρμόσετε την ιδιότητα ως εξής:

#myElement ( -khtml-opacity: .5; -moz-opacity: 0.5; )

Η ιδιότητα -khtml-opacity χρησιμοποιήθηκε σε παλαιότερες εκδόσεις προγραμμάτων περιήγησης webkit. Αυτή η ιδιότητα έχει καταργηθεί και δεν είναι πλέον απαραίτητη, εκτός εάν είστε βέβαιοι ότι ένα σημαντικό μέρος της επισκεψιμότητας του ιστότοπού σας προέρχεται από επισκέπτες που χρησιμοποιούν το Safari 1.x, κάτι που είναι φυσικά απίθανο.

Η επόμενη γραμμή χρησιμοποιεί την ιδιότητα -moz-opacity, η οποία λειτουργούσε σε πολύ πρώιμες εκδόσεις του κινητήρα Mozilla. Ο Firefox σταμάτησε να το υποστηρίζει στην έκδοση 0.9.

Διαφάνεια CSS σε Firefox, Safari, Chrome και Opera

Για τα περισσότερα σύγχρονα προγράμματα περιήγησης, αρκεί να χρησιμοποιήσετε την ακόλουθη ιδιότητα:

#myElement ( αδιαφάνεια: .7; )

Στο παραπάνω παράδειγμα, το στοιχείο έχει οριστεί σε 70% αδιαφάνεια (30% διαφάνεια). Δηλαδή, αν ορίσουμε την τιμή σε ένα, το στοιχείο θα είναι αδιαφανές και, κατά συνέπεια, η μηδενική ρύθμιση αυτής της τιμής θα το κάνει αόρατο.

Η ιδιότητα αδιαφάνειας επεξεργάζεται 2 δεκαδικά ψηφία. Δηλαδή, η τιμή ".01" θα διαφέρει από την τιμή ".02", αν και αυτό δεν γίνεται αντιληπτό.

Διαφάνεια CSS για τον Internet Explorer

Ως συνήθως, ο Internet Explorer δεν είναι φιλικός με άλλα προγράμματα περιήγησης. Επιπλέον, έχουμε τώρα τρεις εκδόσεις αυτού του προγράμματος περιήγησης σε αρκετά διαδεδομένη χρήση, η ρύθμιση διαφάνειας σε καθεμία από τις οποίες είναι διαφορετική και μερικές φορές απαιτεί πρόσθετη προσπάθεια για να επιτευχθεί ένα θετικό αποτέλεσμα.

#myElement (φίλτρο: άλφα(αδιαφάνεια=40); )

Αυτό το παράδειγμα χρησιμοποιεί την ιδιότητα φίλτρου, η οποία λειτουργεί στις εκδόσεις 6-8, ωστόσο για τις εκδόσεις 6 και 7 υπάρχει ένας περιορισμός: η ιδιότητα hasLayout του στοιχείου πρέπει να οριστεί σε true . Αυτή η ιδιότητα υπάρχει μόνο στο IE και μπορείτε να διαβάσετε περισσότερα σχετικά, για παράδειγμα, στο Habré.

Ένας άλλος τρόπος για να ορίσετε τη διαφάνεια χρησιμοποιώντας το CSS στο IE8 είναι να χρησιμοποιήσετε την ακόλουθη προσέγγιση (σημειώστε τα σχόλια):

#myElement ( φίλτρο: progid:DXImageTransform.Microsoft.Alpha(opacity=40); /* λειτουργεί σε IE6, IE7 και IE8 */ -ms-φίλτρο: "progid:DXImageTransform.Microsoft.Alpha(opacity=40)"; / * μόνο για IE8 */ )

Η πρώτη γραμμή θα λειτουργεί σε όλες τις εκδόσεις που χρησιμοποιούνται αυτήν τη στιγμή, η δεύτερη - μόνο σε IE8. Σημειώστε ότι η δεύτερη γραμμή χρησιμοποιεί το πρόθεμα -ms- και η τιμή είναι σε εισαγωγικά.

Ρύθμιση και αλλαγή διαφάνειας CSS με χρήση JavaScript ή jQuery

Μπορείτε να χρησιμοποιήσετε τον ακόλουθο κώδικα για να ορίσετε τη διαφάνεια:

Document.getElementById("myElement").style.opacity = ".4"; // για τα περισσότερα προγράμματα περιήγησης document.getElementById("myElement").style.filter = "alpha(opacity=40)"; // για IE

Φυσικά, σε αυτήν την περίπτωση είναι πολύ πιο εύκολο να χρησιμοποιήσετε το jQuery, επιπλέον, θα λειτουργήσει σε όλα τα προγράμματα περιήγησης:

$("#myElement").css(( αδιαφάνεια: .4 )); // λειτουργεί σε όλα τα προγράμματα περιήγησης

Μπορείτε να κάνετε κίνηση σε αυτήν την ιδιότητα:

$("#myElement").animate(( opacity: .4 ), 1000, function() ( // Η κίνηση ολοκληρώθηκε, αυτός ο κώδικας λειτουργεί σε όλα τα προγράμματα περιήγησης. ));

Λειτουργία RGBA

Το CSS3 σχεδιάζει να υποστηρίξει κανάλια άλφα χρησιμοποιώντας τη συνάρτηση rgba. Αυτή η δυνατότητα λειτουργεί σε Firefox 3+, Opera 10.1+, Chrome 2+, Safari 3.1+. Χρησιμοποιείται ως εξής:

#rgba ( φόντο: rgba(98, 135, 167, .4); )

Σε αυτήν την περίπτωση, η τελευταία παράμετρος υποδεικνύει το επίπεδο αδιαφάνειας.

Λειτουργία HSLA

Παρόμοια με την προηγούμενη λειτουργία, το CSS3 σας επιτρέπει επίσης να ορίσετε ένα ημιδιαφανές χρώμα χρησιμοποιώντας τη συνάρτηση HSLA, οι παράμετροι της οποίας είναι Hue, Saturation, Lightness και Alpha κανάλι.

#hsla ( φόντο: hsla(207, 38%, 47%, .4); )

Ένα σημαντικό σημείο κατά τη χρήση των συναρτήσεων rgba και hsla είναι ότι η ρύθμιση διαφάνειας δεν εφαρμόζεται σε θυγατρικά στοιχεία, ενώ η χρήση της ιδιότητας αδιαφάνειας κληρονομείται.

Για να ελέγξετε τη διαφάνεια των στοιχείων σελίδας, χρησιμοποιήστε την ιδιότητα αδιαφάνειας CSS. Σύμφωνα με την προδιαγραφή, ισχύει για κάθε τύπο κόμβου και υποστηρίζεται σε όλα τα σύγχρονα προγράμματα περιήγησης. Με τη βοήθειά του, μπορείτε να δημιουργήσετε ένα ενδιαφέρον σχέδιο ή να εφαρμόσετε βολική διαδραστική αλληλεπίδραση με τον χρήστη.

Πιθανές τιμές

Η σύνταξη για την ιδιότητα αδιαφάνειας στο css μοιάζει με αυτό:

Επιλογέας (αδιαφάνεια: 1; ) επιλογέας (αδιαφάνεια: 0; ) επιλογέας (αδιαφάνεια: 0,4; )

Η είσοδος δέχεται αριθμητικές τιμές στην περιοχή από 0 έως 1. Η παράμετρος μπορεί να αντιπροσωπεύει κλάσματα του ενός, ενώ μια τελεία χρησιμοποιείται ως διαχωριστικό για τα ακέραια και κλασματικά μέρη στο CSS.

Ένα στοιχείο με μηδενική διαφάνεια γίνεται αόρατο, αλλά εξακολουθεί να καταλαμβάνει τη θέση του στη σελίδα και διατηρεί τη δυνατότητα αλληλεπίδρασης με τον χρήστη.

Εάν η αξία του ακινήτου είναι μη μηδενική, τότε η πραγματική διαφάνεια θα υπολογιστεί ως ποσοστό κάποιου ανώτατου ορίου. Σε μια κανονική κατάσταση, η αδιαφάνεια: 1 καθορίζει την πλήρη αδιαφάνεια του στοιχείου.

Διαφάνεια παιδικών κόμβων

Ωστόσο, εάν το στοιχείο έχει έναν γονέα του οποίου η διαφάνεια είναι διαφορετική από ένα, ο υπολογισμός αλλάζει. Ένας απόγονος δεν μπορεί να είναι «λιγότερο διαφανής» από οποιονδήποτε από τους προγόνους του. Η τιμή της ιδιότητας αδιαφάνειας CSS του γονικού μπλοκ γίνεται το ανώτερο όριο αδιαφάνειας του θυγατρικού κόμβου.

Γονέας (αδιαφάνεια: 0,7; ) παιδί (αδιαφάνεια: 1; )

Σε αυτήν την περίπτωση, το θυγατρικό στοιχείο θα είναι 30% διαφανές, παρόλο που η τιμή αδιαφάνειας είναι ένα.

Παραδείγματα χρήσης

Παράδειγμα 1: Διαφάνεια. Είναι απαραίτητο το κύριο φόντο του μπλοκ να είναι ορατό κάτω από το στοιχείο στόχο.

Στόχος ( φόντο: μαύρο, αδιαφάνεια: 0,5; )

Όχι μόνο το φόντο του μπλοκ στόχου γίνεται ημιδιαφανές, αλλά και το κείμενο.

Παράδειγμα 2: Δυναμικός έλεγχος διαφάνειας. Η τιμή της ιδιότητας αδιαφάνειας CSS του μπλοκ προορισμού αλλάζει όταν τοποθετείτε το δείκτη του ποντικιού πάνω του.

Στόχος ( αδιαφάνεια: 0,2; ) .target:hover ( αδιαφάνεια: 1; )

Δυναμική διαφάνεια

Το τελευταίο παράδειγμα δείχνει ότι τα διαφανή στοιχεία συνεχίζουν να ανταποκρίνονται σε συμβάντα σελίδας, όπως το δείκτη του ποντικιού. Αυτό σας επιτρέπει να χρησιμοποιείτε javascript για να ελέγχετε την ιδιότητα αδιαφάνειας CSS, καθώς και να χρησιμοποιείτε μηχανισμούς μετάβασης και κίνησης για να αλλάξετε ομαλά τη λειτουργία εμφάνισης.

Για να αποκτήσετε πρόσβαση στη διαφάνεια από ένα σενάριο, πρέπει να αποκτήσετε πρόσβαση στο αντικείμενο στυλ ενός συγκεκριμένου στοιχείου.

// λήψη της τρέχουσας τιμής διαφάνειας var opacity = element.style.opacity; // ορίζοντας μια νέα τιμή στοιχείο.style.opacity = 0.4;

Η ομαλή εξαφάνιση ενός μπλοκ μπορεί να επιτευχθεί χρησιμοποιώντας την ιδιότητα μετάβασης CSS:

Στοιχείο ( αδιαφάνεια: 0,1, μετάβαση: αδιαφάνεια 1000 ms; ) στοιχείο: αιώρηση ( αδιαφάνεια: 0,8, μετάβαση: αδιαφάνεια 2000 ms; )

Τώρα ο κόμβος του στοιχείου, όταν τοποθετηθεί με το ποντίκι, θα αλλάξει τη διαφάνεια από 10 σε 80% μέσα σε ένα δευτερόλεπτο και όταν ο δρομέας φύγει, θα εξασθενίσει στην αρχική του τιμή μέσα σε δύο δευτερόλεπτα.

Η ιδιότητα αδιαφάνειας CSS σε συνδυασμό με τον μηχανισμό μετάβασης σάς επιτρέπει να δημιουργείτε όμορφα εφέ.

Κανάλι άλφα αντί για αδιαφάνεια

Οι κύριες λεπτότητες του μηχανισμού αδιαφάνειας στο CSS:

  • Η επίδρασή του επεκτείνεται όχι μόνο στο φόντο του μπλοκ, αλλά και στο περιεχόμενο του κειμένου του, το οποίο κατά προτίμηση παραμένει καθαρό.
  • Τα θυγατρικά στοιχεία δεν μπορούν να είναι λιγότερο διαφανή από τα μητρικά στοιχεία τους.

Εάν αυτά τα εφέ περιπλέκουν τη ζωή του σχεδιαστή διάταξης, αντί για αδιαφάνεια, θα πρέπει να χρησιμοποιήσετε ένα απλό διαφανές φόντο, προσδιορίζοντας την τιμή του σε μορφή RGBA ή HSLA.

Βλαντ Μέρζεβιτς

Το ημιδιαφανές εφέ ενός στοιχείου είναι καθαρά ορατό στην εικόνα φόντου και έχει γίνει ευρέως διαδεδομένο σε διαφορετικά λειτουργικά συστήματα επειδή φαίνεται κομψό και όμορφο. Στη σχεδίαση ιστοσελίδων, χρησιμοποιείται επίσης η διαφάνεια και επιτυγχάνεται μέσω της ιδιότητας αδιαφάνειας ή της μορφής χρώματος RGBA που έχει οριστεί για το φόντο.

Μπλοκ κλίσης

Δημιουργήστε το μπλοκ που φαίνεται στο Σχ. 1. Το μπλοκ περιέχει ένα ημιδιαφανές ντεγκραντέ πλαίσιο με ντεγκραντέ φόντο κάτω από τον τίτλο και έναν μικρό δείκτη. Το φόντο στη σελίδα παρέχεται μόνο για σαφήνεια του εφέ ημιδιαφάνειας, μπορείτε να υποδείξετε οποιαδήποτε δική σας εικόνα. Το ελάχιστο ύψος μπλοκ είναι 100 px.

Πώς να κάνετε ένα στρώμα ημιδιαφανές;

Για να αλλάξετε τον βαθμό διαφάνειας ενός στοιχείου, χρησιμοποιήστε την ιδιότητα στυλ αδιαφάνειας με τιμή από 0 έως 1, όπου το 0 αντιστοιχεί στην πλήρη διαφάνεια και το 1, αντίθετα, στην αδιαφάνεια του αντικειμένου. Αυτή η ιδιότητα δεν λειτουργεί στον Internet Explorer, επομένως πρέπει να χρησιμοποιήσετε το φίλτρο ειδικά για αυτήν, μια ιδιότητα που δεν αποτελεί μέρος της προδιαγραφής CSS. Το Παράδειγμα 1 δείχνει πώς να ορίσετε τη διαφάνεια του επιπέδου για όλα τα προγράμματα περιήγησης.

Διαφανές φόντο

Βλαντ Μέρζεβιτς

Η μερική διαφάνεια, όταν χρησιμοποιείται σωστά, φαίνεται πολύ εντυπωσιακή στο σχεδιασμό της ιστοσελίδας. Το κύριο πράγμα είναι ότι κάτω από τα ημιδιαφανή μπλοκ δεν υπάρχει ένα μονόχρωμο σχέδιο, αλλά μια εικόνα· σε αυτή την περίπτωση η διαφάνεια γίνεται αισθητή. Αυτό το εφέ επιτυγχάνεται με πολλούς τρόπους και αν θυμάστε όλα, συμπεριλαμβανομένων των παλιομοδίτικών μεθόδων, χρησιμοποιεί μια εικόνα PNG ως φόντο, δημιουργώντας μια καρό εικόνα και την ιδιότητα αδιαφάνειας. Αλλά μόλις προκύψει η ανάγκη να φτιάξετε ένα ημιδιαφανές φόντο σε ένα μπλοκ, αυτές οι μέθοδοι έχουν ένα δυσάρεστο μειονέκτημα. Θα κάνω μια σύντομη ανασκόπηση για να καταστεί σαφές για τι πράγμα μιλάμε, καθώς και για όσους αναγνώστες δεν είναι εξοικειωμένοι με τις μη παραδοσιακές επιλογές για τη δημιουργία ενός ημιδιαφανούς εφέ.

Πώς να ορίσετε έναν πίνακα ώστε να είναι ημιδιαφανής, αλλά ορισμένα κελιά δεν είναι;

Για να αλλάξετε τη διαφάνεια ενός στοιχείου, το CSS3 παρέχει την ιδιότητα αδιαφάνειας· η τιμή της μπορεί να κυμαίνεται από 0 έως 1. Το μηδέν αντιστοιχεί στην πλήρη διαφάνεια του στοιχείου και ένα, αντίθετα, στην αδιαφάνεια. Τα σύγχρονα προγράμματα περιήγησης λειτουργούν αρκετά σωστά με αυτήν την ιδιότητα, με εξαίρεση το πρόγραμμα περιήγησης Internet Explorer, επομένως για αυτό πρέπει να χρησιμοποιήσετε μια ειδική ιδιότητα φίλτρου με την τιμή alpha(Opacity=X) , όπου το X μπορεί να ποικίλλει από 0 έως 100.