Μέγεθος ευέλικτου στοιχείου κατά μήκος του κύριου άξονα
Οι ιδιότητες width και height ορίζουν
το πλάτος και το ύψος του ευέλικτου στοιχείου ανεξάρτητα
από την κατεύθυνση των αξόνων. Δηλαδή, εάν ο άξονας είναι οριζόντιος,
τότε το width θα ορίζει το πλάτος, αλλά
εάν ο άξονας είναι κατακόρυφος, τότε το width θα
συνεχίσει να ορίζει το πλάτος. Μερικές φορές αυτή η συμπεριφορά
δεν είναι βολική.
Στο ευέλικτο μοντέλο υπάρχει μια ειδική ιδιότητα
flex-basis, που ορίζει το μέγεθος
του στοιχείου κατά μήκος του κύριου άξονα. Αυτό σημαίνει ότι
εάν ο κύριος άξονας είναι οριζόντιος - αυτή η ιδιότητα
θα ορίζει το πλάτος των στοιχείων, ενώ εάν είναι κατακόρυφος
- τότε το ύψος. Αυτή η ιδιότητα πρέπει να οριστεί
στα ίδια τα ευέλικτα στοιχεία, και όχι στον γονέα τους. Ας
δούμε με παραδείγματα.
Ας υποθέσουμε ότι ο κύριος άξονας είναι οριζόντιος, και
το flex-basis έχει την τιμή 50px.
Σε αυτήν την περίπτωση, το πλάτος των στοιχείων
θα είναι 50px:
<div class="parent">
<div class="child">1</div>
<div class="child">2</div>
<div class="child">3</div>
</div>
.parent {
display: flex;
flex-direction: row; /* ο άξονας είναι οριζόντιος */
width: 300px;
height: 300px;
border: 1px solid red;
}
.child {
flex-basis: 50px; /* μέγεθος στοιχείου */
border: 1px solid green;
}
:
Ας γυρίσουμε τώρα τον άξονα, χωρίς να αλλάξουμε την τιμή
της ιδιότητας flex-basis. Σε αυτήν την περίπτωση
το ύψος των στοιχείων θα είναι 50px:
<div class="parent">
<div class="child">1</div>
<div class="child">2</div>
<div class="child">3</div>
</div>
.parent {
display: flex;
flex-direction: column; /* ο άξονας είναι κατακόρυφος */
width: 300px;
height: 300px;
border: 1px solid red;
}
.child {
flex-basis: 50px;
border: 1px solid green;
}
:
Δημιουργήστε 5 ευέλικτα μπλοκ. Ορίστε τους
πλάτος κατά μήκος του κύριου άξονα σε 100px.
Παρατηρήστε τη συμπεριφορά των μπλοκ
κατά μήκος διαφορετικών αξόνων.
Εάν ο άξονας είναι οριζόντιος και στο μπλοκ έχει οριστεί η ιδιότητα
flex-basis και ταυτόχρονα η ιδιότητα
width, τότε το flex-basis θα
έχει προτεραιότητα. Ελέγξτε το.
Εάν ο άξονας είναι κατακόρυφος και στο μπλοκ έχει οριστεί η ιδιότητα
flex-basis και ταυτόχρονα η ιδιότητα
height, τότε το flex-basis θα
έχει προτεραιότητα. Ελέγξτε το.