ΚΕΝΤΡΟ ΠΛΗ.ΝΕ.Τ. Ν. ΦΛΩΡΙΝΑΣ

Η Βίβλος των CSS - Μέρος 4 - Positioning,
Layers και Web Standards

 

Τα Επιπλέοντα Στοιχεία

Ένα στοιχείο μπορεί να τοποθετηθεί στα δεξιά (right) ή στα αριστερά (left) με χρήση της ιδιότητας float. Αυτό πρακτικά σημαίνει ότι το πλαίσιο του στοιχείου (box) μαζί με τα περιεχόμενά του (contents) μπορεί να τοποθετηθεί είτε δεξιά είτε αριστερά σ’ ένα έγγραφο.

Το επόμενο σχήμα εξηγεί τα παραπάνω :

 

 

Αν, για παράδειγμα, θελήσουμε να έχουμε ένα κείμενο που να περιβάλλει μια εικόνα, θα έχουμε το εξής αποτέλεσμα :

 

Ο HTML κώδικας για το παραπάνω παράδειγμα μπορεί να είναι ο εξής : 

<div id="picture">

                    <img src="bill.jpg" alt="Bill Gates">

</div>

<p>causas naturales et antecedentes, idciro etiam nostrarum voluntatum...</p>

Για να κάνουμε την εικόνα να επιπλέει στα αριστερά και το κείμενο να την περιβάλλει, αρκεί να ορίσουμε το πλάτος (width) του πλαισίου (box) που περικλείει την εικόνα και να δώσουμε την τιμή left στην ιδιότητα float, ως εξής :

#picture {

                    float: left;

                    width: 100px;

}

 

Δημιουργία Στηλών (Columns)

Η ιδιότητα float μπορεί επίσης να χρησιμοποιηθεί για τις στήλες (columns) σ’ ένα έγγραφο. Για να δημιουργήσουμε στήλες, θα πρέπει να δομήσουμε τον HTML κώδικα με το tag <div>, ως εξής :

<div id="column1">

<p>Haec disserens qua de re agatur

                    et in quo causa consistat non videt...</p>

</div>

<div id="column2">

                    <p>causas naturales et antecedentes,

                    idciro etiam nostrarum voluntatum...</p>

</div>

<div id="column3">

                    <p>nam nihil esset in nostra

                    potestate si res ita se haberet...</p>

</div>

Τώρα ορίζουμε το πλάτος των στηλών ως ποσοστό, π.χ. 33%, και αφήνουμε την κάθε στήλη να πάει στα αριστερά με την τιμή left στην ιδιότητα float, ως εξής :

#column1 {

                    float:left;

                    width: 33%;

}

#column2 {

                    float:left;

                    width: 33%;

}

#column3 {

                    float:left;

                    width: 33%;

}

Η ιδιότητα float μπορεί να έχει μια από τις τιμές left, right ή none.

 

Η Ιδιότητα Clear

Η ιδιότητα clear χρησιμοποιείται για να ελέγχει το πώς θα συμπεριφέρονται τα επόμενα στοιχεία των στοιχείων που επιπλέουν. Εξ ορισμού, τα επόμενα στοιχεία μετακινούνται για να γεμίσουν τον διαθέσιμο χώρο ο οποίος θα ελευθερωθεί όταν ένα πλαίσιο (box) τοποθετείται σε μια πλευρά.

Η ιδιότητα clear μπορεί να λάβει μια από τις τιμές left, right, both ή none.

<div id="picture">

                    <img src="bill.jpg" alt="Bill Gates">

</div>

<h1>Bill Gates</h1>

<p class="floatstop">causas naturales et antecedentes, idciro etiam nostrarum voluntatum...</p>

Για να εμποδίσουμε το κείμενο από το να πάει δίπλα στην εικόνα, μπορούμε να προσθέσουμε τα εξής στον κώδικα των CSS :

#picture {

                    float:left;

                    width: 100px;

}

.floatstop {

                    clear:both;

}

 

Η Τοποθέτηση (Positioning) των Στοιχείων

Με την ιδιότητα position των CSS, μπορούμε να τοποθετήσουμε ένα στοιχείο ακριβώς εκεί που θέλουμε να βρίσκεται μέσα στην ιστοσελίδα. Μαζί με την ιδιότητα float, η ιδιότητα position μάς δίνει πολλές δυνατότητες για να δημιουργήσουμε μια προηγμένη και ακριβή διάταξη (layout). Για να μπορέσουμε να κατανοήσουμε την ιδιότητα position, θα πρέπει να φανταστούμε ένα παράθυρο φυλλομετρητή ως ένα σύστημα συντεταγμένων :

 

Η βασική αρχή της ιδιότητας position των CSS είναι ότι μπορούμε να τοποθετήσουμε ένα πλαίσιο (box) οπουδήποτε σ’ αυτό το σύστημα συντεταγμένων. Ας υποθέσουμε ότι θέλουμε να τοποθετήσουμε μια επικεφαλίδα (headline). Με το box model, η επικεφαλίδα θα εμφανίζεται ως εξής :

Αν θέλουμε αυτή η επικεφαλίδα να βρίσκεται 100px από την κορυφή (top) του εγγράφου και 200px από την αριστερή πλευρά (left) του εγγράφου, θα πρέπει να γράψουμε τα εξής στον κώδικα CSS :

h1 {

                    position:absolute;

                    top: 100px;

                    left: 200px;

}

Το αποτέλεσμα θα είναι το εξής :

Και ένα παράδειγμα με ακριβή τοποθέτηση μιας παραγράφου :

<html>

<style>

#p1 {

                                      position:absolute;

                                       top: 200px;

                                       left: 300px;

}

</style>

<body>

<div id="p1">

<p> Florina per sempre</p>

</div>

</body>

</html>

Όπως μπορούμε να δούμε, η τοποθέτηση των στοιχείων με τη χρήση των CSS αποτελεί μια τεχνική με μεγάλη ακρίβεια στην τοποθέτηση των αντικειμένων και είναι πολύ καλύτερη από τη χρήση πινάκων (tables) ή διαφανών εικόνων (transparent images).

 

Η Απόλυτη Τοποθέτηση (Absolute Positioning)

Ένα στοιχείο που τοποθετείται απόλυτα (absolute positioning) δεν καταλαμβάνει κάποιον χώρο στο έγγραφο. Για να τοποθετήσουμε ένα έγγραφο απόλυτα, θα πρέπει να δώσουμε την τιμή absolute στην ιδιότητα position και μετά μπορούμε να χρησιμοποιήσουμε τις τιμές left, right, top και bottom για να τοποθετήσουμε το πλαίσιο (box).

Στο παρακάτω παράδειγμα τοποθετήσαμε 4 πλαίσια, από ένα σε κάθε γωνία του εγγράφου :

#box1 {

                    position:absolute;

                    top: 50px;

                    left: 50px;

}

#box2 {

                    position:absolute;

                    top: 50px;

                    right: 50px;

}

#box3 {

                    position:absolute;

                    bottom: 50px;

                    right: 50px;

}

#box4 {

                    position:absolute;

                    bottom: 50px;

                    left: 50px;

}

 

Η Σχετική Τοποθέτηση (Relative Positioning)

Για να τοποθετήσουμε ένα στοιχείο σε σχετική θέση (relative positioning), θα πρέπει να δώσουμε την τιμή relative στην ιδιότητα position. Η θέση ενός στοιχείου που τοποθετείται σχετικά υπολογίζεται από την αρχική θέση που είχε στο έγγραφο.

Αυτό σημαίνει ότι μπορούμε να μετακινήσουμε το στοιχείο προς τα δεξιά (right), προς τα αριστερά (left), προς τα πάνω (up) ή προς τα κάτω (down). Θα τοποθετήσουμε τώρα τρεις εικόνες σχετικά με την αρχική τους θέση στην ιστοσελίδα :

#dog1 {

                    position:relative;

                    left: 350px;

                    bottom: 150px;

}

#dog2 {

                    position:relative;

                    left: 150px;

                    bottom: 500px;

}

#dog3 {

                    position:relative;

                    left: 50px;

                    bottom: 700px;

}

 

Η Ιδιότητα z-index

Τα CSS δουλεύουν σε τρεις διαστάσεις : ύψος (height), πλάτος (width) και βάθος (depth). Έχουμε ήδη δει τις δύο πρώτες διαστάσεις νωρίτερα και τώρα θα δούμε το πώς μπορούμε να τοποθετήσουμε κάποια στοιχεία το ένα πάνω από το άλλο και να δημιουργήσουμε έτσι επίπεδα (layers).

Για να γίνει αυτό, θα πρέπει να εκχωρήσουμε σε κάθε στοιχείο έναν αριθμό, που είναι γνωστός με τον όρο z-index. Αυτό που ισχύει είναι ότι ένα στοιχείο που έχει μεγαλύτερο αριθμό z-index θα επικαλύπτει (overlaps) ένα άλλο στοιχείο που έχει μικρότερο αριθμό z-index.

Ας υποθέσουμε ότι έχουμε 5 τραπουλόχαρτα σε αντίστοιχες εικόνες. Θέλουμε να δημιουργήσουμε την εξής διάταξη στην ιστοσελίδα μας :

 

Ο κώδικας θα είναι ως εξής :

#ten_of_diamonds {

                    position: absolute;

                    left: 100px;

                    bottom: 100px;

                    z-index: 1;

}

#jack_of_diamonds {

                    position: absolute;

                    left: 115px;

                    bottom: 115px;

                    z-index: 2;

}

#queen_of_diamonds {

                    position: absolute;

                    left: 130px;

                    bottom: 130px;

                    z-index: 3;

}

#king_of_diamonds {

                    position: absolute;

                    left: 145px;

                    bottom: 145px;

                    z-index: 4;

}

#ace_of_diamonds {

                    position: absolute;

                    left: 160px;

                    bottom: 160px;

                    z-index: 5;

}

Η μέθοδος είναι σχετικά απλή αλλά μας δίνει πολλές δυνατότητες. Μπορούμε να τοποθετήσουμε εικόνες πάνω από κείμενο ή κείμενο πάνω από ένα άλλο κείμενο κοκ.

Ακολουθεί ένα παράδειγμα με τοποθέτηση μιας εικόνας πάνω από μια άλλη εικόνα :

<html>

<style>

#img1 {

                                       position:absolute;

                                       top: 100px;

                                       left: 200px;

                                       z-index: 2;

}

#img2 {

                                       position:absolute;

                                       top: 100px;

                                       left: 200px;

                                       z-index: 1;

}

</style>

<body>

<h1 align=center>Hallo from Florina!</h1>

<div id="img1">

                                       <img src="florina01.jpg">

</div>

<div id="img2">

                                       <img src="florina02.jpg">

</div>

</body>

</html>

 

Τα Web Standards και το Validation

Το W3C (World Wide Web Consortium) είναι ένας ανεξάρτητος οργανισμός που διαχειρίζεται την κωδικοποίηση του Web, δηλ. τις γλώσσες προγραμματισμού και μορφοποίησης HTML, CSS, XML κ.ά. Η εταιρεία Microsoft, το Mozilla Foundation και πολλοί άλλοι οργανισμοί αποτελούν μέρος του W3C και συμφωνούν για τη μελλοντική ανάπτυξη των προτύπων (standards).

Αν έχετε ακόμα και μικρή εμπειρία στο Web design, θα γνωρίζετε ότι μπορεί να υπάρχουν μεγάλες διαφορές στο πώς εμφανίζεται μια ιστοσελίδα σε διάφορους φυλλομετρητές (browsers). Σίγουρα δεν αποτελεί εύκολη και ευχάριστη δουλειά να προσπαθήσετε να κάνετε μια ιστοσελίδα που να μπορεί να ειδωθεί το ίδιο καλά στους διάφορους φυλλομετρητές, όπως είναι οι Mozilla, Internet Explorer, Opera, Netscape κ.ά.

Η βασική ιδέα πίσω από τα standards είναι να υπάρξει μια συμφωνία στη χρήση των τεχνολογιών του Web. Αυτό σημαίνει ότι ένας Web developer θα είναι σίγουρος ότι η εργασία του θα εμφανίζεται σωστά στις διάφορες πλατφόρμες.

Τα πρότυπα (standards) των CSS υπάρχουν στην ιστοσελίδα :

http://www.w3.org/TR/REC-CSS2/.

Το W3C έχει δημιουργήσει τον λεγόμενο Validator στην ιστοσελίδα http://jigsaw.w3.org/css-validator/, ο οποίος μπορεί να διαβάσει μια ιστοσελίδα και να επιστρέψει μια λίστα με λάθη (errors) και προειδοποιήσεις (warnings) αν ο CSS κώδικας δεν είναι έγκυρος.

Αν ο Validator δεν βρει λάθη, θα εμφανισθεί η επόμενη εικόνα, η οποία μπορεί να τοποθετηθεί στο Web site για να δειχθεί ότι ο κώδικας είναι επικυρωμένος (validated) :

Ο Validator μπορεί να βρεθεί και στην εξής ιστοσελίδα :

http://jigsaw.w3.org/css-validator/

 

 

back.gif (9867 bytes)

Επιστροφή