|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "bee6762d4092a13fc7c338814963f980",
|
|
|
"translation_date": "2025-10-23T20:17:58+00:00",
|
|
|
"source_file": "3-terrarium/2-intro-to-css/assignment.md",
|
|
|
"language_code": "el"
|
|
|
}
|
|
|
-->
|
|
|
# Ανάθεση Αναδιάρθρωσης CSS
|
|
|
|
|
|
## Στόχος
|
|
|
|
|
|
Μεταμορφώστε το έργο του terrarium σας χρησιμοποιώντας σύγχρονες τεχνικές διάταξης CSS! Αναδιαρθρώστε την τρέχουσα προσέγγιση απόλυτης τοποθέτησης για να εφαρμόσετε **Flexbox** ή **CSS Grid** για έναν πιο ευέλικτο και προσαρμόσιμο σχεδιασμό. Αυτή η ανάθεση σας προκαλεί να εφαρμόσετε σύγχρονα πρότυπα CSS διατηρώντας παράλληλα την οπτική ελκυστικότητα του terrarium σας.
|
|
|
|
|
|
Η κατανόηση του πότε και πώς να χρησιμοποιείτε διαφορετικές μεθόδους διάταξης είναι μια κρίσιμη δεξιότητα για τη σύγχρονη ανάπτυξη ιστού. Αυτή η άσκηση γεφυρώνει τις παραδοσιακές τεχνικές τοποθέτησης με τα σύγχρονα συστήματα διάταξης CSS.
|
|
|
|
|
|
## Οδηγίες Ανάθεσης
|
|
|
|
|
|
### Φάση 1: Ανάλυση και Σχεδιασμός
|
|
|
1. **Ανασκόπηση του τρέχοντος κώδικα terrarium σας** - Εντοπίστε ποια στοιχεία χρησιμοποιούν αυτή τη στιγμή απόλυτη τοποθέτηση
|
|
|
2. **Επιλέξτε τη μέθοδο διάταξης σας** - Αποφασίστε αν το Flexbox ή το CSS Grid ταιριάζει καλύτερα στους στόχους του σχεδιασμού σας
|
|
|
3. **Σχεδιάστε τη νέα δομή διάταξης σας** - Προγραμματίστε πώς θα οργανωθούν τα containers και τα στοιχεία των φυτών
|
|
|
|
|
|
### Φάση 2: Υλοποίηση
|
|
|
1. **Δημιουργήστε μια νέα έκδοση** του έργου terrarium σας σε ξεχωριστό φάκελο
|
|
|
2. **Ενημερώστε τη δομή HTML** όπως απαιτείται για να υποστηρίξετε τη μέθοδο διάταξης που επιλέξατε
|
|
|
3. **Αναδιαρθρώστε το CSS** για να χρησιμοποιήσετε Flexbox ή CSS Grid αντί για απόλυτη τοποθέτηση
|
|
|
4. **Διατηρήστε την οπτική συνέπεια** - Βεβαιωθείτε ότι τα φυτά και το βάζο terrarium εμφανίζονται στις ίδιες θέσεις
|
|
|
5. **Εφαρμόστε προσαρμοστική συμπεριφορά** - Η διάταξή σας πρέπει να προσαρμόζεται ομαλά σε διαφορετικά μεγέθη οθόνης
|
|
|
|
|
|
### Φάση 3: Δοκιμή και Τεκμηρίωση
|
|
|
1. **Δοκιμή σε διαφορετικούς browsers** - Επαληθεύστε ότι ο σχεδιασμός σας λειτουργεί σε Chrome, Firefox, Edge και Safari
|
|
|
2. **Δοκιμή προσαρμοστικότητας** - Ελέγξτε τη διάταξή σας σε κινητά, tablet και επιτραπέζιες οθόνες
|
|
|
3. **Τεκμηρίωση** - Προσθέστε σχόλια στο CSS σας εξηγώντας τις επιλογές διάταξης σας
|
|
|
4. **Στιγμιότυπα οθόνης** - Καταγράψτε το terrarium σας σε διαφορετικούς browsers και μεγέθη οθόνης
|
|
|
|
|
|
## Τεχνικές Απαιτήσεις
|
|
|
|
|
|
### Υλοποίηση Διάταξης
|
|
|
- **Επιλέξτε ΜΟΝΟ ΕΝΑ**: Εφαρμόστε είτε Flexbox είτε CSS Grid (όχι και τα δύο για τα ίδια στοιχεία)
|
|
|
- **Προσαρμοστικός Σχεδιασμός**: Χρησιμοποιήστε σχετικές μονάδες (`rem`, `em`, `%`, `vw`, `vh`) αντί για σταθερά pixels
|
|
|
- **Προσβασιμότητα**: Διατηρήστε σωστή δομή HTML και alt text
|
|
|
- **Ποιότητα Κώδικα**: Χρησιμοποιήστε συνεπείς ονομασίες και οργανώστε το CSS λογικά
|
|
|
|
|
|
### Σύγχρονα Χαρακτηριστικά CSS που Πρέπει να Περιλαμβάνονται
|
|
|
```css
|
|
|
/* Example Flexbox approach */
|
|
|
.terrarium-container {
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
min-height: 100vh;
|
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
|
}
|
|
|
|
|
|
.plant-containers {
|
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
|
width: 100%;
|
|
|
max-width: 1200px;
|
|
|
}
|
|
|
|
|
|
/* Example Grid approach */
|
|
|
.terrarium-layout {
|
|
|
display: grid;
|
|
|
grid-template-columns: 1fr 3fr 1fr;
|
|
|
grid-template-rows: auto 1fr;
|
|
|
min-height: 100vh;
|
|
|
gap: 1rem;
|
|
|
}
|
|
|
```
|
|
|
|
|
|
### Απαιτήσεις Υποστήριξης Browser
|
|
|
- **Chrome/Edge**: Τελευταίες 2 εκδόσεις
|
|
|
- **Firefox**: Τελευταίες 2 εκδόσεις
|
|
|
- **Safari**: Τελευταίες 2 εκδόσεις
|
|
|
- **Browsers κινητών**: iOS Safari, Chrome Mobile
|
|
|
|
|
|
## Παραδοτέα
|
|
|
|
|
|
1. **Ενημερωμένο αρχείο HTML** με βελτιωμένη δομή
|
|
|
2. **Αναδιαρθρωμένο αρχείο CSS** χρησιμοποιώντας σύγχρονες τεχνικές διάταξης
|
|
|
3. **Συλλογή στιγμιότυπων οθόνης** που δείχνει συμβατότητα σε διαφορετικούς browsers:
|
|
|
- Προβολή επιτραπέζιου υπολογιστή (1920x1080)
|
|
|
- Προβολή tablet (768x1024)
|
|
|
- Προβολή κινητού (375x667)
|
|
|
- Τουλάχιστον 2 διαφορετικοί browsers
|
|
|
4. **Αρχείο README.md** που τεκμηριώνει:
|
|
|
- Την επιλογή διάταξης σας (Flexbox vs Grid) και τη λογική πίσω από αυτή
|
|
|
- Προκλήσεις που αντιμετωπίσατε κατά την αναδιάρθρωση
|
|
|
- Σημειώσεις συμβατότητας browser
|
|
|
- Οδηγίες για την εκτέλεση του κώδικα σας
|
|
|
|
|
|
## Κριτήρια Αξιολόγησης
|
|
|
|
|
|
| Κριτήριο | Εξαιρετικό (4) | Επαρκές (3) | Αναπτυσσόμενο (2) | Αρχικό (1) |
|
|
|
|----------|---------------|----------------|---------------|---------------|
|
|
|
| **Υλοποίηση Διάταξης** | Άριστη χρήση Flexbox/Grid με προηγμένα χαρακτηριστικά; πλήρως προσαρμοστικό | Σωστή υλοποίηση με καλή προσαρμοστική συμπεριφορά | Βασική υλοποίηση με μικρά προβλήματα προσαρμοστικότητας | Ελλιπής ή λανθασμένη υλοποίηση διάταξης |
|
|
|
| **Ποιότητα Κώδικα** | Καθαρό, καλά οργανωμένο CSS με ουσιαστικά σχόλια και συνεπείς ονομασίες | Καλή οργάνωση με μερικά σχόλια | Επαρκής οργάνωση με ελάχιστα σχόλια | Κακή οργάνωση; δύσκολο να κατανοηθεί |
|
|
|
| **Συμβατότητα Browser** | Τέλεια συνέπεια σε όλους τους απαιτούμενους browsers με στιγμιότυπα | Καλή συμβατότητα με μικρές διαφορές που έχουν τεκμηριωθεί | Κάποια προβλήματα συμβατότητας που δεν επηρεάζουν τη λειτουργικότητα | Σοβαρά προβλήματα συμβατότητας ή έλλειψη δοκιμών |
|
|
|
| **Προσαρμοστικός Σχεδιασμός** | Εξαιρετική προσέγγιση mobile-first με ομαλά breakpoints | Καλή προσαρμοστική συμπεριφορά με κατάλληλα breakpoints | Βασικά προσαρμοστικά χαρακτηριστικά με κάποια προβλήματα διάταξης | Περιορισμένη ή ελαττωματική προσαρμοστική συμπεριφορά |
|
|
|
| **Τεκμηρίωση** | Πλήρες README με λεπτομερείς εξηγήσεις και πληροφορίες | Καλή τεκμηρίωση που καλύπτει όλα τα απαιτούμενα στοιχεία | Βασική τεκμηρίωση με ελάχιστες εξηγήσεις | Ελλιπής ή ανύπαρκτη τεκμηρίωση |
|
|
|
|
|
|
## Χρήσιμοι Πόροι
|
|
|
|
|
|
### Οδηγοί Μεθόδων Διάταξης
|
|
|
- 📖 [Ολοκληρωμένος Οδηγός για το Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/)
|
|
|
- 📖 [Ολοκληρωμένος Οδηγός για το CSS Grid](https://css-tricks.com/snippets/css/complete-guide-grid/)
|
|
|
- 📖 [Flexbox vs Grid - Επιλέξτε το Κατάλληλο Εργαλείο](https://blog.webdevsimplified.com/2022-11/flexbox-vs-grid/)
|
|
|
|
|
|
### Εργαλεία Δοκιμής Browser
|
|
|
- 🛠️ [Λειτουργία Responsive των DevTools του Browser](https://developer.chrome.com/docs/devtools/device-mode/)
|
|
|
- 🛠️ [Can I Use - Υποστήριξη Χαρακτηριστικών](https://caniuse.com/)
|
|
|
- 🛠️ [BrowserStack - Δοκιμή Συμβατότητας Browser](https://www.browserstack.com/)
|
|
|
|
|
|
### Εργαλεία Ποιότητας Κώδικα
|
|
|
- ✅ [CSS Validator](https://jigsaw.w3.org/css-validator/)
|
|
|
- ✅ [HTML Validator](https://validator.w3.org/)
|
|
|
- ✅ [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/)
|
|
|
|
|
|
## Πρόσθετες Προκλήσεις
|
|
|
|
|
|
🌟 **Προηγμένες Διατάξεις**: Εφαρμόστε και Flexbox ΚΑΙ Grid σε διαφορετικά μέρη του σχεδιασμού σας
|
|
|
🌟 **Ενσωμάτωση Κινήσεων**: Προσθέστε μεταβάσεις ή κινήσεις CSS που λειτουργούν με τη νέα διάταξη σας
|
|
|
🌟 **Σκοτεινή Λειτουργία**: Εφαρμόστε έναν εναλλάκτη θεμάτων βασισμένο σε ιδιότητες CSS
|
|
|
🌟 **Ερωτήματα Container**: Χρησιμοποιήστε σύγχρονες τεχνικές ερωτημάτων container για προσαρμοστικότητα σε επίπεδο στοιχείων
|
|
|
|
|
|
> 💡 **Θυμηθείτε**: Ο στόχος δεν είναι απλώς να λειτουργήσει, αλλά να κατανοήσετε ΓΙΑΤΙ η μέθοδος διάταξης που επιλέξατε είναι η καλύτερη λύση για αυτήν τη συγκεκριμένη πρόκληση σχεδιασμού!
|
|
|
|
|
|
---
|
|
|
|
|
|
**Αποποίηση ευθύνης**:
|
|
|
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης. |