Sobes.tech
Junior

Πώς ορίζονται οι ιδιότητες του flexbox;

sobes.tech AI

Απάντηση από AI

Ιδιότητες ορίζονται για το κοντέινερ (το στοιχείο στο οποίο εφαρμόζεται display: flex ή display: inline-flex) και τους άμεσους απογόνους του (τα στοιχεία μέσα στο κοντέινερ).

Ιδιότητες για το κοντέινερ:

  • display: Ορίζει ότι το στοιχείο είναι κοντέινερ flex. Δυνατές τιμές: flex (μπλοκ) και inline-flex (γραμμή).
  • flex-direction: Ορίζει την κατεύθυνση του κύριου άξονα, κατά μήκος του οποίου τοποθετούνται τα flex στοιχεία. Δυνατές τιμές: row (προεπιλογή, αριστερά προς δεξιά), row-reverse (δεξιά προς αριστερά), column (πάνω προς κάτω), column-reverse (κάτω προς πάνω).
  • flex-wrap: Διαχειρίζεται την περικοπή των flex στοιχείων σε νέα γραμμή αν ξεπεράσουν τα όρια του κοντέινερ. Δυνατές τιμές: nowrap (προεπιλογή, χωρίς περικοπή), wrap (περικοπή σε νέα γραμμή), wrap-reverse (αντίστροφη περικοπή σε νέα γραμμή).
  • justify-content: Ευθυγραμμίζει τα flex στοιχεία κατά μήκος του κύριου άξονα. Δυνατές τιμές: flex-start (αρχή κοντέινερ), flex-end (τέλος κοντέινερ), center, space-between (ισοκατανεμημένος χώρος ανάμεσα στα στοιχεία, το πρώτο στην αρχή, το τελευταίο στο τέλος), space-around (ισοκατανεμημένος χώρος γύρω από κάθε στοιχείο).
  • align-items: Ευθυγραμμίζει τα flex στοιχεία κατά μήκος του διασταυρούμενου άξονα. Δυνατές τιμές: stretch (προεπιλογή, τεντώνει τα στοιχεία κατά το ύψος του κοντέινερ), flex-start (αρχή), flex-end (τέλος), center, baseline (ευθυγράμμιση με τη βασική γραμμή του κειμένου).
  • align-content: Ευθυγραμμίζει τις γραμμές των flex στοιχείων (όταν χρησιμοποιείται το flex-wrap) κατά μήκος του διασταυρούμενου άξονα. Δεν ισχύει αν υπάρχει μόνο μια γραμμή. Δυνατές τιμές: stretch, flex-start, flex-end, center, space-between, space-around.
  • gap, row-gap, column-gap: Ορίζουν την απόσταση μεταξύ των flex στοιχείων κατά μήκος των κύριων και διασταυρούμενων αξόνων.

Ιδιότητες για τα στοιχεία (άμεσους απογόνους του flex κοντέινερ):

  • order: Ορίζει τη σειρά τοποθέτησης του στοιχείου μέσα στο κοντέινερ. Προεπιλεγμένα, όλα τα στοιχεία έχουν order: 0. Τα στοιχεία με μικρότερη τιμή order τοποθετούνται πρώτα.
  • flex-grow: Ορίζει πόσο θα μεγαλώσει το στοιχείο σε σχέση με άλλα στοιχεία αν υπάρχει ελεύθερος χώρος. Προεπιλογή 0 (δεν μεγαλώνει).
  • flex-shrink: Ορίζει πόσο θα μικρύνει το στοιχείο αν δεν υπάρχει αρκετός χώρος. Προεπιλογή 1 (μειώνεται).
  • flex-basis: Ορίζει το αρχικό μέγεθος του στοιχείου πριν την κατανομή του ελεύθερου χώρου. Μπορεί να οριστεί σε pixels, ποσοστά ή auto. Προεπιλογή auto.
  • flex: Συντομευμένη ιδιότητα για flex-grow, flex-shrink και flex-basis. Για παράδειγμα, flex: 1 1 auto;.
  • align-self: Υπερκαθορίζει την τιμή του align-items για το συγκεκριμένο στοιχείο. Δυνατές τιμές: auto, stretch, flex-start, flex-end, center, baseline.

Παράδειγμα:

.flex-container {
  display: flex; /* Κάνει το στοιχείο flex κοντέινερ */
  flex-direction: row; /* Τοποθετεί τα στοιχεία σε σειρά */
  justify-content: center; /* Ευθυγραμμίζει τα στοιχεία στο κέντρο του κύριου άξονα */
  align-items: center; /* Ευθυγραμμίζει τα στοιχεία στο κέντρο του διασταυρούμενου άξονα */
  gap: 10px; /* Ορίζει την απόσταση μεταξύ των στοιχείων */
}

.flex-item {
  flex-grow: 1; /* Το στοιχείο μπορεί να μεγαλώσει */
  flex-basis: 100px; /* Αρχικό μέγεθος του στοιχείου */
}

.special-item {
  order: -1; /* Αυτό το στοιχείο θα τοποθετηθεί πρώτο */
  align-self: flex-end; /* Υπερκαθορίζει την ευθυγράμμιση κατά τον διασταυρούμενο άξονα για αυτό το στοιχείο */
}