SlideShare a Scribd company logo
Advanced CSS and Sass:
Flexbox, Grid, Animations
and More!
Στούμπος Βασίλης
CSS, SASS, Tι είναι και πού διαφέρουν
Η λέξη CSS προέρχεται
από τα αρχικά
Cascading Style Sheets.
Η CSS μας περιγράφει
το τρόπο με τον οποίο
τα HTML στοιχεία
απεικονίζονται στην
οθόνη (π.χ. χρώμα,
μέγεθος,
γραμματοσειρά κ.α.)
Η Sass είναι μία γλώσσα
υπολογιστή που πατάει
πάνω στην CSS και
χρησιμοποιείται με τον
ίδιο τρόπο. Έχει
καλύτερη δομή και
περισσότερη δυναμη
από την απλη CSS.
Νesting
Μεταβλητές
Mixins
Οι σπουδαιότερες
διαφορές τους είναι 3
CSS SASS Διαφορές
HTML CSS SASS
3 Βασικές Αρχές για σωστή χρήση της
HTML & CSS
2) Maintanable Κώδικας
3) Web Performance
Να μπορεί κάποιος να κάνει εύκολα αλλαγές στον κώδικα ωστε να συντηρεί το site στο επιθυμητό επίπεδο (πχ γραφοντας
SASS λοιπόν καταφέρνουμε, με το Nesting ή με τις μεταβήτές, να μπορεί ο developer να βρει γρηγορότερα τα κομμάτια που
θέλει να αλλάξει. Επίσης, αν εγώ αποφασίσω για κάποιο λόγο ότι θέλω να αλλάξω σε όλες τις παραγράφους μου χρώμα,
δεν θα χρειαστεί να πάω και να κάνω την αλλαγή σε όλες τις παραγράφους χειροκίνητα παρά μόνο στην μεταβλητή που
έχω ορίσει στην αρχή)
Το λέει και η λέξη, στο παράδειγμα με τις εικόνες που τοποθετούμε ανάλογα το μέγεθος της οθόνης, θα ήταν
λάθος ένας Χρήστης με κινητό να έβλεπε την εικόνα που προορίζεται για τα DESKTOP
διότι θα καταναλώσει περισσότερα δεδομένα χωρίς λόγο
Μία Ιστοσελίδα να μπορεί να αντοποκρίνεται ανάλογα με την οθόνη του χρήστη (phone - Desktop)
1) Responsive design
3 Βασικές Αρχές για Responsive design
2) Flexible/Responsive Images
3) Media Quaries
Να μπορεί να διαλέξει την καταληλη εικόνα ανάλογα με την οθόνη (π.χ. σε μεγαλες οθόνες να μπαίνει εικόνα με
μεγαλύτρη ανάλυση)
Τα παραπάνω λοιπόν επιτυγχάνονται γράφοντας media Quaries
Να μπορεί δηλαδή ένα component (π.χ. το Header που είδαμε πριν) Να αλλάζει τις ιδιότητές του, όπως το σχήμα
και το μέγεθος, αναλογα με την οθόνη.
1) Fluid Grids & Layouts
Το Ηeader σε οθόνη με πλάτος μεγαλύτερο
των 500px
Το ίδιο Ηeader σε οθόνη με
πλάτος μικρότερο των 500px
Οι 3 τύποι Laytous που υπάρχουν
To Float Layout είναι η παλαιότερη μορφή Layout. Πλέον δεν
χρησιμοποιείται τόσο πολύ, παρόλα αυτά, όλα τα παλαιώτερα sites
είναι βασισμένα σε αυτό το μοντέλο διάταξης. Κάθε Developer λοιπόν
πρέπει να την γνωρίζει για την σωστή συντήρηση αυτών των sites
Float Layout
Το Flexible Box Layout είναι άλλο ένα μοντέλο διάταξης.
Η ευέλικτη διάταξη επιτρέπει την αυτόματη τακτοποίηση
στοιχείων σε ένα δοχείο ανάλογα με το μέγεθος της οθόνης.
FLEXBOX
Tο πλέγμα CSS (CSS Grid) είναι το τελευταίο και πιο καινούριο
μοντέλο διάταξης. Δημιουργεί πολύπλοκες και ευέλικτες διατάξεις
σχεδίασης χωρίζοντας το χώρο σε γραμμές και στήλες.
CSS Grid (1/2)
1fr (fractional unit)
200px
Στο προηγούμενο παράδειγμα είδαμετην υλοποίηση του Grid
χρησιμοποιώντας το ακριβές μέγεθος κάθε στήλης.
Το ίδιο ακριβώς αποτέλεσμα θα μπορούσαμε να το πετύχουμε με
αλλους 2 τρόπους, δίνοντας Ονόματα στις στήλες, ή ονόματα στις
περιοχές.
CSS Grid (2/2)
Παράδειγμα με ονόματα στις περιοχές
Αρχιτεκτονική
Ένα ακόμη μικρό αλλά σημαντικό
κομμάτι του course, ήταν η σωστή
αρχιτεκτονική των φακέλων και των
αρχείον SASS. Η παρακάτω
αρχιτεκτονική εφαρμόζεται
συνήθως σε μεγαλύτερα project,
αλλά καλό θα ήταν κάποια βασικά
χαρακτηριστικά της να τα
ακολουθούμε και σε μικρότερα
project
abstract
pages
base
variables
mixins
Components
layout
animations
typography
utility classes
Cards
header
main grid
footer
Home
Bio
Contact
Ένα animation μπορεί να αναγκάσει ένα HTML στοιχείο
να αλλάξει την μορφή του σταδιακά σε διάστημα
προκαθορισμένου χρόνου. 'Ενας Developer μπορεί να
αλλάξει όσα CSS properties θέλει, όσες φορές θέλει. Για
να χρησιμοποιήσουμε το CSS animation, πρέπει πρώτα
να ορίσουμε κάποια keyframes.
Τα Keyframes κρατούν τις τιμές που θα έχουν τα CSS
properties σε συγκεκριμένες χρονικές στιγμές.
Παράδειγμα: Αν θέλουμε ένα animation να διαρκέσει
10s, μπορούμε να ορίσουμε τιμές διαφορετικές για όταν
θα είναι στο 0% (αρχή), στο 50% (5s), στο 100% (τέλος)
Μπορούμε όμως
δημιουργίσουμε και πιο μικρά
και εύκολα Animations,
χρησιμοποιόντας τις εντολές
transform & transition
Animations
Παράδειγμα
Τέλος θα ήθελα να επισημάνω το πόσο σημαντική ειναι η
εντολή support η οποία μας δίνει την ευκαιρία να
διαμορφόσουμε ένα site με περισσότερους τρόπους.
Για παράδειγμα, το Flexbox και το Grid δεν υποστηρίζονται
από όλους τους browsers, ειδικά τους πιο παλιούς. Με αυτή
την εντολή λοιπόν μπορεί ο χρήστης να έχει μια σωστά
δομημένη σελίδα με Float Layout που θα έχουμε
διαμορφώσει εμείς ωστέ να έχει και αυτός μία όμορφη
εμπειρία κατα την επισκεψη του στην Ιστοσελίδα μας.
Για να ελέγξουμε τι κάνει υποστηρίζει ο κάθε Browser,
επισκεπτόμαστε το: www.CANIUSE.com
@supports

More Related Content

PDF
DOC
Css light
PPTX
Εισαγωγή στα CSS - Cascading Style Sheets
PPT
Ruby On Rails Introduction [Εισαγωγή στο Rails]
PDF
Παρουσίαση Smart
PPT
12 Multimedia Design Iii
PDF
Frontend Optimizations (Greek)
PPT
Rapid prototyping
Css light
Εισαγωγή στα CSS - Cascading Style Sheets
Ruby On Rails Introduction [Εισαγωγή στο Rails]
Παρουσίαση Smart
12 Multimedia Design Iii
Frontend Optimizations (Greek)
Rapid prototyping

Similar to Advanced css and sass flexbox, grid, animations and more! (20)

PPTX
Html – basics of static html pages
PPTX
Responsive Workflow & Wordpress
PDF
Sample dreamweaver
PPT
Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματα
PPT
εισαγωγή στα συστήματα διαχείρισης περιεχομένου (Cms)
PPTX
Εργαλεία Αξιοποίησης Μεγάλων Δεδομένων.pptx
PPTX
Το Azure δεν είναι χορτοφάγο! - 59ο DotNetZone Event
PDF
Thesis.Net Framework Training
PDF
Thesis.Net Framework
PDF
Thesis.Net Features
PDF
PPTX
B4 2 3 Slide Formatting
PPTX
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
PPTX
Εισαγωγήoooooooooooooooooooooooooooooooo
PPTX
εννοιολογικοί χάρτες Ιπποκράτης Κοχλιαρίδης αεμ: 362
PPTX
SEO report for ddplastics
PPT
PPTX
NoSQL Databases
PDF
Access2010
PDF
Access2010
Html – basics of static html pages
Responsive Workflow & Wordpress
Sample dreamweaver
Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματα
εισαγωγή στα συστήματα διαχείρισης περιεχομένου (Cms)
Εργαλεία Αξιοποίησης Μεγάλων Δεδομένων.pptx
Το Azure δεν είναι χορτοφάγο! - 59ο DotNetZone Event
Thesis.Net Framework Training
Thesis.Net Framework
Thesis.Net Features
B4 2 3 Slide Formatting
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Εισαγωγήoooooooooooooooooooooooooooooooo
εννοιολογικοί χάρτες Ιπποκράτης Κοχλιαρίδης αεμ: 362
SEO report for ddplastics
NoSQL Databases
Access2010
Access2010
Ad

More from rapidbounce (20)

PPTX
Business Branding
PPTX
The CRO Course (Win on Mobile)
PPTX
Generation Z the Newest Member to the Workforce
PPTX
Google Analytics & Google ads for beginners
PDF
What to include on the front page of your website!
PPTX
E exports Academy - Leading small businesses into the future
PPTX
Facebook ads for beginners retention & loyalty_by_kouloumpi_anastasia
PPTX
Marketing Adaptation in Covid Era
PDF
How to use Instagram to grow your business
PPTX
Instagram - Ways to improve relationship building
PPTX
Freshworks Academy
PPTX
This presentation is a great introduction to both fundamental programming con...
PPTX
Cyan Residence
PDF
2020 02 emotional_intelligence_rapidbounce_presentation_by_elena
PPTX
3 simple habits to improve critical thinking
PPTX
Avant Garde Suites Presentation
PPTX
Deep blue tours
PPTX
rapidbounce Presentation in Greek: "Python For Beginners"
PPTX
VisitGreece.gr Site Redesign rapidbounce Presentation
PPTX
2020_Freshdesk_Admin & Agent_Fundamentals
Business Branding
The CRO Course (Win on Mobile)
Generation Z the Newest Member to the Workforce
Google Analytics & Google ads for beginners
What to include on the front page of your website!
E exports Academy - Leading small businesses into the future
Facebook ads for beginners retention & loyalty_by_kouloumpi_anastasia
Marketing Adaptation in Covid Era
How to use Instagram to grow your business
Instagram - Ways to improve relationship building
Freshworks Academy
This presentation is a great introduction to both fundamental programming con...
Cyan Residence
2020 02 emotional_intelligence_rapidbounce_presentation_by_elena
3 simple habits to improve critical thinking
Avant Garde Suites Presentation
Deep blue tours
rapidbounce Presentation in Greek: "Python For Beginners"
VisitGreece.gr Site Redesign rapidbounce Presentation
2020_Freshdesk_Admin & Agent_Fundamentals
Ad

Advanced css and sass flexbox, grid, animations and more!

  • 1. Advanced CSS and Sass: Flexbox, Grid, Animations and More! Στούμπος Βασίλης
  • 2. CSS, SASS, Tι είναι και πού διαφέρουν Η λέξη CSS προέρχεται από τα αρχικά Cascading Style Sheets. Η CSS μας περιγράφει το τρόπο με τον οποίο τα HTML στοιχεία απεικονίζονται στην οθόνη (π.χ. χρώμα, μέγεθος, γραμματοσειρά κ.α.) Η Sass είναι μία γλώσσα υπολογιστή που πατάει πάνω στην CSS και χρησιμοποιείται με τον ίδιο τρόπο. Έχει καλύτερη δομή και περισσότερη δυναμη από την απλη CSS. Νesting Μεταβλητές Mixins Οι σπουδαιότερες διαφορές τους είναι 3 CSS SASS Διαφορές
  • 4. 3 Βασικές Αρχές για σωστή χρήση της HTML & CSS 2) Maintanable Κώδικας 3) Web Performance Να μπορεί κάποιος να κάνει εύκολα αλλαγές στον κώδικα ωστε να συντηρεί το site στο επιθυμητό επίπεδο (πχ γραφοντας SASS λοιπόν καταφέρνουμε, με το Nesting ή με τις μεταβήτές, να μπορεί ο developer να βρει γρηγορότερα τα κομμάτια που θέλει να αλλάξει. Επίσης, αν εγώ αποφασίσω για κάποιο λόγο ότι θέλω να αλλάξω σε όλες τις παραγράφους μου χρώμα, δεν θα χρειαστεί να πάω και να κάνω την αλλαγή σε όλες τις παραγράφους χειροκίνητα παρά μόνο στην μεταβλητή που έχω ορίσει στην αρχή) Το λέει και η λέξη, στο παράδειγμα με τις εικόνες που τοποθετούμε ανάλογα το μέγεθος της οθόνης, θα ήταν λάθος ένας Χρήστης με κινητό να έβλεπε την εικόνα που προορίζεται για τα DESKTOP διότι θα καταναλώσει περισσότερα δεδομένα χωρίς λόγο Μία Ιστοσελίδα να μπορεί να αντοποκρίνεται ανάλογα με την οθόνη του χρήστη (phone - Desktop) 1) Responsive design
  • 5. 3 Βασικές Αρχές για Responsive design 2) Flexible/Responsive Images 3) Media Quaries Να μπορεί να διαλέξει την καταληλη εικόνα ανάλογα με την οθόνη (π.χ. σε μεγαλες οθόνες να μπαίνει εικόνα με μεγαλύτρη ανάλυση) Τα παραπάνω λοιπόν επιτυγχάνονται γράφοντας media Quaries Να μπορεί δηλαδή ένα component (π.χ. το Header που είδαμε πριν) Να αλλάζει τις ιδιότητές του, όπως το σχήμα και το μέγεθος, αναλογα με την οθόνη. 1) Fluid Grids & Layouts
  • 6. Το Ηeader σε οθόνη με πλάτος μεγαλύτερο των 500px Το ίδιο Ηeader σε οθόνη με πλάτος μικρότερο των 500px
  • 7. Οι 3 τύποι Laytous που υπάρχουν
  • 8. To Float Layout είναι η παλαιότερη μορφή Layout. Πλέον δεν χρησιμοποιείται τόσο πολύ, παρόλα αυτά, όλα τα παλαιώτερα sites είναι βασισμένα σε αυτό το μοντέλο διάταξης. Κάθε Developer λοιπόν πρέπει να την γνωρίζει για την σωστή συντήρηση αυτών των sites Float Layout
  • 9. Το Flexible Box Layout είναι άλλο ένα μοντέλο διάταξης. Η ευέλικτη διάταξη επιτρέπει την αυτόματη τακτοποίηση στοιχείων σε ένα δοχείο ανάλογα με το μέγεθος της οθόνης. FLEXBOX
  • 10. Tο πλέγμα CSS (CSS Grid) είναι το τελευταίο και πιο καινούριο μοντέλο διάταξης. Δημιουργεί πολύπλοκες και ευέλικτες διατάξεις σχεδίασης χωρίζοντας το χώρο σε γραμμές και στήλες. CSS Grid (1/2)
  • 11. 1fr (fractional unit) 200px Στο προηγούμενο παράδειγμα είδαμετην υλοποίηση του Grid χρησιμοποιώντας το ακριβές μέγεθος κάθε στήλης. Το ίδιο ακριβώς αποτέλεσμα θα μπορούσαμε να το πετύχουμε με αλλους 2 τρόπους, δίνοντας Ονόματα στις στήλες, ή ονόματα στις περιοχές. CSS Grid (2/2) Παράδειγμα με ονόματα στις περιοχές
  • 12. Αρχιτεκτονική Ένα ακόμη μικρό αλλά σημαντικό κομμάτι του course, ήταν η σωστή αρχιτεκτονική των φακέλων και των αρχείον SASS. Η παρακάτω αρχιτεκτονική εφαρμόζεται συνήθως σε μεγαλύτερα project, αλλά καλό θα ήταν κάποια βασικά χαρακτηριστικά της να τα ακολουθούμε και σε μικρότερα project abstract pages base variables mixins Components layout animations typography utility classes Cards header main grid footer Home Bio Contact
  • 13. Ένα animation μπορεί να αναγκάσει ένα HTML στοιχείο να αλλάξει την μορφή του σταδιακά σε διάστημα προκαθορισμένου χρόνου. 'Ενας Developer μπορεί να αλλάξει όσα CSS properties θέλει, όσες φορές θέλει. Για να χρησιμοποιήσουμε το CSS animation, πρέπει πρώτα να ορίσουμε κάποια keyframes. Τα Keyframes κρατούν τις τιμές που θα έχουν τα CSS properties σε συγκεκριμένες χρονικές στιγμές. Παράδειγμα: Αν θέλουμε ένα animation να διαρκέσει 10s, μπορούμε να ορίσουμε τιμές διαφορετικές για όταν θα είναι στο 0% (αρχή), στο 50% (5s), στο 100% (τέλος) Μπορούμε όμως δημιουργίσουμε και πιο μικρά και εύκολα Animations, χρησιμοποιόντας τις εντολές transform & transition Animations Παράδειγμα
  • 14. Τέλος θα ήθελα να επισημάνω το πόσο σημαντική ειναι η εντολή support η οποία μας δίνει την ευκαιρία να διαμορφόσουμε ένα site με περισσότερους τρόπους. Για παράδειγμα, το Flexbox και το Grid δεν υποστηρίζονται από όλους τους browsers, ειδικά τους πιο παλιούς. Με αυτή την εντολή λοιπόν μπορεί ο χρήστης να έχει μια σωστά δομημένη σελίδα με Float Layout που θα έχουμε διαμορφώσει εμείς ωστέ να έχει και αυτός μία όμορφη εμπειρία κατα την επισκεψη του στην Ιστοσελίδα μας. Για να ελέγξουμε τι κάνει υποστηρίζει ο κάθε Browser, επισκεπτόμαστε το: www.CANIUSE.com @supports