Σύστημα πλέγματος
Χρησιμοποιήστε το πανίσχυρο πλέγμα flexbox του mobile-first για να δημιουργήσετε διατάξεις όλων των σχημάτων και μεγεθών χάρη σε ένα σύστημα δώδεκα στηλών, πέντε προεπιλεγμένα αποκρινόμενα επίπεδα, μεταβλητές Sass και mixins και δεκάδες προκαθορισμένες κλάσεις.
Το σύστημα πλέγματος του Bootstrap χρησιμοποιεί μια σειρά από κοντέινερ, σειρές και στήλες για τη διάταξη και τη στοίχιση περιεχομένου. Είναι κατασκευασμένο με flexbox και έχει πλήρη απόκριση. Ακολουθεί ένα παράδειγμα και μια εις βάθος ματιά στο πώς συνδυάζεται το πλέγμα.
Νέος ή μη εξοικειωμένος με το flexbox; Διαβάστε αυτόν τον οδηγό flexbox CSS Tricks για φόντο, ορολογία, οδηγίες και αποσπάσματα κώδικα.
Το παραπάνω παράδειγμα δημιουργεί τρεις στήλες ίσου πλάτους σε μικρές, μεσαίες, μεγάλες και πολύ μεγάλες συσκευές χρησιμοποιώντας τις προκαθορισμένες κατηγορίες πλέγματος μας. Αυτές οι στήλες είναι κεντραρισμένες στη σελίδα με το γονικό .container
.
Αναλύοντας το, δείτε πώς λειτουργεί:
- Τα κοντέινερ παρέχουν ένα μέσο για να κεντράρετε και να τοποθετήσετε οριζόντια τα περιεχόμενα του ιστότοπού σας. Χρησιμοποιήστε
.container
το για εύρος pixel με απόκριση ή.container-fluid
γιαwidth: 100%
όλα τα μεγέθη θυρών προβολής και συσκευών. - Οι σειρές είναι περιτυλίγματα για στήλες. Κάθε στήλη έχει οριζόντια
padding
(που ονομάζεται υδρορροή) για τον έλεγχο του χώρου μεταξύ τους. Αυτόpadding
στη συνέχεια αντισταθμίζεται στις σειρές με αρνητικά περιθώρια. Με αυτόν τον τρόπο, όλο το περιεχόμενο στις στήλες σας ευθυγραμμίζεται οπτικά προς τα κάτω στην αριστερή πλευρά. - Σε μια διάταξη πλέγματος, το περιεχόμενο πρέπει να τοποθετείται μέσα σε στήλες και μόνο οι στήλες μπορούν να είναι αμέσως παιδιά των σειρών.
- Χάρη στο flexbox, οι στήλες πλέγματος χωρίς καθορισμένο
width
θα τοποθετηθούν αυτόματα ως στήλες ίσου πλάτους. Για παράδειγμα, τέσσερις περιπτώσεις.col-sm
θα έχουν αυτόματα πλάτος 25% από το μικρό σημείο διακοπής και πάνω. Δείτε την ενότητα στηλών αυτόματης διάταξης για περισσότερα παραδείγματα. - Οι κατηγορίες στηλών υποδεικνύουν τον αριθμό των στηλών που θέλετε να χρησιμοποιήσετε από τις πιθανές 12 ανά σειρά. Επομένως, εάν θέλετε τρεις στήλες ίσου πλάτους, μπορείτε να χρησιμοποιήσετε το
.col-4
. - Οι στήλες
width
s ορίζονται σε ποσοστά, επομένως είναι πάντα ρευστά και έχουν μέγεθος σε σχέση με το μητρικό τους στοιχείο. - Οι στήλες έχουν οριζόντια
padding
για τη δημιουργία των υδρορροών μεταξύ μεμονωμένων στηλών, ωστόσο, μπορείτε να αφαιρέσετε τοmargin
από τις σειρές καιpadding
από τις στήλες με.no-gutters
το.row
. - Για να ανταποκρίνεται το πλέγμα, υπάρχουν πέντε σημεία διακοπής πλέγματος, ένα για κάθε σημείο διακοπής απόκρισης : όλα τα σημεία διακοπής (εξαιρετικά μικρά), μικρά, μεσαία, μεγάλα και εξαιρετικά μεγάλα.
- Τα σημεία διακοπής πλέγματος βασίζονται σε ερωτήματα μέσου ελάχιστου πλάτους, που σημαίνει ότι ισχύουν για αυτό το ένα σημείο διακοπής και όλα αυτά που βρίσκονται πάνω από αυτό (π.χ.
.col-sm-4
ισχύει για μικρές, μεσαίες, μεγάλες και πολύ μεγάλες συσκευές, αλλά όχι για το πρώτοxs
σημείο διακοπής). - Μπορείτε να χρησιμοποιήσετε προκαθορισμένες κλάσεις πλέγματος (όπως
.col-4
) ή μίξεις Sass για πιο σημασιολογική σήμανση.
Λάβετε υπόψη τους περιορισμούς και τα σφάλματα γύρω από το flexbox , όπως η αδυναμία χρήσης ορισμένων στοιχείων HTML ως flex κοντέινερ .
Ενώ το Bootstrap χρησιμοποιεί em
s ή rem
s για τον καθορισμό των περισσότερων μεγεθών, px
τα s χρησιμοποιούνται για σημεία διακοπής πλέγματος και πλάτη κοντέινερ. Αυτό συμβαίνει επειδή το πλάτος της θύρας προβολής είναι σε pixel και δεν αλλάζει ανάλογα με το μέγεθος της γραμματοσειράς .
Δείτε πώς λειτουργούν πτυχές του συστήματος πλέγματος Bootstrap σε πολλές συσκευές με ένα εύχρηστο τραπέζι.
Εξαιρετικά μικρό <576 px |
Μικρό ≥576 px |
Μεσαίο ≥768 px |
Μεγάλο ≥992 px |
Εξαιρετικά μεγάλο ≥1200 px |
|
---|---|---|---|---|---|
Μέγιστο πλάτος δοχείου | Κανένα (αυτόματο) | 540 εικονοστοιχεία | 720 εικονοστοιχεία | 960 εικονοστοιχεία | 1140 εικονοστοιχεία |
Πρόθεμα τάξης | .col- |
.col-sm- |
.col-md- |
.col-lg- |
.col-xl- |
# στηλών | 12 | ||||
Πλάτος υδρορροής | 30 εικονοστοιχεία (15 εικονοστοιχεία σε κάθε πλευρά μιας στήλης) | ||||
Φωλιασμένος | Ναί | ||||
Παραγγελία στηλών | Ναί |
Χρησιμοποιήστε κατηγορίες στηλών για συγκεκριμένα σημεία διακοπής για εύκολο προσδιορισμό μεγέθους στηλών χωρίς ρητή αριθμημένη κλάση όπως .col-sm-6
.
Για παράδειγμα, εδώ είναι δύο διατάξεις πλέγματος που εφαρμόζονται σε κάθε συσκευή και θύρα προβολής, από xs
έως xl
. Προσθέστε οποιονδήποτε αριθμό κλάσεων χωρίς μονάδες για κάθε σημείο διακοπής που χρειάζεστε και κάθε στήλη θα έχει το ίδιο πλάτος.
Οι στήλες ίσου πλάτους μπορούν να χωριστούν σε πολλές γραμμές, αλλά υπήρχε ένα σφάλμα flexbox του Safari που εμπόδισε αυτήν τη λειτουργία χωρίς ρητή flex-basis
ή border
. Υπάρχουν λύσεις για παλαιότερες εκδόσεις του προγράμματος περιήγησης, αλλά δεν θα πρέπει να είναι απαραίτητες εάν είστε ενημερωμένοι.
Η αυτόματη διάταξη για στήλες πλέγματος flexbox σημαίνει επίσης ότι μπορείτε να ορίσετε το πλάτος μιας στήλης και να αλλάξετε το μέγεθος των αδελφών στηλών αυτόματα γύρω της. Μπορείτε να χρησιμοποιήσετε προκαθορισμένες κατηγορίες πλέγματος (όπως φαίνεται παρακάτω), μίξεις πλέγματος ή ενσωματωμένα πλάτη. Σημειώστε ότι το μέγεθος των άλλων στηλών θα αλλάξει ανεξάρτητα από το πλάτος της κεντρικής στήλης.
Χρησιμοποιήστε col-{breakpoint}-auto
κλάσεις για το μέγεθος των στηλών με βάση το φυσικό πλάτος του περιεχομένου τους.
Δημιουργήστε στήλες ίσου πλάτους που εκτείνονται σε πολλές σειρές, εισάγοντας ένα .w-100
σημείο όπου θέλετε οι στήλες να σπάσουν σε μια νέα γραμμή. Κάντε τα διαλείμματα να ανταποκρίνονται αναμειγνύοντας το .w-100
με ορισμένα βοηθητικά προγράμματα προβολής με απόκριση .
Το πλέγμα του Bootstrap περιλαμβάνει πέντε επίπεδα προκαθορισμένων κλάσεων για τη δημιουργία σύνθετων διατάξεων με απόκριση. Προσαρμόστε το μέγεθος των στηλών σας σε πολύ μικρές, μικρές, μεσαίες, μεγάλες ή πολύ μεγάλες συσκευές όπως εσείς κρίνετε κατάλληλο.
Για πλέγματα που είναι ίδια από τη μικρότερη συσκευή έως τη μεγαλύτερη, χρησιμοποιήστε τις κλάσεις .col
και . .col-*
Καθορίστε μια αριθμημένη κλάση όταν χρειάζεστε μια στήλη ειδικού μεγέθους. Διαφορετικά, μη διστάσετε να εμμείνετε στο .col
.
Χρησιμοποιώντας ένα ενιαίο σύνολο .col-sm-*
κλάσεων, μπορείτε να δημιουργήσετε ένα βασικό σύστημα πλέγματος που ξεκινάει στοιβαγμένο και γίνεται οριζόντιο στο μικρό σημείο διακοπής ( sm
).
Δεν θέλετε οι στήλες σας απλώς να στοιβάζονται σε ορισμένες βαθμίδες πλέγματος; Χρησιμοποιήστε έναν συνδυασμό διαφορετικών κλάσεων για κάθε επίπεδο, όπως απαιτείται. Δείτε το παρακάτω παράδειγμα για μια καλύτερη ιδέα για το πώς λειτουργούν όλα.
Χρησιμοποιήστε βοηθητικά προγράμματα ευθυγράμμισης flexbox για κάθετη και οριζόντια στοίχιση στηλών.
Οι υδρορροές μεταξύ στηλών στις προκαθορισμένες κατηγορίες πλέγματος μπορούν να αφαιρεθούν με .no-gutters
. Αυτό αφαιρεί το αρνητικό margin
s από .row
και το οριζόντιο padding
από όλες τις στήλες των άμεσων παιδιών.
Εδώ είναι ο πηγαίος κώδικας για τη δημιουργία αυτών των στυλ. Λάβετε υπόψη ότι οι παρακάμψεις στηλών καλύπτονται μόνο από τις πρώτες θυγατρικές στήλες και στοχεύονται μέσω του επιλογέα χαρακτηριστικών . Ενώ αυτό δημιουργεί έναν πιο συγκεκριμένο επιλογέα, η συμπλήρωση στηλών μπορεί ακόμα να προσαρμοστεί περαιτέρω με βοηθητικά προγράμματα διαστήματος .
Χρειάζεστε σχέδιο από άκρη σε άκρη; Ρίξτε τον γονέα .container
ή .container-fluid
.
Στην πράξη, εδώ είναι πώς φαίνεται. Σημειώστε ότι μπορείτε να συνεχίσετε να το χρησιμοποιείτε με όλες τις άλλες προκαθορισμένες κατηγορίες πλέγματος (συμπεριλαμβανομένων των πλατών στηλών, των αποκρινόμενων επιπέδων, των αναπαραγγελιών και άλλων).
Εάν τοποθετηθούν περισσότερες από 12 στήλες σε μία μόνο γραμμή, κάθε ομάδα επιπλέον στηλών θα αναδιπλωθεί, ως μία μονάδα, σε μια νέα γραμμή.
Από 9 + 4 = 13 > 12, αυτό το πλάτος τεσσάρων στηλών div τυλίγεται σε μια νέα γραμμή ως μία συνεχόμενη μονάδα.
Οι επόμενες στήλες συνεχίζονται κατά μήκος της νέας γραμμής.
Η αλλαγή στηλών σε μια νέα γραμμή στο flexbox απαιτεί ένα μικρό hack: προσθέστε ένα στοιχείο με width: 100%
όπου θέλετε να τυλίξετε τις στήλες σας σε μια νέα γραμμή. Κανονικά αυτό επιτυγχάνεται με πολλαπλά .row
s, αλλά δεν μπορεί να το εξηγήσει κάθε μέθοδος υλοποίησης.
Μπορείτε επίσης να εφαρμόσετε αυτό το διάλειμμα σε συγκεκριμένα σημεία διακοπής με τα βοηθητικά προγράμματα προβολής που αποκρίνονται .
Χρησιμοποιήστε .order-
μαθήματα για τον έλεγχο της οπτικής σειράς του περιεχομένου σας. Αυτές οι κλάσεις αποκρίνονται, επομένως μπορείτε να ορίσετε το order
σημείο διακοπής (π.χ., .order-1.order-md-2
). Περιλαμβάνει υποστήριξη 1
μέσω 12
και στα πέντε επίπεδα πλέγματος.
Υπάρχουν επίσης responsive .order-first
και .order-last
κλάσεις που αλλάζουν το order
στοιχείο ενός στοιχείου εφαρμόζοντας order: -1
και order: 13
( order: $columns + 1
), αντίστοιχα. Αυτές οι κλάσεις μπορούν επίσης να αναμειχθούν με τις αριθμημένες .order-*
κλάσεις όπως απαιτείται.
Μπορείτε να αντισταθμίσετε τις στήλες πλέγματος με δύο τρόπους: τις αποκριτικές .offset-
κατηγορίες πλέγματος και τα βοηθητικά προγράμματα περιθωρίου . Οι κλάσεις πλέγματος έχουν μέγεθος ώστε να ταιριάζουν με στήλες, ενώ τα περιθώρια είναι πιο χρήσιμα για γρήγορες διατάξεις όπου το πλάτος της μετατόπισης είναι μεταβλητό.
Μετακινήστε τις στήλες προς τα δεξιά χρησιμοποιώντας .offset-md-*
κλάσεις. Αυτές οι κλάσεις αυξάνουν το αριστερό περιθώριο μιας στήλης κατά *
στήλες. Για παράδειγμα, .offset-md-4
μετακινείται .col-md-4
σε τέσσερις στήλες.
Εκτός από την εκκαθάριση στηλών σε σημεία διακοπής απόκρισης, μπορεί να χρειαστεί να επαναφέρετε τις μετατοπίσεις. Δείτε το σε δράση στο παράδειγμα πλέγματος .
Με τη μετάβαση στο flexbox στο v4, μπορείτε να χρησιμοποιήσετε βοηθητικά προγράμματα περιθωρίου όπως .mr-auto
να εξαναγκάσετε τις αδελφικές στήλες να απομακρυνθούν η μία από την άλλη.
Για να ενσωματώσετε το περιεχόμενό σας με το προεπιλεγμένο πλέγμα, προσθέστε ένα νέο .row
και σύνολο .col-sm-*
στηλών σε μια υπάρχουσα .col-sm-*
στήλη. Οι ένθετες σειρές πρέπει να περιλαμβάνουν ένα σύνολο στηλών που αθροίζονται έως 12 ή λιγότερες (δεν απαιτείται να χρησιμοποιήσετε και τις 12 διαθέσιμες στήλες).
Όταν χρησιμοποιείτε τα πηγαία αρχεία Sass του Bootstrap, έχετε την επιλογή να χρησιμοποιήσετε μεταβλητές Sass και mixins για να δημιουργήσετε προσαρμοσμένες, σημασιολογικές και αποκριτικές διατάξεις σελίδας. Οι προκαθορισμένες κατηγορίες πλέγματος μας χρησιμοποιούν αυτές τις ίδιες μεταβλητές και μίξεις για να παρέχουν μια ολόκληρη σουίτα έτοιμων προς χρήση κλάσεων για γρήγορη απόκριση διατάξεων.
Οι μεταβλητές και οι χάρτες καθορίζουν τον αριθμό των στηλών, το πλάτος της υδρορροής και το σημείο ερωτήματος μέσων από το οποίο θα ξεκινήσουν οι αιωρούμενες στήλες. Τα χρησιμοποιούμε για να δημιουργήσουμε τις προκαθορισμένες κατηγορίες πλέγματος που τεκμηριώνονται παραπάνω, καθώς και για τις προσαρμοσμένες μίξεις που αναφέρονται παρακάτω.
Οι μίξεις χρησιμοποιούνται σε συνδυασμό με τις μεταβλητές πλέγματος για τη δημιουργία σημασιολογικού CSS για μεμονωμένες στήλες πλέγματος.
Μπορείτε να τροποποιήσετε τις μεταβλητές στις δικές σας προσαρμοσμένες τιμές ή απλώς να χρησιμοποιήσετε τις μίξεις με τις προεπιλεγμένες τιμές τους. Ακολουθεί ένα παράδειγμα χρήσης των προεπιλεγμένων ρυθμίσεων για τη δημιουργία διάταξης δύο στηλών με κενό μεταξύ τους.
Χρησιμοποιώντας τις ενσωματωμένες μεταβλητές Sass πλέγματος και τους χάρτες μας, είναι δυνατό να προσαρμόσετε πλήρως τις προκαθορισμένες κατηγορίες πλέγματος. Αλλάξτε τον αριθμό των επιπέδων, τις διαστάσεις του ερωτήματος πολυμέσων και τα πλάτη του κοντέινερ — στη συνέχεια κάντε εκ νέου μεταγλώττιση.
Ο αριθμός των στηλών πλέγματος μπορεί να τροποποιηθεί μέσω μεταβλητών Sass. $grid-columns
χρησιμοποιείται για να δημιουργήσει τα πλάτη (σε ποσοστά) κάθε μεμονωμένης στήλης ενώ $grid-gutter-width
ορίζει το πλάτος για τις υδρορροές στηλών.
Προχωρώντας πέρα από τις ίδιες τις στήλες, μπορείτε επίσης να προσαρμόσετε τον αριθμό των επιπέδων πλέγματος. Εάν θέλατε μόνο τέσσερις βαθμίδες πλέγματος, θα ενημερώσατε το $grid-breakpoints
και $container-max-widths
σε κάτι σαν αυτό:
Όταν κάνετε οποιεσδήποτε αλλαγές στις μεταβλητές ή τους χάρτες Sass, θα πρέπει να αποθηκεύσετε τις αλλαγές σας και να κάνετε εκ νέου μεταγλώττιση. Με αυτόν τον τρόπο θα βγει ένα ολοκαίνουργιο σύνολο προκαθορισμένων κατηγοριών πλέγματος για πλάτη στηλών, μετατοπίσεις και παραγγελία. Τα αποκριτικά βοηθητικά προγράμματα ορατότητας θα ενημερωθούν επίσης για να χρησιμοποιούν τα προσαρμοσμένα σημεία διακοπής. Βεβαιωθείτε ότι έχετε ορίσει τιμές πλέγματος στο px
(όχι rem
, em
, ή %
).