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

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

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

Η πλήρωση διαχωρίζει το περιεχόμενο από το περίγραμμα του μπλοκ και το περιθώριο δημιουργεί κενά μεταξύ των μπλοκ

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

Υπάρχουν οι ακόλουθες ιδιότητες για να ορίσετε περιθώριο ή padding σε CSS σε κάθε πλευρά ενός στοιχείου:

Υλικό παραγεμίσματος:

  • padding-top: έννοια;
  • padding-right: έννοια;
  • padding-bottom: έννοια;
  • padding-αριστερά: έννοια;

Πεδία:

  • margin-top: έννοια;
  • περιθώριο-δεξιά: έννοια;
  • περιθώριο-κάτω: έννοια;
  • περιθώριο-αριστερά: έννοια;

Οι τιμές μπορούν να καθοριστούν σε οποιεσδήποτε μονάδες CSS - px, em, %, κ.λπ. Παράδειγμα: margin-top: 15px .

Υπάρχει επίσης ένα πολύ βολικό πράγμα όπως συντομογραφία για περιθώριο και συμπλήρωμα CSS. Εάν χρειάζεται να ορίσετε περιθώρια ή γέμιση και στις τέσσερις πλευρές ενός στοιχείου, δεν χρειάζεται να γράψετε την ιδιότητα για κάθε πλευρά ξεχωριστά. Όλα γίνονται πιο απλά: για το περιθώριο και το padding μπορείτε να καθορίσετε 1, 2, 3 ή 4 τιμές ταυτόχρονα. Ο αριθμός των τιμών καθορίζει τον τρόπο κατανομής των ρυθμίσεων:

  • 4 τιμές: το padding ορίζεται για όλες τις πλευρές του στοιχείου με την ακόλουθη σειρά: επάνω, δεξιά, κάτω, αριστερά: padding: 2px 4px 5px 10px;
  • 3 τιμές: το padding ρυθμίζεται πρώτα για την επάνω πλευρά, μετά ταυτόχρονα για την αριστερή και τη δεξιά και μετά για την κάτω: padding: 3px 6px 9px;
  • 2 τιμές: το padding ρυθμίζεται πρώτα ταυτόχρονα από την επάνω και την κάτω πλευρά και, στη συνέχεια, ταυτόχρονα για την αριστερή και τη δεξιά: padding: 6px 12px;
  • 1 τιμή: ίση πλήρωση έχει οριστεί για όλες τις πλευρές του στοιχείου: padding: 3px;

Οι ίδιοι κανόνες ισχύουν για την ιδιότητα περιθωρίου CSS. Λάβετε υπόψη ότι μπορείτε επίσης να χρησιμοποιήσετε αρνητικές τιμές για το περιθώριο (για παράδειγμα, -3px), οι οποίες μερικές φορές μπορεί να είναι αρκετά χρήσιμες.

Περιθώριο σύμπτυξης

Φανταστείτε την κατάσταση: δύο στοιχεία μπλοκ βρίσκονται το ένα πάνω στο άλλο και τους δίνονται πεδία περιθωρίου. Το επάνω μπλοκ έχει οριστεί σε περιθώριο: 60 εικονοστοιχεία και το κάτω μπλοκ ορίζεται σε περιθώριο: 30 εικονοστοιχεία. Θα ήταν λογικό να υποθέσουμε ότι τα δύο οριοθετημένα πεδία δύο στοιχείων απλώς θα αγγίξουν και, ως αποτέλεσμα, το κενό μεταξύ των μπλοκ θα είναι ίσο με 90 pixel.

Ωστόσο, τα πράγματα είναι διαφορετικά. Στην πραγματικότητα, σε μια τέτοια κατάσταση, εμφανίζεται ένα φαινόμενο που ονομάζεται κατάρρευση, όταν επιλέγεται το μεγαλύτερο σε μέγεθος από δύο παρακείμενα πεδία στοιχείων. Στο παράδειγμά μας, το τελικό κενό μεταξύ των στοιχείων θα είναι 60 pixel.


Η απόσταση μεταξύ των μπλοκ είναι ίση με τη μεγαλύτερη από τις τιμές

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

  • Όταν και οι δύο τιμές περιθωρίου είναι θετικές, το μέγεθος του περιθωρίου που προκύπτει θα είναι ίσο με τη μεγαλύτερη τιμή.
  • Εάν μία από τις τιμές είναι αρνητική, τότε για να υπολογίσετε το μέγεθος του πεδίου πρέπει να λάβετε το άθροισμα των τιμών. Για παράδειγμα, με τιμές 20px και -18px το μέγεθος του πεδίου θα είναι:
    20 + (-18) = 20 – 18 = 2 pixel.
  • Εάν και οι δύο τιμές είναι αρνητικές, συγκρίνονται οι συντελεστές αυτών των αριθμών και επιλέγεται ο αριθμός με το μεγαλύτερο συντελεστή (άρα, ο μικρότερος από τους αρνητικούς αριθμούς). Παράδειγμα: πρέπει να συγκρίνετε τις τιμές των πεδίων -6px και -8px. Οι συντελεστές των αριθμών που συγκρίνονται είναι 6 και 8, αντίστοιχα. Έπεται ότι το 6 -8. Το μέγεθος του πεδίου που προκύπτει είναι -8 pixel.
  • Στην περίπτωση που οι τιμές καθορίζονται στο διαφορετικές μονάδες CSS, μειώνονται σε ένα, μετά συγκρίνονται και επιλέγεται η μεγαλύτερη τιμή.
  • Το μέγεθος του περιθωρίου για τα θυγατρικά στοιχεία καθορίζεται με έναν ακόμη πιο ενδιαφέρον τρόπο: εάν ένα παιδί έχει μεγαλύτερο περιθώριο από τον γονέα του, τότε δίνεται προτεραιότητα σε αυτό. Σε αυτήν την περίπτωση, τα μεγέθη των άνω και κάτω περιθωρίων του γονέα θα είναι τα ίδια με αυτά που καθορίζονται για το παιδί. Σε αυτή την περίπτωση, δεν θα υπάρχει απόσταση μεταξύ γονέα και παιδιού.

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

Τα στοιχεία μπορούν να είναι ένθετα ή να βρίσκονται το ένα δίπλα στο άλλο. Ας δούμε το παρακάτω παράδειγμα:

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

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

Υπάρχουν διάφοροι τρόποι για να ορίσετε αυτά τα στυλ. Για παράδειγμα, καθορίστε απευθείας το μέγεθος όλων των περιθωρίων ή των εσοχών με ένα όρισμα σε κάποια μονάδα μέτρησης (px, ex, em, pt, cm κ.λπ.):

padding: 3px; περιθώριο: 3px;

Σε αυτήν την περίπτωση, τα περιθώρια και οι εσοχές θα είναι τα ίδια και στις τέσσερις πλευρές. Όταν καθορίζετε δύο ορίσματα που χωρίζονται με κενό:

padding: 3px 5px; περιθώριο: 3px 5px;

το πρώτο θα καθορίσει το ποσό των περιθωρίων/εσοχών στο επάνω και κάτω μέρος, το δεύτερο - στα αριστερά και στα δεξιά. Όταν δίνονται τρία επιχειρήματα:

padding: 3px 5px 2px; περιθώριο: 3px 5px 2px;

το πρώτο είναι το περιθώριο/εσοχή στο επάνω μέρος, το δεύτερο είναι και αριστερά και δεξιά, το τρίτο είναι στο κάτω μέρος. Με τέσσερα επιχειρήματα:

padding: 3px 5px 2px 6px; περιθώριο : 3px 5px 2px 6px ;

το πρώτο είναι το περιθώριο/κενό στην κορυφή, το δεύτερο είναι στα δεξιά, το τρίτο είναι στο κάτω μέρος, το τέταρτο είναι στα αριστερά. Είναι εύκολο να το θυμάστε: το πρώτο είναι από την κορυφή και μετά δεξιόστροφα. Επιπλέον, μπορείτε να ορίσετε περιθώρια και padding για μια συγκεκριμένη άκρη ξεχωριστά, χρησιμοποιώντας τα κατάλληλα στυλ: padding-top, padding-right, padding-bottom, padding-αριστερά, περιθώριο-κορυφή, περιθώριο-δεξιά, περιθώριο-κάτω, περιθώριο-αριστερά. Η τιμή αυτών των στυλ μπορεί να είναι μόνο ένα όρισμα, το οποίο καθορίζει το μέγεθος του περιθωρίου/γεμίσματος για μια δεδομένη πλευρά.

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

padding: 5px;

Ως αποτέλεσμα, η σελίδα θα αλλάξει ως εξής:

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

margin-top: 5px;

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

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

Κώδικας HTML της πειραματικής σελίδας:

<html > <κεφάλι > <τίτλος >Δοκιμή</τίτλος> <meta http-equiv = περιεχόμενο "Τύπος περιεχομένου" = "text/html;charset=utf-8" > </κεφάλι> <σώμα > <στυλ >πίνακας (πλάτος: 200 εικονοστοιχεία, ύψος: 150 εικονοστοιχεία, περίγραμμα: 1 εικονοστοιχείο συμπαγές #555, σύμπτυξη περιγράμματος: σύμπτυξη) td (κάθετη στοίχιση: επάνω, επένδυση: 0 εικονοστοιχεία) div (πλάτος: 100 εικονοστοιχεία, ύψος: 100 εικονοστοιχεία, φόντο: κόκκινο)</στυλ> <στυλ τραπεζιού = "φόντο: ασβέστης" > <tr > <td style = "padding: 5px" > <div style = "περιθώριο: 0px" ></div> </td> </tr> </πίνακας> <στυλ τραπεζιού = "φόντο: μπλε του ουρανού; περιθώριο κορυφής: 5 εικονοστοιχεία"> <tr > <td ></td> </tr> </πίνακας> </σώμα> </html>Επένδυση

Ελπίζω να είστε ήδη εξοικειωμένοι με τη δομή του μπλοκ. Αν όχι, παρουσιάζεται παρακάτω.

Δομή μπλοκ

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

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

Ετσι. Τα περιθώρια καθορίζονται από την ιδιότητα padding. Αυτές είναι οι εσωτερικές αποστάσεις από τα όρια του μπλοκ έως το περιεχόμενό του.

Η ιδιότητα ισχύει για όλα τα στοιχεία.

Η απόσταση καθορίζεται σε μονάδες μήκους CSS, %, ή ( Προκαθορισμένο

Η ιδιότητα padding είναι καθολική επειδή ορίζει τα περιθώρια από τα όρια ενός στοιχείου στο περιεχόμενό του για όλες τις πλευρές του, συνδυάζοντας έτσι τις ιδιότητες padding-top , padding-right , padding-bottom και padding-left , οι οποίες ορίζουν το πλάτος του περιθώρια για κάθε πλευρικό στοιχείο ξεχωριστά.

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

Η ιδιότητα περιθωρίου ισχύει επίσης για όλα τα στοιχεία.

Η συμπλήρωση καθορίζεται επίσης σε μονάδες μήκους CSS, %, ή ( Προκαθορισμένο) εντοπίζεται αυτόματα από το πρόγραμμα περιήγησης.

Η ιδιότητα περιθωρίου είναι καθολική, καθώς ορίζει την ποσότητα της εσοχής από τα όρια ενός στοιχείου για όλες τις πλευρές του, συνδυάζοντας έτσι τις ιδιότητες margin-top , margin-right , margin-bottom και margin-left , οι οποίες ορίζουν το πλάτος των εσοχών από κάθε περίγραμμα του στοιχείου ξεχωριστά .

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

Απόσπασμα κώδικα:



; ">

Το τραπέζι βρίσκεται μέσα σε ένα δοχείο με κόκκινο περίγραμμα και μπλε φόντο.


Το πλάτος της επένδυσης από το περίγραμμα του τραπεζιού έως το κόκκινο περίγραμμα του κοντέινερ είναι 10 pixel.


Το κελί στα αριστερά περιέχει μια εικόνα. Τα περιθώρια από την εικόνα έως τα περιγράμματα των κελιών είναι 25 pixel.


Το περιθώριο του δεξιού κελιού είναι 10 pixel!


Τελευταία ενημέρωση: 04/08/2016

Ένα πεδίο κειμένου μιας γραμμής δημιουργείται χρησιμοποιώντας το στοιχείο εισόδου όταν το χαρακτηριστικό του τύπου έχει οριστεί σε κείμενο:

Μπορείτε να προσαρμόσετε το πεδίο κειμένου χρησιμοποιώντας μια σειρά από πρόσθετα χαρακτηριστικά:

    dirname: ορίζει την κατεύθυνση του κειμένου

    maxlength : ο μέγιστος επιτρεπόμενος αριθμός χαρακτήρων σε ένα πεδίο κειμένου

    μοτίβο : ορίζει το μοτίβο με το οποίο πρέπει να ταιριάζει το κείμενο εισαγωγής

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

    μόνο για ανάγνωση : Κάνει το πεδίο κειμένου μόνο για ανάγνωση

    υποχρεωτικό : υποδεικνύει ότι το πεδίο κειμένου πρέπει να έχει μια τιμή

    μέγεθος : ορίζει το πλάτος πεδίο κειμένουμε ορατούς χαρακτήρες

    τιμή : Ορίζει την προεπιλεγμένη τιμή στο πεδίο κειμένου

Ας εφαρμόσουμε μερικά χαρακτηριστικά:

Πεδία κειμένου σε HTML5

Σε αυτό το παράδειγμα, το δεύτερο πλαίσιο κειμένου ορίζει αμέσως τα χαρακτηριστικά maxlength και size. Σε αυτήν την περίπτωση, το μέγεθος - δηλαδή ο αριθμός των χαρακτήρων που χωρούν στον ορατό χώρο του πεδίου είναι μεγαλύτερος από τον επιτρεπόμενο αριθμό χαρακτήρων. Ωστόσο, δεν θα μπορούμε να εισάγουμε περισσότερους χαρακτήρες από το μέγιστο μήκος.

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

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

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

Πεδία κειμένου σε HTML5

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

Πεδίο αναζήτησης

Για να δημιουργήσετε πεδία αναζήτησης, χρησιμοποιήστε το στοιχείο εισαγωγής με το χαρακτηριστικό type="search". Τυπικά, είναι ένα απλό πεδίο κειμένου:

Αναζήτηση σε HTML5

Πεδίο κωδικού πρόσβασης

Για να εισαγάγετε έναν κωδικό πρόσβασης, χρησιμοποιήστε το στοιχείο εισαγωγής με το χαρακτηριστικό type="password". Του διακριτικό χαρακτηριστικόείναι ότι οι χαρακτήρες που εισάγονται είναι καλυμμένοι με τελείες:

Σε αυτό το άρθρο θα ήθελα να σας πω πώς να τοποθετήσετε σωστά χωράφια(γέμιση) και εσοχή(περιθώριο) σε CSS.

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

Έτσι, εάν το περίγραμμα και το φόντο του στοιχείου δεν καθορίζονται, τότε δεν υπάρχει διαφορά, χρησιμοποιήστε την ιδιότητα padding ή margin για να ορίσετε τις εσοχές, αλλά με την προϋπόθεση ότι το πλάτος (πλάτος) και το ύψος (ύψος) του στοιχείου δεν καθορίζονται και τον αλγόριθμο για τον υπολογισμό μεγεθών περιεχομένου χρησιμοποιώντας ιδιότητες μεγέθους κουτιού.

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

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

Αυτό είναι το μπλοκ ειδήσεων. Αποτελείται από μια κεφαλίδα, μια λίστα ειδήσεων και έναν σύνδεσμο "Άλλα νέα". Ας τους δώσουμε τα ακόλουθα ονόματα τάξης: news__title, news__list και news__more-link.

Νέα

Δεδομένου ότι καθένα από αυτά τα στοιχεία έχει το ίδιο αριστερό και δεξί περιθώριο, είναι καλύτερο να ορίσετε τα περιθώρια στο γονικό μπλοκ αντί να ορίσετε το αριστερό και το δεξί περιθώριο για κάθε στοιχείο ξεχωριστά.

Ειδήσεις ( padding: 20px 25px; )

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

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

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

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

News__title ( margin-bottom: 10px; ) .news__more-link ( margin-top: 12px; )

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

News__list ( περιθώριο: 10 px 0 12 px 0; )

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

Μπορείτε να ορίσετε μια επάνω εσοχή για κάθε είδηση ​​εκτός από την πρώτη ή μια κάτω εσοχή για κάθε είδηση ​​εκτός από την τελευταία. Η πρώτη επιλογή είναι προτιμότερη επειδή ο ψευδο-επιλογέας:first-child προστέθηκε στην προδιαγραφή CSS 2.1 και έχει ευρύτερη υποστήριξη, σε αντίθεση με τον ψευδο-επιλογέα:last-child, ο οποίος προστέθηκε μόνο στην προδιαγραφή CSS 3.0.

News__list-item ( margin-top: 18px; ) .news__list-item:first-child ( margin-top: 0; )

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

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

Σε αυτή την περίπτωση μπορείτε να χρησιμοποιήσετε επόμενος τρόποςαναθέσεις εσοχών.

Popup__header + .popup__text (περιθώριο-πάνω: 15 px; )

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

Κατακόρυφα περιθώρια που καταρρέουν

Μια άλλη απόχρωση που δεν γνωρίζουν όλοι σχετίζεται με τους κάθετους χώρους μεταξύ γειτονικών μπλοκ. Ο ορισμός της εσοχής που έδωσα παραπάνω λέει ότι η εσοχή είναι η απόσταση μεταξύ σύνορατρέχοντα και γειτονικά μπλοκ. Έτσι, αν τοποθετήσουμε δύο μπλοκ το ένα κάτω από το άλλο και δώσουμε στο ένα ένα κάτω περιθώριο 30 px και στο άλλο ένα πάνω περιθώριο 20 px, το περιθώριο μεταξύ τους δεν θα είναι 50 px, αλλά 30 px.

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

Λάβετε υπόψη ότι οι οριζόντιες εσοχές, σε αντίθεση με τις κάθετες, δεν «συμπίπτουν», αλλά συνοψίζονται. Τα πεδία (padding) συνοψίζονται επίσης.

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

H1 ( margin-bottom: 24 px; ) h2 ( margin-top: 24px; margin-bottom: 12px; ) p (margin-top: 12px; )

Τώρα η επικεφαλίδα h2 μπορεί να τοποθετηθεί είτε μετά την επικεφαλίδα h1 είτε μετά την παράγραφο. Σε κάθε περίπτωση, το επάνω περιθώριο δεν θα υπερβαίνει τα 24 εικονοστοιχεία.

Γενικοί κανόνες

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

  1. Αν γειτονικά στοιχείαέχουν τις ίδιες εσοχές, είναι καλύτερα να τις ρυθμίσετε στο μητρικό κοντέινερ παρά στα στοιχεία.
  2. Όταν ορίζετε εσοχές μεταξύ των στοιχείων, θα πρέπει να εξετάζετε εάν το στοιχείο είναι υποχρεωτικό ή προαιρετικό.
  3. Για μια λίστα παρόμοιων στοιχείων, μην ξεχνάτε ότι ο αριθμός των στοιχείων μπορεί να ποικίλλει.
  4. Προσέξτε την κατακόρυφη επένδυση και χρησιμοποιήστε αυτήν τη λειτουργία όπου θα σας ωφελήσει.

Ετικέτες: Προσθήκη ετικετών