Τα top
, bottom
, left
, και right
οι ιδιότητες που χρησιμοποιούνται με τη θέση για να ρυθμίσετε την τοποθέτηση ενός στοιχείου. Έχουν μόνο επίδραση στα στοιχεία που είναι τοποθετημένα, τα οποία είναι στοιχεία με την position
ιδιότητα να ορίζεται σε οτιδήποτε άλλο static
. Για παράδειγμα: relative
, absolute
, fixed
, ή sticky
.
div ( : || || auto || inherit; )
Μπορείτε να το χρησιμοποιήσετε, για παράδειγμα, για να ωθήσετε ένα εικονίδιο στη θέση του:
button .icon ( position: relative; top: 1px; )
Ή τοποθετήστε ένα ειδικό στοιχείο μέσα σε ένα δοχείο.
.container ( position: relative; ) .container header ( position: absolute; top: 0; )
Η τιμή για top
, bottom
και left
και right
μπορεί να είναι οποιοδήποτε από τα ακόλουθα:
- οποιοδήποτε από τα έγκυρα μήκη του CSS
- ένα ποσοστό του ύψους (για
top
καιbottom
) ή του πλάτους του περιέχοντος στοιχείου (γιαleft
καιright
) auto
inherit
Το στοιχείο γενικά θα απομακρυνθεί από μια δεδομένη πλευρά όταν η τιμή του είναι θετική και προς αυτήν όταν η τιμή είναι αρνητική. Στο παρακάτω παράδειγμα, ένα θετικό μήκος για την top
κίνηση του στοιχείου προς τα κάτω (μακριά από την κορυφή) και ένα αρνητικό μήκος για την top
κίνηση του στοιχείου προς τα πάνω (προς την κορυφή):
Δείτε το Pen
Top: θετικές και αρνητικές τιμές από τον Matsuko Friedland (@missmatsuko)
στο CodePen.
Θέση
Η τοποθέτηση ενός στοιχείου με μια τιμή για top
, bottom
, left
, ή right
εξαρτάται από την αξία του σε position
. Ας ρίξουμε μια ματιά στο τι συμβαίνει όταν ορίζουμε την ίδια τιμή για top
στοιχεία με διαφορετικές τιμές για position
.
static
Η top
ιδιότητα δεν επηρεάζει στοιχεία που δεν έχουν τοποθετηθεί (στοιχεία με το position
σετ static
). Έτσι τοποθετούνται τα στοιχεία από προεπιλογή. Θα μπορούσατε να χρησιμοποιήσετε position: static;
ως μία μέθοδο για να αναιρέσετε την επίδραση top
σε ένα στοιχείο.
relative
Όταν top
έχει οριστεί σε ένα στοιχείο με το position
σε relative
, το στοιχείο θα μετακινηθεί πάνω ή κάτω σε σχέση με την αρχική του τοποθέτηση στο έγγραφο.
Δείτε το Pen
Top: συγγενής του Matsuko Friedland (@missmatsuko)
στο CodePen.
absolute
Όταν top
είναι τοποθετημένο σε ένα στοιχείο με position
σετ absolute
, το στοιχείο θα μετακινηθεί προς τα πάνω ή προς τα κάτω σε σχέση με τον κοντινότερο προγονικό του (ή το έγγραφο, εάν δεν υπάρχουν τοποθετημένοι πρόγονοι).
Σε αυτήν την επίδειξη, το ροζ κουτί στα αριστερά τοποθετείται 50 εικονοστοιχεία κάτω από την κορυφή της σελίδας, επειδή δεν έχει στοιχεία προγόνων. Το ροζ κουτί στα δεξιά βρίσκεται 50px κάτω από την κορυφή της μητρικής της, διότι η μητρική έχει μια position
της relative
.
Δείτε το Pen
Top: απόλυτο από τον Matsuko Friedland (@missmatsuko)
στο CodePen.
fixed
Όταν top
έχει ρυθμιστεί σε ένα στοιχείο με το position
σε fixed
, το στοιχείο θα μετακινηθεί πάνω ή κάτω σε σχέση με τη θύρα προβολής του προγράμματος περιήγησης.
Δείτε το Pen
Top: διορθώθηκε από CSS-Tricks (@ css-tricks)
στο CodePen.
Με την πρώτη ματιά, μπορεί να φαίνεται ότι δεν υπάρχει διαφορά μεταξύ absolute
και fixed
. Η διαφορά μπορεί να φανεί όταν τις συγκρίνετε σε μια σελίδα που έχει αρκετό περιεχόμενο για κύλιση. Καθώς κάνετε κύλιση προς τα κάτω, το fixed
στοιχείο θέσης είναι πάντα σε προβολή, ενώ το absolute
στοιχείο θέσης μετακινείται προς τα έξω.
Δείτε το Pen
Scrolling: fixed vs. absolute από CSS-Tricks (@ css-tricks)
στο CodePen.
sticky
Όταν top
είναι τοποθετημένο σε ένα στοιχείο με position
σετ sticky
, το στοιχείο θα μετακινηθεί προς τα πάνω ή προς τα κάτω σε σχέση με τον πλησιέστερο πρόγονο με ένα πλαίσιο κύλισης (ή τη θύρα προβολής, εάν κανένας πρόγονος δεν έχει πλαίσιο κύλισης), περιοριζόμενος στα όρια του στοιχείου που περιέχει.
Η ρύθμιση top
σε ένα sticky
στοιχείο που έχει τοποθετηθεί δεν κάνει πολλά, εκτός αν το κοντέινερ του είναι ψηλότερο από ό, τι είναι και έχετε αρκετό περιεχόμενο για κύλιση. Όπως και με fixed
, το στοιχείο θα παραμείνει σε προβολή κατά την κύλιση. Σε αντίθεση με αυτό fixed
, το στοιχείο δεν θα βλέπει μόλις φτάσει στις άκρες του περιέχοντος στοιχείου.
Δείτε το Pen
Scrolling:
fix vs. sticky από CSS-Tricks (@ css-tricks) στο CodePen.
Γκότσα
Ρύθμιση αντίθετων πλευρών
Μπορείτε να ορίσετε μια τιμή για καθένα από τα top
, bottom
, left
και right
σε ένα μόνο στοιχείο. Όταν ορίζετε τιμές για αντίθετες πλευρές ( top
και bottom
, ή left
και right
), το αποτέλεσμα μπορεί να μην είναι πάντα αυτό που περιμένετε.
Στις περισσότερες περιπτώσεις, bottom
αγνοείται εάν top
έχει ήδη ρυθμιστεί και right
αγνοείται εάν left
έχει ήδη ρυθμιστεί. Όταν η κατεύθυνση έχει οριστεί σε rtl
(δεξιά προς αριστερά), left
αγνοείται αντί right
. Προκειμένου κάθε τιμή να έχει αποτέλεσμα, το στοιχείο πρέπει να έχει ένα position
σύνολο absolute
ή fixed
και να έχει height
οριστεί σε auto
(προεπιλογή).
Σε αυτό το παράδειγμα, ορίζουμε top
, bottom
και left
, right
σε "20px", και αναμένουμε ότι κάθε πλευρά του εσωτερικού κουτιού θα είναι 20px μακριά από τις πλευρές του εξωτερικού κουτιού:
Δείτε το Pen
Setting πάνω, κάτω, αριστερά και δεξιά από CSS-Tricks (@ css-tricks)
στο CodePen.
Όταν διορθώνεται δεν σχετίζεται με τη θύρα προβολής
Τα στοιχεία με το position
σετ fixed
δεν τοποθετούνται πάντα σε σχέση με τη θύρα προβολής. Θα πρέπει να τοποθετηθεί σε σχέση με το πιο κοντινό πρόγονο του με ένα transform
, perspective
ή filter
σύνολο περιουσίας σε οτιδήποτε άλλο εκτός none
, αν υπάρχει.
Προσθήκη ή αφαίρεση χώρου
Εάν έχετε τοποθετήσει ένα στοιχείο και διαπιστώσετε ότι υπάρχει τώρα ένας κενός χώρος ή όχι αρκετός χώρος που περιμένατε, μπορεί να έχει σχέση με το αν το στοιχείο βρίσκεται εντός ή εκτός της ροής του εγγράφου.
Όταν ένα στοιχείο αφαιρείται από τη ροή του εγγράφου, αυτό σημαίνει ότι ο χώρος που καταλάμβανε αρχικά στη σελίδα εξαφανίζεται. Αυτό συμβαίνει όταν ένα στοιχείο τοποθετείται absolute
ή fixed
. Σε αυτό το παράδειγμα, το κουτί που περιέχει το στοιχείο απόλυτα τοποθετημένο έχει καταρρεύσει επειδή το απόλυτα τοποθετημένο στοιχείο αφαιρέθηκε από τη ροή του εγγράφου:
Δείτε τη
ροή του εγγράφου στυλό από τον Matsuko Friedland (@missmatsuko)
στο CodePen.
Υποστήριξη προγράμματος περιήγησης
Μπορείτε να ρίξετε μια ματιά, αλλά δεν υπάρχουν ανησυχίες μεταξύ των προγραμμάτων περιήγησης για την top
ιδιοκτησία. Χρησιμοποιήστε κατά βούληση.