Φόρμα σχολίων HTML με αναπτυσσόμενη λίστα. Φόρμες HTML. Ομαδοποίηση στοιχείων λίστας
Κατά τη διαδικασία δημιουργίας ενός ιστότοπου ή ιστολογίου και περαιτέρω πλήρωσής του με περιεχόμενο, για διάφορους λόγους, μερικές φορές καθίσταται απαραίτητο να αποκρύψετε μέρος του κειμένου, να τοποθετήσετε πιο ογκώδεις πληροφορίες σε ένα μπλοκ κρυμμένο προς το παρόν, αλλά και πάλι να υποδείξετε στους χρησιμοποιήστε ό,τι είναι διαθέσιμο κάτι άλλο και δώστε του την ευκαιρία να δει κρυφό περιεχόμενο χωρίς να μετακινηθεί στην επόμενη γραμμή ή σελίδα.
Προηγουμένως, μια δέσμη javascript χρησιμοποιήθηκε για την υλοποίηση μιας τέτοιας λύσης, αλλά τώρα όλα αυτά μπορούν να γίνουν πολύ εύκολα χρησιμοποιώντας εκπληκτικές ιδιότητες.
Σήμερα θα εξετάσουμε τον απλούστερο τρόπο δημιουργίας κρυφών μπλοκ περιεχομένου σε σελίδες ιστότοπου και σε μεμονωμένα μηνύματα που ανοίγουν όταν κάνετε κλικ σε ένα συγκεκριμένο στοιχείο κειμένου, χρησιμοποιώντας αποκλειστικά ιδιότητες CSS3. Ένας διακόπτης μπορεί να είναι μια μεμονωμένη λέξη, μια επισημασμένη φράση, μια ολόκληρη πρόταση ή ένα ενημερωτικό εικονίδιο.
Τέτοια μπλοκ χρησιμοποιούνται συχνά σε σελίδες με μεγάλο όγκο περιεχομένου, προκειμένου να γίνει πιο δομημένο και συμπαγές, όλο το περιεχόμενο χωρίζεται σε λεγόμενες ομάδες, στις οποίες παρουσιάζονται μόνο οι επικεφαλίδες στον χρήστη, όλο το κείμενο είναι κρυμμένο από προεπιλογή και μπορείτε να το δείτε κάνοντας κλικ σε ένα συγκεκριμένο στοιχείο (βλ. παραπάνω).
Ας προσπαθήσουμε να κάνουμε χωρίς περιττό νερό, δείτε ολόκληρο αυτόν τον απλό μηχανισμό σε δράση, με ένα σαφές παράδειγμα, και μπορείτε επίσης να επεξεργαστείτε κάτι αν θέλετε:
Παράδειγμα Νο. 1
Το μη επιλεγμένο και μη επισημασμένο κείμενο χρησιμοποιείται ως διακόπτες για αναπτυσσόμενα μπλοκ με πρόσθετες πληροφορίες, με μια σαφή πρόσκληση για κλικ σε αυτό, την οποία πρέπει να κάνετε χωρίς φόβο ή αμφιβολία για να δείτε)))
Όπως μπορείτε να δείτε, όλα λειτουργούν περισσότερο από τέλεια, το κρυφό περιεχόμενο εμφανίζεται χωρίς προβλήματα και εξαφανίζεται με ένα ελαφρύ κλικ του ποντικιού και ταυτόχρονα χρησιμοποιήσαμε τον ελάχιστο δυνατό κώδικα, τόσο στο πλαίσιο html όσο και στον σχηματισμό των στυλ css. Χωρίς τη σύνδεση πρόσθετων βιβλιοθηκών javascript, με την αιώνια ανησυχία μήπως είναι απενεργοποιημένες από την πλευρά του χρήστη.
Η υλοποίηση όλης αυτής της δράσης έγινε δυνατή χάρη στην ψευδο-κλάση CSS3 :τετραγωνισμένος, που εφαρμόζεται σε στοιχεία διεπαφής όπως τα κουμπιά επιλογής (). Τι κάναμε στην πραγματικότητα στην ετικέτα Εκχωρήσαμε στο χαρακτηριστικό type το πλαίσιο ελέγχου τιμής , καθώς και το αναγνωριστικό id="hd-1" που αντιστοιχεί στο μοναδικό αναγνωριστικό for="hd-1"τρέχον διακόπτη μπλοκ. Θα αποκρύψουμε τα πλαίσια ελέγχου πλήρως και για πάντα, ρυθμίζοντας την ιδιότητα εμφάνισης: κανένα στην κατηγορία.κρυψη.
Στην πραγματικότητα, δεν υπάρχει τίποτα ιδιαίτερο να εξηγήσουμε εδώ· ολόκληρος ο μηχανισμός για την ενεργοποίηση και απενεργοποίηση κρυφών μπλοκ αποτελείται από τρία στοιχεία:
- Πλαίσιο ελέγχου - ετικέτα με νόημα πλαίσιο ελέγχουΧαρακτηριστικό τύποςκαι με συγκεκριμένο αναγνωριστικό σύνδεσης
- Τίτλος (διακόπτης κειμένου) - ετικέτα με μια μοναδική τιμή αναγνωριστικού για το χαρακτηριστικό Για, (το αναγνωριστικό πρέπει να είναι ίδιο με το αναγνωριστικό της ετικέτας εισαγωγήμε νόημα πλαίσιο ελέγχουΧαρακτηριστικό τύπος).
- Το μπλοκ περιεχομένου είναι μια ετικέτα div, η οποία θα περιέχει, μέχρι τις καλύτερες στιγμές, μέχρι να κάνει κλικ ο χρήστης, διάφορα κρυφό περιεχόμενο (κείμενο, εικόνες κ.λπ., κ.λπ.)
Ελπίζω ότι από τη χαοτική εξήγησή μου, έγινε σαφές ποιο είναι το όλο θέμα. Το CSS εφαρμόζει νέα στυλ (χρησιμοποιώντας την ψευδο-κλάση τετραγωνισμένος) για να εμφανίσετε ένα μπλοκ περιεχομένου που προηγουμένως ήταν κρυμμένο μόνο όταν ο χρήστης κάνει κλικ σε ένα στοιχείο που σχετίζεται με ένα πλαίσιο ελέγχου με ένα μοναδικό αναγνωριστικό.
Από όλα αυτά προκύπτει σημαντική σημείωση:
Όταν χρησιμοποιείτε πολλά κρυφά μπλοκ στην ίδια σελίδα, κάθε κουμπί επιλογής πρέπει να έχει ένα μοναδικό αναγνωριστικό που θα διαφέρει από τα αναγνωριστικά σε άλλα μπλοκ.
Λοιπόν, με λόγια έχουμε ταξινομήσει τι πηγαίνει πού και γιατί, τώρα, ας δούμε το πλαίσιο html ολόκληρης της δομής:
< input class = "hide" id= "hd-1" type= "checkbox" > < label for = "hd-1" >Κάντε κλικ εδώ για να ανοίξετε! label> < div>Κρυφό περιεχόμενο...... div> < input class = "hide" id= "hd-2" type= "checkbox" > < label for = "hd-2" >Κάντε κλικ εδώ για να διαβάσετε περισσότερα! label> < div>Κρυφό περιεχόμενο... div> |
Στη συνέχεια, προχωράμε απευθείας στον σχηματισμό στυλ CSS, χωρίς τα οποία δεν θα λειτουργήσει ολόκληρος ο σχεδιασμός. Ο ελάχιστος κώδικας, χωρίς καμία διακόσμηση, απλώς επισήμανε ελαφρώς το φόντο για το αναπτυσσόμενο μπλοκ που θα καθορίσει για εσάς και θα εμφανίσει το πλαίσιο του κρυφού κειμένου. Μπορείτε να σχεδιάσετε τα μπλοκ όπως θέλετε, να προσθέσετε περιγράμματα, στρογγυλές γωνίες, να επισημάνετε κείμενο ή .
1.CSS
. κρύβω, . απόκρυψη + ετικέτα ~ div (εμφάνιση: καμία;) /* τύπος κειμένου ετικέτας */. απόκρυψη + ετικέτα, . απόκρυψη: επιλεγμένο + ετικέτα ( padding: 0 ; χρώμα: πράσινο; δρομέας: δείκτης; περιθώριο - κάτω: 1 px πράσινο με κουκκίδες; ) . απόκρυψη: checked + label + div ( εμφάνιση: μπλοκ; φόντο: #efefef; - moz- box- shadow: inset 3px 3px 10px #7d8e8f; - webkit- box- shadow: inset 3px 3px 10px #7d8e8f; box- shadow: inset 3px 3px 10px #7d8e8f; padding: 10px;) |
/* απόκρυψη πλαισίων ελέγχου και μπλοκ περιεχομένου */ .hide, .hide + label ~ div ( display: none; ) /* label text text */ .hide + label, .hide:checked + label ( padding: 0; color: green ; δρομέας: δείκτης, περίγραμμα-κάτω: 1 εικονοστοιχείο πράσινο με κουκκίδες; ) /* εμφάνιση του κειμένου της ετικέτας όταν ο διακόπτης είναι ενεργός */ .απόκρυψη: επιλεγμένο + ετικέτα (χρώμα: κόκκινο, κάτω περιγράμματος: 0; ) /* όταν το το πλαίσιο ελέγχου είναι ενεργό, εμφάνιση μπλοκ με περιεχόμενο */ .hide:checked + label + div ( display: block; background: #efefef; -moz-box-shadow: inset 3px 3px 10px #7d8e8f; -webkit-box-shadow: inset 3px 3px 10px #7d8e8f; box-shadow: inset 3px 3px 10px #7d8e8f; padding: 10px; )
Αυτό είναι όλο, για ένα ασκητικό παράδειγμα, ένα απολύτως επαρκές ελάχιστο. Αλλά δεν θα είμαστε καθόλου εμείς αν δεν προσθέσουμε τουλάχιστον μερικά καλούδια και είναι καλύτερο να πούμε οπτικά στον χρήστη πού να κάνει κλικ.
Στο δεύτερο παράδειγμα, πρόσθεσα ένα απλό σύμβολο με τη μορφή συν, το οποίο δείχνει ξεκάθαρα ότι κάτι άλλο είναι κρυμμένο εδώ· όταν πατηθεί, μετατρέπεται αμέσως σε μείον και πρόσθεσα μια μικρή κίνηση στα κρυφά μπλοκ με περιεχόμενο όταν εμφανίζονται, και όλα αυτά αποκλειστικά με τη βοήθεια της μαγείας του CSS3.
2.CSS
/* απόκρυψη πλαισίων ελέγχου και μπλοκ περιεχομένου */. κρύβω, . απόκρυψη + ετικέτα ~ div (εμφάνιση: καμία;) /* τύπος κειμένου ετικέτας */. απόκρυψη + ετικέτα ( περιθώριο: 0 ; padding: 0 ; χρώμα: πράσινο, δρομέας: δείκτης, οθόνη: inline-block; ) /* εμφάνιση του κειμένου της ετικέτας όταν ο διακόπτης είναι ενεργός */. απόκρυψη: επιλεγμένο + ετικέτα (χρώμα: κόκκινο, περίγραμμα-κάτω: 0 ; ) /* όταν το πλαίσιο ελέγχου είναι ενεργό, εμφανίστε μπλοκ με περιεχόμενο */. απόκρυψη: checked + label + div ( εμφάνιση: μπλοκ; φόντο: #efefef; - moz- box- shadow: inset 3px 3px 10px #7d8e8f; - webkit- box- shadow: inset 3px 3px 10px #7d8e8f; box- shadow: inset 3px 3px 10px #7d8e8f;margin-left: 20px;padding: 10px; /* μια μικρή κινούμενη εικόνα κατά την εμφάνιση */- webkit- animation: fade ease- σε 0. 5s; - moz- animation: fade ease- σε 0. 5s; animation: fade ease- σε 0. 5s; ) /* κινούμενη εικόνα όταν εμφανίζονται κρυφά μπλοκ */@- moz- keyframes fade ( από ( αδιαφάνεια: 0 ; ) σε ( αδιαφάνεια: 1 ) ) @- webkit- keyframes fade ( από ( αδιαφάνεια: 0 ; ) σε ( αδιαφάνεια: 1 ) ) @ keyframes fade ( από ( αδιαφάνεια: 0 ;) έως (αδιαφάνεια: 1)) . απόκρυψη + ετικέτα: πριν ( χρώμα φόντου: #1e90ff; χρώμα: #fff; περιεχόμενο: " \002 B"; οθόνη: μπλοκ; float: αριστερά; μέγεθος γραμματοσειράς: 14 px; βάρος γραμματοσειράς: έντονη; ύψος: 16 px; Ύψος γραμμής: 16 px; περιθώριο: 3px 5px; κείμενο- στοίχιση: κέντρο; πλάτος: 16 px; - webkit- border- ακτίνα: 50%; - moz- σύνορα- ακτίνα: 50%; ακτίνα συνόρων: 50%; ) . απόκρυψη: επιλεγμένο + ετικέτα: πριν ( περιεχόμενο: " \221 2" ; } |
/* απόκρυψη πλαισίων ελέγχου και μπλοκ περιεχομένου */ .hide, .hide + label ~ div ( εμφάνιση: κανένας; ) /* εμφάνιση κειμένου ετικέτας */ .hide + label ( περιθώριο: 0; padding: 0; color: green; cursor : δείκτης; εμφάνιση: inline-block; ) /* εμφάνιση του κειμένου της ετικέτας όταν ο διακόπτης είναι ενεργός */ .hide:checked + label ( χρώμα: κόκκινο; border-bottom: 0; ) /* όταν το πλαίσιο ελέγχου είναι ενεργό, εμφάνιση μπλοκ με περιεχόμενο */ . hide:checked + label + div ( display: block; background: #efefef; -moz-box-shadow: inset 3px 3px 10px #7d8e8f; -webkit-box-shadow: inset 3px 3px 10px #7d8ef ; box-shadow: inset 3px 3px 10px #7d8e8f; margin-αριστερό: 20px; padding: 10px; /* λίγο animation κατά την εμφάνιση */ -webkit-animation:fade ease-in 0,5s; -moz-animation:fade ease -σε 0,5 δευτ.; κινούμενη εικόνα: fade ease-σε 0,5 δευτ. fade ( από ( αδιαφάνεια: 0 ; ) σε ( αδιαφάνεια: 1 ) ) @keyframes fade ( από ( αδιαφάνεια: 0; ) σε ( αδιαφάνεια: 1 ) ) .hide + label:before ( background-color: #1e90ff; χρώμα: #fff; περιεχόμενο: "\002B"; οθόνη: μπλοκ; float: αριστερά; μέγεθος γραμματοσειράς: 14 px; βάρος γραμματοσειράς: έντονη; ύψος: 16 px; Ύψος γραμμής: 16 px; περιθώριο: 3px 5px; text-align: κέντρο; πλάτος: 16 px; -webkit-border-radius: 50%; -moz-border-radius: 50%; ακτίνα συνόρων: 50%; ) .hide:checked + label:before ( περιεχόμενο: "\2212"; )
Από κάθε άποψη, η μέθοδος είναι αναμφίβολα καλή, αλλά όπως πάντα, και καθόλου περίεργο, προκύπτουν προβλήματα με το αιώνιο φρένο στην πρόοδο, το πρόγραμμα περιήγησης IE, ψευδο-κλάση τετραγωνισμένοςυποστηρίζουν μόνο τις εκδόσεις 9 και νεότερες αυτού του προγράμματος περιήγησης. Για παλαιότερες εκδόσεις του IE, όλα παραμένουν ίδια, θα πρέπει να χρησιμοποιήσετε javascript.
Χρησιμοποιώντας κρυφά πλαίσια ελέγχου, μπορείτε εύκολα να εφαρμόσετε μπλοκ με στυλ, ρυθμιστικά, γκαλερί και πολλά άλλα.
Με όλο τον σεβασμό, Andrew
Περιγραφή
Ετικέτα HTML
Στοιχείο
Το πλάτος του αναπτυσσόμενου μενού θα καθοριστεί από το μεγαλύτερο κείμενο που καθορίζεται στην ετικέτα