Σπίτι Επισκευή Πώς να κεντράρετε μια διάταξη που ανταποκρίνεται στο στοιχείο. Όλα για την ευθυγράμμιση CSS. Απόλυτη τοποθέτηση και διάταση

Πώς να κεντράρετε μια διάταξη που ανταποκρίνεται στο στοιχείο. Όλα για την ευθυγράμμιση CSS. Απόλυτη τοποθέτηση και διάταση

Πολύ συχνά η εργασία είναι η ευθυγράμμιση του μπλοκ στο κέντρο της σελίδας/οθόνης, ακόμη και έτσι χωρίς σενάριο java, χωρίς καθορισμό σκληρών μεγεθών ή αρνητικών εσοχών, έτσι ώστε οι γραμμές κύλισης να λειτουργούν στον γονέα εάν το μπλοκ υπερβαίνει το μέγεθός του. Υπάρχουν πολλά μονότονα παραδείγματα στο δίκτυο για το πώς να ευθυγραμμίσετε ένα μπλοκ στο κέντρο της οθόνης. Κατά κανόνα, τα περισσότερα από αυτά βασίζονται στις ίδιες αρχές.

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

Επιλογή 1. Αρνητική επένδυση.

Τοποθέτηση ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟπάνω και αριστερά χαρακτηριστικά κατά 50%, και γνωρίζοντας εκ των προτέρων το ύψος και το πλάτος του μπλοκ, ορίστε ένα αρνητικό περιθώριο, το οποίο είναι ίσο με το μισό μέγεθος ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟ. Τεράστιο μείον αυτή την επιλογήείναι ότι πρέπει να μετρήσετε αρνητικές εσοχές. Τον ίδιο τρόπο ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟδεν συμπεριφέρεται σωστά στο περιβάλλον των γραμμών κύλισης - απλώς κόβεται επειδή έχει αρνητικές εσοχές.

Γονικός ( πλάτος: 100%; ύψος: 100%, θέση: απόλυτη; επάνω: 0; αριστερά: 0; υπερχείλιση: αυτόματη; ) .block ( πλάτος: 250 px; ύψος: 250 px; θέση: απόλυτο; επάνω: 50%, αριστερά : 50%; περιθώριο: -125 εικονοστοιχεία 0 0 -125 εικονοστοιχεία; img (μέγ. πλάτος: 100%; ύψος: αυτόματη; οθόνη: μπλοκ; περιθώριο: 0 αυτόματο; περίγραμμα: κανένα; ) )

Επιλογή 2: Αυτόματη εσοχή.

Λιγότερο κοινό, αλλά παρόμοιο με το πρώτο. Για ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟορίστε το πλάτος και το ύψος, τοποθετήστε τα χαρακτηριστικά πάνω δεξιά κάτω αριστερά σε 0 και ορίστε το αυτόματο περιθώριο. Το πλεονέκτημα αυτής της επιλογής είναι οι λειτουργικές γραμμές κύλισης μητρική εταιρεία, εάν το τελευταίο έχει 100% πλάτος και ύψος. Το μειονέκτημα αυτής της μεθόδου είναι το άκαμπτο μέγεθος.

Γονικό ( πλάτος: 100%; ύψος: 100%, θέση: απόλυτη; επάνω: 0; αριστερά: 0; υπερχείλιση: αυτόματη; ) .block (πλάτος: 250 px; ύψος: 250 px; θέση: απόλυτη; επάνω: 0; δεξιά: 0; κάτω: 0; αριστερά: 0; περιθώριο: αυτόματο; img (μέγιστο πλάτος: 100%; ύψος: αυτόματο; οθόνη: μπλοκ; περιθώριο: 0 αυτόματο; περίγραμμα: κανένα; ) )

Επιλογή 3. Πίνακας.

Ρωτάμε μητρική εταιρείαστυλ πίνακα, κελί μητρική εταιρείαΡυθμίστε τη στοίχιση κειμένου στο κέντρο. ΑΛΛΑ συνασπισμόςορίστε το μοντέλο του ενσωματωμένου μπλοκ. Τα μειονεκτήματα δεν είναι οι λειτουργικές γραμμές κύλισης, και γενικά, όχι η αισθητική της «εξομοίωσης» του πίνακα.

Γονικός ( πλάτος: 100%; ύψος: 100%; οθόνη: πίνακας; θέση: απόλυτη; επάνω: 0; αριστερά: 0; > .inner ( οθόνη: πίνακας-κελί; στοίχιση κειμένου: κέντρο; κατακόρυφη στοίχιση: μέση; ) ) .block ( display: inline-block; img ( display: block; περίγραμμα: κανένα; ) )

Για να προσθέσετε μια κύλιση σε αυτό το παράδειγμα, θα πρέπει να προσθέσετε ένα ακόμη στοιχείο στη δομή.
Παράδειγμα: jsfiddle.net/serdidg/fk5nqh52/3 .

Επιλογή 4. Ψευδοστοιχείο.

Αυτή η επιλογή δεν περιέχει όλα τα προβλήματα που αναφέρονται στις προηγούμενες μεθόδους και επιλύει επίσης τις αρχικές εργασίες. Το θέμα είναι να έχεις μητρική εταιρείασετ στυλ ψευδοστοιχείοπριν, δηλαδή 100% ύψος, ευθυγράμμιση στο κέντρο και ενσωματωμένο μοντέλο κουτιού. Το ίδιο με ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟβάλτε το μοντέλο του ενσωματωμένου μπλοκ, στοίχιση στο κέντρο. Προς την ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟδεν έπεσε κάτω ψευδοστοιχείοόταν οι διαστάσεις του πρώτου είναι μεγαλύτερες από μητρική εταιρεία, προσδιορίστε μητρική εταιρείαλευκό διάστημα: nowrap και μέγεθος γραμματοσειράς: 0 μετά από το οποίο y ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟακυρώστε αυτά τα στυλ με το εξής - κενό διάστημα: κανονικό. ΣΤΟ αυτό το παράδειγμαμέγεθος γραμματοσειράς: Απαιτείται 0 για να αφαιρεθεί το κενό που προκύπτει μητρική εταιρείακαι ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟσε σχέση με τη μορφοποίηση κώδικα. Το κενό μπορεί να αφαιρεθεί με άλλους τρόπους, αλλά θεωρείται καλύτερο απλά να μην το επιτρέψετε.

Γονικός (πλάτος: 100%; ύψος: 100%, θέση: απόλυτο; επάνω: 0; αριστερά: 0; υπερχείλιση: αυτόματη; λευκό διάστημα: nowrap; στοίχιση κειμένου: κέντρο; μέγεθος γραμματοσειράς: 0; &:πριν ( ύψος: 100%, οθόνη: ενσωματωμένο μπλοκ, κατακόρυφη στοίχιση: μέση, περιεχόμενο: ""; ) ) .block ( οθόνη: ενσωματωμένο μπλοκ; λευκό διάστημα: κανονικό, κατακόρυφη στοίχιση: μέση, στοίχιση κειμένου: αριστερά ; img ( εμφάνιση: μπλοκ, περίγραμμα: κανένα; ) )

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

Γονικός (θέση: σταθερό; επάνω: 0; δεξιά: 0; κάτω: 0; αριστερά: 0; υπερχείλιση: αυτόματο; κενό διάστημα: nowrap; στοίχιση κειμένου: κέντρο; μέγεθος γραμματοσειράς: 0; &:πριν (ύψος: 100%; οθόνη: inline-block; κατακόρυφη στοίχιση: μέση; περιεχόμενο: ""; ) ) .block ( εμφάνιση: inline-block; λευκό διάστημα: κανονικό; κατακόρυφη στοίχιση: μέση; στοίχιση κειμένου: αριστερά; img ( οθόνη: μπλοκ, περίγραμμα: κανένα; ) )

Επιλογή 5. Flexbox.

Ένας από τους απλούστερους και πιο κομψούς τρόπους είναι να χρησιμοποιήσετε το flexbox. Δεν απαιτεί περιττές κινήσεις του σώματος, περιγράφει την ουσία αυτού που συμβαίνει αρκετά ξεκάθαρα και έχει υψηλή ευελιξία. Το μόνο πράγμα που πρέπει να θυμάστε όταν επιλέγετε αυτή τη μέθοδο- υποστήριξη για IE από την έκδοση 10 συμπεριλαμβανομένης. caniuse.com/#feat=flexbox

Γονικός ( πλάτος: 100%; ύψος: 100%, θέση: σταθερό; επάνω: 0; αριστερά: 0; οθόνη: flex; στοίχιση-στοιχεία: κέντρο; στοίχιση-περιεχόμενο: κέντρο; δικαιολογητικό-περιεχόμενο: κέντρο; υπερχείλιση: αυτόματη; ) .block ( φόντο: #60a839; img ( εμφάνιση: μπλοκ; περίγραμμα: κανένα; ) )

Επιλογή 6. Μετασχηματισμός.

Κατάλληλο εάν περιοριζόμαστε από τη δομή και δεν υπάρχει τρόπος χειρισμού του γονικού στοιχείου, αλλά το μπλοκ πρέπει να ευθυγραμμιστεί με κάποιο τρόπο. Η συνάρτηση translate() css θα έρθει στη διάσωση. Μια τιμή 50% απόλυτης θέσης θα τοποθετήσει την επάνω αριστερή γωνία του κουτιού ακριβώς στο κέντρο και, στη συνέχεια, μια αρνητική τιμή μετάφρασης θα μετακινήσει το πλαίσιο σε σχέση με τις δικές του διαστάσεις. Λάβετε υπόψη ότι τα αρνητικά εφέ μπορεί να εμφανιστούν με τη μορφή θολών άκρων ή στυλ γραμματοσειράς. Επίσης, μια παρόμοια μέθοδος μπορεί να οδηγήσει σε προβλήματα με τον υπολογισμό της θέσης του μπλοκ χρησιμοποιώντας java-script "a. Μερικές φορές, για να αντισταθμιστεί η απώλεια του 50% του πλάτους λόγω χρήση cssη αριστερή ιδιότητα μπορεί να βοηθηθεί από τον κανόνα που έχει οριστεί για το μπλοκ: margin-right: -50%; .

Γονικό (πλάτος: 100%; ύψος: 100%, θέση: σταθερό; επάνω: 0; αριστερά: 0; υπερχείλιση: αυτόματη; ) .block (θέση: απόλυτη; επάνω: 50%; αριστερά: 50%; μετατροπή: μετάφραση( -50%, -50%); img ( εμφάνιση: μπλοκ; ) )

Επιλογή 7. Κουμπί.

Επιλογή azproduction χρήστη όπου ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟτυλιγμένο σε ετικέτα κουμπιού. Το κουμπί έχει τη δυνατότητα να κεντράρει όλα όσα βρίσκονται μέσα του, δηλαδή τα στοιχεία του μοντέλου inline και block-line (inline-block). Δεν το προτείνω στην πράξη.

Γονικός ( πλάτος: 100%; ύψος: 100%, θέση: απόλυτη; επάνω: 0; αριστερά: 0; υπερχείλιση: αυτόματη; φόντο: κανένα; περίγραμμα: κανένα; περίγραμμα: κανένα; ) .block ( οθόνη: ενσωματωμένο μπλοκ; img (εμφάνιση: μπλοκ;; περίγραμμα: κανένα; ) )

Δώρο

Χρησιμοποιώντας την ιδέα της 4ης επιλογής, μπορείτε να ορίσετε περιθώρια για ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟ, και ταυτόχρονα το τελευταίο θα εμφανίζεται επαρκώς στο περιβάλλον των γραμμών κύλισης.
Παράδειγμα: jsfiddle.net/serdidg/nfqg9rza/2 .

Μπορείτε επίσης να ευθυγραμμίσετε την εικόνα στο κέντρο και εάν η εικόνα είναι μεγαλύτερη μητρική εταιρεία, κλιμακώστε το σε μέγεθος μητρική εταιρεία.
Παράδειγμα: jsfiddle.net/serdidg/nfqg9rza/3 .
Παράδειγμα μεγάλης εικόνας:

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

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

Τι είναι το DIV

Το όνομα του στοιχείου προέρχεται από την αγγλική λέξη division, που σημαίνει διαίρεση. Κατά τη σύνταξη σήμανσης, χρησιμοποιείται για τη διάσπαση στοιχείων σε μπλοκ. Τα DIV περικλείουν ομάδες περιεχομένου σε μια ιστοσελίδα. Για παράδειγμα, εικόνες, παράγραφοι με κείμενο. Η ετικέτα δεν επηρεάζει με κανέναν τρόπο την εμφάνιση του περιεχομένου και δεν φέρει κανένα σημασιολογικό φορτίο.

Το DIV υποστηρίζει όλα τα καθολικά χαρακτηριστικά. Αλλά για το σχεδιασμό ιστοσελίδων, χρειάζεστε μόνο δύο - μια τάξη και ένα αναγνωριστικό. Όλα τα υπόλοιπα θα τα θυμάστε μόνο σε εξωτικές περιπτώσεις, και αυτό δεν είναι γεγονός. Το χαρακτηριστικό align, το οποίο χρησιμοποιήθηκε για τη στοίχιση στο κέντρο ή αριστερά ενός div, έχει καταργηθεί.

Πότε να χρησιμοποιείτε DIV

Φανταστείτε ότι ο ιστότοπος είναι ψυγείο και τα DIV είναι πλαστικά δοχεία βάσει των οποίων πρέπει να ταξινομήσετε το περιεχόμενο. Δεν θα βάλετε φρούτα στο ίδιο δοχείο με το συκώτι. Κάθε είδος προϊόντος βάζετε ξεχωριστά. Το περιεχόμενο Ιστού δημιουργείται με παρόμοιο τρόπο.

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

έγγραφο

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

Ευθυγράμμιση DIV στο κέντρο με περιθώρια

Κατά την απόδοση στοιχείων ιστού, το πρόγραμμα περιήγησης λαμβάνει υπόψη τρεις ιδιότητες: συμπλήρωση, περιθώριο και περίγραμμα. Το padding είναι ο χώρος μεταξύ του περιεχομένου και του περιγράμματός του. Περιθώριο - πεδία που χωρίζουν ένα αντικείμενο από ένα άλλο. Τα σύνορα είναι γραμμές κατά μήκος των μπλοκ. Μπορούν να εκχωρηθούν ταυτόχρονα από όλα ή μόνο από τη μία πλευρά:

div( περίγραμμα: 1px συμπαγές #333; περίγραμμα-αριστερά: κανένα; )

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

Block-with-img (περιθώριο-αριστερά: 20%; )

Τα στοιχεία μπορούν επίσης να μορφοποιηθούν χρησιμοποιώντας τις τιμές πλάτους τους και την αρνητική γέμιση. Για παράδειγμα, υπάρχει ένα μπλοκ με διαστάσεις 200px επί 200px. Αρχικά, ορίστε του μια απόλυτη θέση και μετακινήστε το στο κέντρο κατά 50%.

Div(θέση: απόλυτη, αριστερά: 50%; )

Τώρα, για να βεβαιωθείτε ότι το DIV είναι τέλεια κεντραρισμένο, δώστε του μια αρνητική αριστερή επένδυση ίση με το 50% του πλάτους του, δηλαδή -100 pixel:

περιθώριο-αριστερά: -100 εικονοστοιχεία

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

Επομένως, όταν χρειάζεται να κεντράρετε ένα DIV, χρησιμοποιήστε την ιδιότητα μεγέθους κουτιού με τιμή περιγράμματος-box. Θα εμποδίσει το πρόγραμμα περιήγησης να προσθέσει την τιμή συμπλήρωσης και περιγράμματος στο συνολικό πλάτος του στοιχείου DIV. Για να ανυψώσετε ή να χαμηλώσετε ένα στοιχείο, χρησιμοποιήστε επίσης αρνητικές τιμές. Αλλά σε αυτήν την περίπτωση, μπορούν να αντιστοιχιστούν είτε στο επάνω είτε στο κάτω πεδίο του κοντέινερ.

Πώς να κεντράρετε το μπλοκ div χρησιμοποιώντας αυτόματα περιθώρια

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

Χρησιμοποιήστε τη μέθοδο αυτόματου περιθωρίου κατά την ανάπτυξη αποκριτικών εφαρμογών. Το κλειδί είναι να δώσετε στο δοχείο μια τιμή πλάτους σε ems ή ποσοστά. Ο κωδικός από το παραπάνω παράδειγμα θα κεντράρει το DIV σε οποιαδήποτε συσκευή, συμπεριλαμβανομένης της Κινητά τηλέφωνα, θα καταλάβει το 90% της οθόνης.

Στοίχιση μέσω της οθόνης ιδιοτήτων: inline-block

Από προεπιλογή, τα στοιχεία DIV θεωρούνται στοιχεία μπλοκ και έχουν μια τιμή εμφάνισης μπλοκ. Για αυτήν τη μέθοδο, θα πρέπει να παρακάμψετε αυτήν την ιδιότητα. Κατάλληλο μόνο για DIV με μητρικό κοντέινερ:

Οποιοδήποτε κείμενο

Εκχωρείται ένα στοιχείο με κλάση outer-div ιδιότητα στοίχισης κειμένουμε μια τιμή κέντρου που θα κεντράρει το κείμενο μέσα. Αλλά προς το παρόν, το πρόγραμμα περιήγησης βλέπει το ένθετο DIV ως αντικείμενο μπλοκ. Για να λειτουργήσει η ιδιότητα text-align, το inner-div πρέπει να αντιμετωπίζεται ως ενσωματωμένο. Επομένως, σε Πίνακας CSSγια τον επιλογέα inner-div, γράφετε τον ακόλουθο κώδικα:

Inner-div (οθόνη: inline-block;)

Αλλάζετε την ιδιότητα εμφάνισης από block σε inline-block.

μέθοδος μετατροπής/μετάφρασης

Τα Cascading Style Sheets σάς επιτρέπουν να μετακινείτε, να λοξώνετε, να περιστρέφετε και να μεταμορφώνετε στοιχεία Ιστού κατά βούληση. Για αυτό, χρησιμοποιείται η ιδιότητα μετασχηματισμού. Ο επιθυμητός τύπος μετασχηματισμού και ο βαθμός καθορίζονται ως τιμές. Σε αυτό το παράδειγμα, θα εργαστούμε με τη μετάφραση:

transform: translate(50%, 50%);

Η συνάρτηση μετάφρασης μετακινεί ένα στοιχείο από την τρέχουσα θέση του αριστερά/δεξιά και πάνω/κάτω. Δύο τιμές περνούν σε παρένθεση:

  • βαθμός οριζόντιας κίνησης.
  • βαθμός κάθετης κίνησης.

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

Transform: translateY(-20%);

Σε ορισμένους οδηγούς, μπορείτε να δείτε μετασχηματισμό με προθέματα προμηθευτή:

webkit-transform: translate(50%, 50%); -ms-transform: translate(50%, 50%); transform: translate(50%, 50%);

Το 2018, αυτό δεν είναι πλέον απαραίτητο, η ιδιότητα υποστηρίζεται από όλα τα προγράμματα περιήγησης, συμπεριλαμβανομένων των Edge και IE.

Για να κεντράρουμε το DIV που χρειαζόμαστε, η συνάρτηση translate CSS γράφεται με τιμή 50% για τον κάθετο και τον οριζόντιο άξονα. Αυτό θα κάνει το πρόγραμμα περιήγησης να μετακινήσει το στοιχείο από την τρέχουσα θέση του στο μισό του πλάτους και του ύψους του. Οι ιδιότητες πλάτους και ύψους πρέπει να προσδιορίζονται:

έγγραφο

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

Εργασία με διάταξη Flexbox

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

Στα προηγούμενα παραδείγματα, δουλέψαμε ήδη με την ιδιότητα εμφάνισης, αλλά την ορίσαμε σε τιμές μπλοκ (block) και inline (inline-block). Για να δημιουργήσουμε ευέλικτες διατάξεις, θα χρησιμοποιήσουμε το display: flex. Πρώτα χρειαζόμαστε ένα εύκαμπτο δοχείο:

Για να το μετατρέψουμε σε εύκαμπτο κοντέινερ σε διαδοχικούς πίνακες, γράφουμε:

Flex-container (οθόνη: flex;)

Όλα τα αντικείμενα που είναι φωλιασμένα σε αυτό, αλλά μόνο τα απευθείας παιδιά, θα είναι εύκαμπτα αντικείμενα:

Ο πρώτος
Δεύτερος
Τρίτος
Τέταρτος

Εάν μια λίστα τοποθετηθεί μέσα σε ένα flex κοντέινερ, τότε τα στοιχεία στη λίστα li δεν θεωρούνται ευέλικτα στοιχεία. Η διάταξη Flexbox θα λειτουργεί μόνο σε ul:

Κανόνες τοποθέτησης flex αντικειμένων

Για να διαχειριστείτε ευέλικτα στοιχεία, χρειάζεστε στοιχεία δικαιολογήσεως περιεχομένου και ευθυγράμμισης. Ανάλογα με τις τιμές που καθορίζετε, αυτές οι δύο ιδιότητες τοποθετούν αυτόματα τα αντικείμενα όπως απαιτείται. Εάν χρειάζεται να κεντράρουμε όλα τα ένθετα DIV, γράφουμε justify-content: center, align-items: center και τίποτα άλλο. Το πρόγραμμα περιήγησης θα κάνει την υπόλοιπη δουλειά:

έγγραφο

Ο πρώτος
Δεύτερος
Τρίτος
Τέταρτος

Για να κεντράρετε κείμενο σε DIV που είναι ευέλικτα στοιχεία, μπορείτε να χρησιμοποιήσετε το τυπικό τέχνασμα στοίχισης κειμένου. Εναλλακτικά, μπορείτε επίσης να κάνετε κάθε ένθετο DIV ένα ευέλικτο κοντέινερ και να διαχειριστείτε το περιεχόμενο με το justify-content . Αυτή η μέθοδος είναι πολύ πιο ορθολογική εάν περιέχει μια ποικιλία περιεχομένου, συμπεριλαμβανομένων γραφικών, άλλων ένθετων αντικειμένων, συμπεριλαμβανομένων λιστών πολλαπλών επιπέδων.

Κάθε σχεδιαστής διάταξης αντιμετωπίζει συνεχώς την ανάγκη να ευθυγραμμίσει το περιεχόμενο σε ένα μπλοκ: οριζόντια ή κάθετα. Υπάρχουν αρκετά καλά άρθρα για αυτό το θέμα, αλλά όλα προσφέρουν πολλές ενδιαφέρουσες, αλλά λίγες πρακτικές επιλογές, γι' αυτό πρέπει να χάνετε επιπλέον χρόνο για να επισημάνετε το κύριο πράγμα. Αποφάσισα να υποβάλω αυτές τις πληροφορίες στη φόρμα που με βολεύει, για να μην ψάχνω άλλο στο google.

Ευθυγράμμιση μπλοκ με γνωστά μεγέθη

Ο ευκολότερος τρόπος για να χρησιμοποιήσετε το CSS είναι να ευθυγραμμίσετε πλαίσια που έχουν προκαθορισμένο ύψος (για κάθετη στοίχιση) ή πλάτος (για οριζόντια στοίχιση).

Ευθυγράμμιση με επένδυση

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

Για παράδειγμα, υπάρχει μια εικόνα 200 επί 200 pixel και θέλετε να την κεντράρετε σε ένα μπλοκ 240 επί 300. Μπορούμε να ορίσουμε το ύψος και το πλάτος εξωτερική μονάδα= 200 εικονοστοιχεία και προσθέστε 20 pixel για το πάνω και το κάτω μέρος και 50 για το αριστερό και το δεξί.

.example-wrapper1 ( φόντο : #535E73 ; πλάτος : 200 εικονοστοιχεία , ύψος : 200 εικονοστοιχεία , επένδυση : 20 εικονοστοιχεία 50 εικονοστοιχεία ; )

Ευθυγράμμιση απόλυτα τοποθετημένων μπλοκ

Εάν το μπλοκ έχει οριστεί σε " θέση: απόλυτη", τότε μπορεί να τοποθετηθεί σε σχέση με τον πλησιέστερο γονέα με "θέση: σχετική". Για αυτό, όλες οι ιδιότητες (" μπλουζα","σωστά","κάτω μέρος","αριστερά") του εσωτερικού μπλοκ για να εκχωρήσετε την ίδια τιμή, καθώς και το "margin: auto".

*Υπάρχει μια απόχρωση: Το πλάτος (ύψος) του εσωτερικού μπλοκ + η τιμή του αριστερού (δεξιά, κάτω, πάνω) δεν πρέπει να υπερβαίνει το μέγεθος του γονικού μπλοκ. Είναι ασφαλέστερο να ορίσετε τις ιδιότητες αριστερά (δεξιά, κάτω, πάνω) στο 0 (μηδέν).

.example-wrapper2 (θέση: σχετική; ύψος: 250 εικονοστοιχεία; φόντο: url(space.jpg) ;) 0; δεξιά: 0; περιθώριο: αυτόματο; φόντο: url(king.png) ;)

Οριζόντια ευθυγράμμιση

Ευθυγράμμιση με "text-align: center"

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

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

.example-text (text-align : center ; padding : 10px ; background : #FF90B8 ; )

Αξίζει να σημειωθεί ότι αυτή η ιδιότητα θα λειτουργεί όχι μόνο για κείμενο, αλλά και για τυχόν ενσωματωμένα στοιχεία ("display: inline").

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

.example-wrapper3 (στοίχιση κειμένου: κέντρο; φόντο: #FF90B8;) .inline-text (εμφάνιση: inline-block; πλάτος: 40%; padding: 10 px; στοίχιση κειμένου: αριστερά; φόντο: #FFE5E5; )

Ευθυγράμμιση μπλοκ με περιθώρια

Στοιχεία σε επίπεδο μπλοκ με γνωστό πλάτος ευθυγραμμίζονται εύκολα οριζόντια ορίζοντας τα σε "margin-left: auto; margin-right: auto". Συνήθως χρησιμοποιείται η συντομογραφία: " περιθώριο: 0 αυτόματο" (αντί για μηδέν, μπορεί να υπάρχει οποιαδήποτε τιμή). Αλλά για κάθετη στοίχιση, αυτή η μέθοδος δεν θα λειτουργήσει.

.lama-wrapper (ύψος: 200 εικονοστοιχεία; φόντο: #F1BF88;) .lama1 (ύψος: 200 εικονοστοιχεία; πλάτος: 200 εικονοστοιχεία; φόντο: url(lama.jpg) ; περιθώριο: 0 αυτόματο; )

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

Κατακόρυφη στοίχιση

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

Ευθυγράμμιση με την ιδιότητα line-height

Στην περίπτωση που υπάρχει μόνο μία γραμμή στο μπλοκ, μπορείτε να επιτύχετε την κατακόρυφη ευθυγράμμισή του εφαρμόζοντας το " ύψος γραμμής" και ρυθμίστε το στο επιθυμητό ύψος. Για να είστε ασφαλείς, θα πρέπει επίσης να ορίσετε το "height", η τιμή του οποίου θα είναι ίση με την τιμή "line-height", επειδή το τελευταίο δεν υποστηρίζεται σε όλα τα προγράμματα περιήγησης.

.example-wrapper4 (ύψος γραμμής: 100 εικονοστοιχεία; χρώμα: #DC09C0; φόντο: #E5DAE1; ύψος: 100 εικονοστοιχεία; στοίχιση κειμένου: κέντρο; )

Είναι επίσης δυνατή η ευθυγράμμιση ενός μπλοκ με πολλές γραμμές. Για να το κάνετε αυτό, θα πρέπει να χρησιμοποιήσετε ένα πρόσθετο μπλοκ περιτυλίγματος και να ορίσετε το ύψος της γραμμής σε αυτό. Το εσωτερικό μπλοκ μπορεί να είναι πολλαπλών γραμμών, αλλά πρέπει να είναι "ενσωματωμένο". Πρέπει να εφαρμόσετε το "vertical-align: middle" σε αυτό.

.example-wrapper5 (ύψος γραμμής : 160 εικονοστοιχεία ; ύψος : 160 εικονοστοιχεία ; μέγεθος γραμματοσειράς : 0 ; φόντο : #FF9B00 ; ) 1.5 ; κατακόρυφη στοίχιση : μέση ; φόντο : #FFFAF2 ; χρώμα : #FF9-align ; ;)

Το μπλοκ περιτυλίγματος πρέπει να έχει οριστεί "μέγεθος γραμματοσειράς: 0". Εάν δεν ορίσετε το μέγεθος της γραμματοσειράς στο μηδέν, τότε το πρόγραμμα περιήγησης θα προσθέσει μερικά επιπλέον pixel από τον εαυτό του. Θα πρέπει επίσης να καθορίσετε το μέγεθος γραμματοσειράς και το ύψος γραμμής για το εσωτερικό μπλοκ, επειδή αυτές οι ιδιότητες κληρονομούνται από το γονικό.

Κάθετη στοίχιση σε πίνακες

ιδιοκτησία" κατακόρυφη ευθυγράμμιση" επηρεάζει επίσης τα κελιά πίνακα. Με την τιμή "μέση", το περιεχόμενο μέσα στο κελί κεντράρεται. Φυσικά, η διάταξη πίνακα θεωρείται αρχαϊκή στις μέρες μας, αλλά σε εξαιρετικές περιπτώσεις μπορεί να προσομοιωθεί προσδιορίζοντας " οθόνη: πίνακας-κελί".

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

.one_product .img_wrapper ( οθόνη : πίνακας-κελί ; ύψος : 169 εικονοστοιχεία ; κατακόρυφη στοίχιση : μέση ; υπερχείλιση : κρυφό ; φόντο : #fff ; πλάτος : 255 εικονοστοιχεία ; ) .one_product img ( μέγ. ύψος : 169 εικονοστοιχεία πλάτος : μέγ. % ; ελάχ. πλάτος : 140 εικονοστοιχεία , οθόνη : μπλοκ , περιθώριο : 0 αυτόματο ; )

Θα πρέπει να θυμόμαστε ότι εάν το στοιχείο έχει ένα σύνολο "float" εκτός από "κανένα", τότε θα έχει σχήμα μπλοκ (εμφάνιση: μπλοκ) ούτως ή άλλως - τότε θα πρέπει να χρησιμοποιήσετε ένα πρόσθετο περιτύλιγμα μπλοκ.

Ευθυγράμμιση με ένα πρόσθετο ενσωματωμένο στοιχείο

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

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

.example-wrapper6 (ύψος : 300 px ; στοίχιση κειμένου : κέντρο ; φόντο : #70DAF1 ; ) .pudge ( οθόνη : inline-block ; vertical-align : middle ; background : url(pudge.png) ; background-color : # fff ; πλάτος : 200 εικονοστοιχεία ; ύψος : 200 εικονοστοιχεία ; ) .riki ( οθόνη : ενσωματωμένο μπλοκ ; ύψος : 100 % , κατακόρυφη στοίχιση : μέση ; )

Οθόνη: ευθυγράμμιση και ευθυγράμμιση

Εάν δεν ενδιαφέρεστε πολύ για τους χρήστες του Explorer 8 ή σας ενδιαφέρουν τόσο πολύ που είστε πρόθυμοι να τους βάλετε ένα επιπλέον javascript, τότε μπορεί να χρησιμοποιηθεί το "display: flex". Τα Flex box χειρίζονται πολύ καλά τα ζητήματα ευθυγράμμισης και αρκεί να γράψετε "margin: auto" για να κεντράρετε το περιεχόμενο μέσα.

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

.example-wrapper7 ( οθόνη : flex ; ύψος : 300 px ; φόντο : #AEB96A ; ) .example-wrapper7 img ( περιθώριο : auto ; )

Λοιπόν, μόνο για αυτό ήθελα να γράψω Ευθυγράμμιση CSS. Τώρα το κεντράρισμα περιεχομένου δεν θα είναι πρόβλημα!

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

Το υλικό αυτού του άρθρου προορίζεται να βοηθήσει τους αρχάριους σχεδιαστές ιστοσελίδων να κατανοήσουν τις τεχνικές διάταξης ιστοσελίδων.

Τι να επιλέξετε ή μεθόδους

Υπάρχουν διάφοροι τρόποι για να τακτοποιήσετε δομικά στοιχεία σε μια σειρά σε οριζόντιο επίπεδο. πιο χρήσιμο από την άποψη του Πρακτική εφαρμογη, είναι:

  • Μέθοδος «Float».
  • Μέθοδος "Inline block".
  • μέθοδος πίνακα κελιών

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

«Για ένα τράνταγμα» ή μια μικρή θεωρία

Όλα δομικά στοιχεία HTMLμπορεί να χωριστεί υπό όρους σε:

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

ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟ– καταλαμβάνοντας ολόκληρο το πλάτος του γονικού μπλοκ, ξεκινήστε πάντα με νέα γραμμήp, h, div.

Ένα ενδεικτικό παράδειγμα δομών inline και block φαίνεται παρακάτω:

Μέθοδος επίπλευσης

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

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

Ιδιότητα CSS φλοτέραπέκτησε μεγάλη δημοτικότητα και πρακτική αξία μετά τη μετάβαση από τη διάταξη πίνακα σε διάταξη μπλοκ.

Float: αριστερά (δεξιά)μετατρέπει ένα στοιχείο σε επίπεδο μπλοκ σε float, το ευθυγραμμίζει στην αριστερή (δεξιά) άκρη του γονικού μπλοκ και ορίζει την αναδίπλωση στα δεξιά (αριστερά) του κειμένου και άλλων στοιχείων.

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

< html> < head> < meta charset= "utf-8" > < link rel= "stylesheet" media= "all" type= "text/css" href= "style.css" /> < body> < div class = "bblock" >Χτίζουμε < div class = "bblock" >οριζόντιος < div class = "bblock" >σειρά < div class = "bblock" >από ντίβες

Και ένα εξωτερικό φύλλο στυλ με το ακόλουθο περιεχόμενο:

div(float:αριστερά; /*Σετ περιτύλιξης*/Ύψος γραμμής: 120 px; μέγεθος γραμματοσειράς: 40 px; φόντο: Dodgeblue? άσπρο χρώμα; περιθώριο: 60 px; πλάτος: 320 px /*Διόρθωση του πλάτους του μπλοκ*/ }

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

Μερικές φορές στην πράξη είναι απαραίτητο να ευθυγραμμιστούν τα μπλοκ στη δεξιά άκρη του γονικού στοιχείου. Ας αλλάξουμε την περιτύλιξη γύρω από τα μπλοκ στο προηγούμενο παράδειγμα:

float:right;

Δώστε προσοχή στις επιγραφές που βρίσκονται στα μπλοκ. Με την πρώτη ματιά, μπορεί να φαίνεται ότι το παράδειγμα λειτούργησε στραβά. Αλλά στην πραγματικότητα, το πρόγραμμα περιήγησης επεξεργάστηκε σωστά τον κώδικα: διάβασε τα μπλοκ από πάνω προς τα κάτω και έκανε ό,τι του ζητήσαμε - ευθυγραμμισμένο με τα δεξιά. Λάβετε αυτό υπόψη όταν χρησιμοποιείτε το ακίνητο float: δεξιά.

Για να σταματήσετε τη ροή των στοιχείων από ένα συγκεκριμένο μέρος, χρησιμοποιήστε τη γραμμή:

< div style= "clear: both;" >

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

Ο αλγόριθμος των ενεργειών είναι ο ακόλουθος.

< div class = "wrap" > < div class = "bblock" >Χτίζουμε < div class = "bblock" >οριζόντιος < div class = "bblock" >σειρά < div class = "bblock" >από ντίβες

wrap(πλάτος: 1310px; /*διορθώστε το πλάτος του περιτυλίγματος*/περιθώριο: 0 αυτόματο; /*center it*/ background: darkgray; ύψος: 120 px; /*Ρυθμίστε το ύψος του περιτυλίγματος*/) . μπλοκ (float: αριστερά; /*Σετ περιτύλιξης*/Ύψος γραμμής: 120 px; /*Ύψος σειράς + vert. κεντραρισμα κειμενου*/μέγεθος γραμματοσειράς: 40 px; φόντο: Dodgeblue? άσπρο χρώμα; πλάτος: 320 px /*Διόρθωση του πλάτους του μπλοκ*/ margin-right: 10px; text-align: κέντρο; /*Κεντράρετε το κείμενο οριζόντια*/) . wrap : last-child ( περιθώριο-δεξιά: 0px; /*Κατάργηση του περιθωρίου του τελευταίου div*/ }

Ως αποτέλεσμα, έχουμε την ακόλουθη εικόνα:

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

Σπουδαίος!!!

Ενσωματωμένη μέθοδος μπλοκ

Τόσο τα inline όσο και τα block έχουν τα πλεονεκτήματα και τα μειονεκτήματά τους στο πλαίσιο κάθε συγκεκριμένης εργασίας που επιλύεται. Τι γίνεται όμως αν συνδυάσουμε τα πλεονεκτήματά τους;

Γνωρίστε το highlight του προγράμματος - ιδιοκτησίας οθόνη: inline-block.

οθόνη: inline-blockδημιουργεί ένα ενσωματωμένο στοιχείο μπλοκ, το οποίο είναι ουσιαστικά ενσωματωμένο, αλλά διατηρεί τις ιδιότητες μπλοκ - σας επιτρέπει να αλλάξετε γραμμικές διαστάσεις, να ορίσετε περιθώρια, εσοχές κ.λπ.

Ένα στοιχείο ενσωματωμένο μπλοκ έχει τις ακόλουθες ιδιότητες:

  • το ύψος και το πλάτος του μπλοκ καθορίζονται αυτόματα από το περιεχόμενο και την τιμή padding ( υλικό παραγεμίσματος)
  • Το ύψος και το πλάτος του μπλοκ μπορούν να καθοριστούν
  • Δεν υπάρχει αποτέλεσμα κατάρρευσης των συνόρων.

Εξετάστε ένα παράδειγμα δημιουργίας ενός απλού μενού πλοήγησης A που περιέχει μια εικόνα και έναν σύνδεσμο.

< div class = "nav" > < p>< img src= "./vaden-pro-logo.png" alt= "" /> < p class = "string" >< a href= "#" >Ο σύνδεσμος του μενού 1 είναι μεγαλύτερος από το συνηθισμένο < div class = "nav" > < p>< img src= "./vaden-pro-logo.png" alt= "" /> < p class = "string" >< a href= "#" >Σύνδεσμος μενού 2 < div class = "nav" > < p>< img src= "./vaden-pro-logo.png" alt= "" /> < p class = "string" >< a href= "#" >Σύνδεσμος μενού 3 < div class = "nav" > < p>< img src= "./vaden-pro-logo.png" alt= "" /> < p class = "string" >< a href= "#" >Σύνδεσμος μενού 4

Nav ( οθόνη: inline-block; /*Ορισμός εμφάνισης γραμμής μπλοκ*/πλάτος: 180 px /*ορισμός πλάτους μπλοκ*/φόντο: Dodgeblue? ) . string(text-align: center; /*Στοίχιση του κειμένου οριζόντια*/ }

Ως αποτέλεσμα, έχουμε το ακόλουθο μενού:

Όπως μπορείτε να δείτε, αποδείχτηκε στραβό ... Αλλά δεν σκοπεύουμε να στεναχωρηθούμε, οπότε εφαρμόζουμε την ιδιότητα CSS στα div μας κατακόρυφη ευθυγράμμιση(δείτε παρακάτω για λεπτομέρειες):

κατακόρυφη ευθυγράμμιση: επάνω;

Η γραμμή πλοήγησής μας είναι πλέον ευθυγραμμισμένη στην επάνω γραμμή:

Φυσικά, το παράδειγμα που δίνεται είναι πρωτόγονο, αλλά είμαι σίγουρος ότι με βάση αυτό μπορείτε να δημιουργήσετε ένα πραγματικό αριστούργημα!!!

Σπουδαίος!!!

  • Για τους αρχαίους εκδόσεις του Firefoxπροσθέστε μια γραμμή:

    οθόνη: -moz-inline-stack;


    και τυλίξτε το στοιχείο σε ένα πρόσθετο περιτύλιγμα div.
  • IE 7 και παλαιότερες εκδόσεις - προσθέστε γραμμές:

    ζουμ: 1 /*set hasLayout*/ * οθόνη: inline; /*αστερίσκος - hack για IE */ _ύψος: 250 px; /*min-height δεν λειτουργεί στο IE6*/

  • Σημειώνω ότι συγκεκριμένα προγράμματα περιήγησης αντιδρούν επιλεκτικά σε αυτές τις γραμμές (Firefox στην πρώτη, IE στις υπόλοιπες).

Μέθοδος πίνακα

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

Ιδιότητες οθόνη: πίνακας (κελί πίνακα, ενσωματωμένος πίνακας), σας επιτρέπει να εκτελείτε μορφοποίηση στοιχείων σε πίνακα χωρίς εφαρμογές HTMLτραπέζια.

Για οριζόντια τοποθέτηση μπλοκ, χρειαζόμαστε ένα γονικό στοιχείο που έχει την ιδιότητα οθόνη: πίνακας, και θυγατρικά στοιχεία (κελιά) που έχουν την ιδιότητα οθόνη: πίνακας-κελί:

< div class = "wrap" > < div class = "bblock" >Χτίζουμε < div class = "bblock" >πινακοειδής < div class = "bblock" >σειρά < div class = "bblock" >από ντίβες

Bblock ( οθόνη: κελί πίνακα, μέγεθος γραμματοσειράς: 32 εικονοστοιχεία, πλάτος: 200 εικονοστοιχεία, ύψος: 200 εικονοστοιχεία, φόντο: χρυσό, στοίχιση κειμένου: κέντρο, κατακόρυφη στοίχιση: μέση, ) . περιτύλιξη (οθόνη: πίνακας, διάστιχο: 20 εικονοστοιχεία 20 εικονοστοιχεία, χρώμα φόντου: σκούρο γκρι, )

Σπουδαίος!!!

  1. Σε αντίθεση με τις μεθόδους "inline-block" και "float", όταν μειώνεται το πλάτος του παραθύρου του προγράμματος περιήγησης, τα κελιά δεν μετακινούνται προς τα κάτω.
  2. Δεν έχετε τη δυνατότητα να ορίσετε την ιδιότητα περιθωρίου για κελιά ψευδο-πίνακα.
  3. Cross browser. Οι ιδιότητες από την οθόνη: οικογένεια πίνακα* δεν υποστηρίζονται από τα IE6, IE7. Επίσης, στον IE8, ενδέχεται να δείτε ένα σφάλμα δυναμικής απόδοσης για στοιχεία ψευδο-πίνακα ως τυχαία εξαφανιζόμενα κελιά. Αυτό το σφάλμαπιο συχνά εκδηλώνεται κατά την αρχική σχεδίαση του εγγράφου

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

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

Html και οι απόγονοί του
και ευθυγράμμιση

Αυτή η μέθοδος δεν χρησιμοποιείται σχεδόν ποτέ, καθώς αντικαταστάθηκε από τα εργαλεία cascading style sheet. Ωστόσο, το να γνωρίζετε ότι υπάρχει μια τέτοια ετικέτα δεν θα σας βλάψει.

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

Αυτός ο τύποςπαρακάμπτει απαγορευμένα στοιχεία.

ΚΕΝΤΡΟ

Τώρα ας προχωρήσουμε στο χαρακτηριστικό ευθυγραμμίζω. Ορίζει την οριζόντια στοίχιση των αντικειμένων και ταιριάζει μετά τη δήλωση της ετικέτας. Μπορεί συνήθως να χρησιμοποιηθεί για την ευθυγράμμιση περιεχομένου προς τα αριστερά ( αριστερά), στη δεξιά πλευρά ( σωστά), στο κέντρο ( κέντρο) και πλάτος κειμένου ( δικαιολογώ).

Παρακάτω θα δώσω ένα παράδειγμα στο οποίο θα τοποθετήσω την εικόνα και την παράγραφο στο κέντρο.

ευθυγραμμίζω

Αυτό το περιεχόμενο θα είναι κεντραρισμένο.

Σημειώστε ότι για την εικόνα, το χαρακτηριστικό που αναλύουμε έχει ελαφρώς διαφορετικές τιμές.

Στο παράδειγμα που χρησιμοποίησα align="Μέσης". Χάρη σε αυτό, η εικόνα είναι ευθυγραμμισμένη έτσι ώστε η πρόταση να βρίσκεται ακριβώς στη μέση της εικόνας.

Εργαλεία κεντραρίσματος CSS

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

Λοιπόν, ας ξεκινήσουμε με την πρώτη ιδιότητα του κεντραρίσματος κειμένου - αυτή είναι κείμενο-ευθυγραμμίζω.

Λειτουργεί το ίδιο με το align in . Μεταξύ των λέξεων-κλειδιών, μπορείτε να επιλέξετε μία από τη γενική λίστα ή να κληρονομήσετε τα χαρακτηριστικά του προγόνου ( κληρονομώ).

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

στοίχιση κειμένου

Προσφορά στα δεξιά

Πρόταση που χρησιμοποιεί τέλος

Επιτρέψτε μου να σας πω για ένα μικρό κόλπο. Όταν επιλέγετε μια τιμή δικαιολογώη τελευταία γραμμή μπορεί να κρέμεται άσχημη από κάτω. Για να το τοποθετήσετε, για παράδειγμα, στο κέντρο, μπορείτε να χρησιμοποιήσετε το ακίνητο text-align-last.

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

Λέξη-κλειδί σκοπός
γραμμή βάσης Καθορίζει την ευθυγράμμιση με την προγονική γραμμή, η οποία ονομάζεται γραμμή βάσης. Εάν το αντικείμενο προγονικό δεν έχει μια τέτοια γραμμή, τότε η ευθυγράμμιση γίνεται κατά μήκος του κάτω περιγράμματος.
Μέσης Το μέσο του μεταβλητού αντικειμένου ευθυγραμμίζεται με τη γραμμή βάσης, στην οποία προστίθεται το ύψος του γονικού στοιχείου.
κάτω μέρος Το κάτω μέρος του επιλεγμένου περιεχομένου προσαρμόζεται στο κάτω μέρος του αντικειμένου κάτω από όλα.
μπλουζα Παρόμοια με το κάτω μέρος, μόνο με την κορυφή του αντικειμένου.
σούπερ Δημιουργεί έναν εκθέτη χαρακτήρα.
υπο Κάνει το στοιχείο δείκτη.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 κατακόρυφη ευθυγράμμιση
ντο ΣΤΟμι ΤΟΠρος την

κατακόρυφη ευθυγράμμιση

ντο ΣΤΟμι ΤΟΠρος την

Εσοχή

Και τέλος, φτάσαμε στην εσοχή στην παράγραφο. Η γλώσσα css χρησιμοποιεί μια ειδική ιδιότητα που ονομάζεται εσοχή κειμένου.

Με αυτό, μπορείτε να κάνετε και μια κόκκινη γραμμή και μια προεξοχή (πρέπει να καθορίσετε μια αρνητική τιμή).

εσοχή κειμένου

Για να δημιουργήσετε μια κόκκινη γραμμή, πρέπει να γνωρίζετε μόνο μία παράμετρο.

Είναι μια απλή ιδιότητα εσοχής κειμένου.