HTML & CSS kezdőknek

HTML és CSS kezdőknek (37. rész): Elemek pozícionálása

A bemutató összes videója HTML & CSS kezdőknek

Az elhelyezés típusát kiválaszthatjátok egy terület vagy elem számára. Erre a position-tulajdonságot használjuk. Ez a tulajdonság meghatározza, hogy egy elemet végül hogyan kell elhelyezni. Összesen négy különböző elhelyezési változat közül lehet választani.

static – nem történik speciális elhelyezés, és a szöveg normál folyása megtörténik.
relative – egy relatív elhelyezés történik, amely az elem normál vagy kezdő pozíciójához igazodik.
absolute – egy abszolút elhelyezés történik a felső, alsó, bal és jobb tulajdonságokon keresztül. Az abszolút pozícióban lévő elemek a normál szövegfolyamon kívül helyezkednek el. Az abszolút pozíció relatív az őselem széleihez képest (de csak ha az nem rendelkezik statikus pozícióval).
fixed – az elem abszolút el van helyezve. Az elem gördítésekor az elem álló helyzetben marad.

Az első két változat változó elhelyezést tesz lehetővé. Itt az elemek egymáshoz viszonyítva kerülnek elhelyezésre. Az alábbi két példa mutatja, hogyan nézhet ki ez az elhelyezési mód:

• Az 1. elemet 30 képponttal eltoljuk az 1. elemhez viszonyítva.
• Az 1. elem mögé helyezzük az 1. elemet.

Ez másképp működik az abszolút és a statikus esetében. Ezek segítségével az elemeket nagyon konkrét helyekre lehet helyezni. Az elhelyezési intézkedések az őselemre vagy a böngészőablak-ra vonatkoznak. Egy példa:

• Az 1. elemet pontosan 30 képponttal a böngészőablak jobb és 20 pixellel a felső szélén helyezzük el.

A különböző elhelyezési változatokat az alábbiakban részletesen ismertetjük. Azonban előtte egy megjegyzés: Az elemek elhelyezésével kapcsolatban a lebegés (float) nevű fontos CSS-elv játszik szerepet. Ezt az fontos CSS-elvet a következő oktatóanyagban részletesen tárgyalom. Alapvetően a lebegés lényege az elemek weboldalon való áramlása. Az elemeket a lehető legmesszebb tolják a megfelelő irányba. Az elhelyezési módnak köszönhetően határozható meg az elemáramlás explicit módon.


Az eltolásos elhelyezés

A relatív elhelyezés használatával a position: relative segítségével két dolog történik:

• A doboz kikerül normál folyásából.

• Az elem eredeti helye fenntartásra kerül.

Az eredeti hely fenntartásával a többi elem úgy viselkedik, mintha az elem ténylegesen még mindig a helyén lenne.

Egy példa:

<!DOCTYPE html> 
 <html> 
 <head> 
 <meta charset="utf-8"> 
 <title>PSD-Tutorials.de</title> 
 <style> 
 div { 
     width: 20%; 
     background-color: white; 
     padding: 10px; 
     border: 1px solid black; 
     margin: 5px; 
 } 
 #box { 
     position: relative; 
     top: 25px; 
     right: 25px; 
     background-color:#33CCFF; 
 } 
 </style> 
 </head> 
 <body> 
 <div id="box">Doboz 1</div> 
 <div>Doboz 2</div> 
 <div>Doboz 3</div> 
 </body> 
 </html>

Három dobozt definiáltak itt.

HTML és CSS kezdőknek (37. rész): Elemek pozícionálása



A 2. és 3. doboz nem kapott elhelyezési utasítást. Ezért normál dokumentumfolyamot követnek. Azonban a 1. dobozt relatívan helyezték el. Ezáltal a 2. és 3. doboz teljesen érintetlen marad a 1. doboztól. Ezek a dobozok tehát nem használják a 1. doboz helyét. Az top, bottom, left és right tagok határozzák meg a dobozok elhelyezését. A relatív elhelyezés esetén az eredeti helyzeti a dokumentumfolyamban (flow) található.

top: 25px – a doboz 25 képponttal lefelé van eltolva. A doboz normál helyzeténél fent 25 pixel kerül beillesztésre.

right: 25px – a doboz 25 képponttal balra van eltolva. A doboz normál helyzeténél jobbra 25 pixel kerül beillesztésre.

A pixelméretek az eredeti pozícióhoz viszonyítva értelmezendők. Az utasítások határozzák meg, hogy hol kerül beillesztésre az érték, tehát a felső és a jobb oldalon. Ez az aspektus kulcsfontosságú. Az utasítások tehát nem határozzák meg, hogy a dobozt hova kell eltolni.

Az abszolút elhelyezés

Folytatjuk az abszolút elhelyezéssel. Ez az elhelyezési mód teljesen kiveszi az elemet a folyásból. A többi elem az oldalon úgy viselkedik, mintha az elem egyáltalán nem lenne jelen.

Egy példa:

<!DOCTYPE html> 
 <html> 
 <head> 
 <meta charset="utf-8"> 
 <title>PSD-Tutorials.de</title> 
 <style> 
 div { 
    width: 20%; 
    background-color: white; 
    padding: 10px; 
    border: 1px solid black; 
    margin: 5px; 
 } 
 #box { 
    position: absolute; 
    top: 25px; 
    right: 25px; 
    background-color:#33CCFF; 
 } 
 </style> 
 </head> 
 <body> 
 <div id="box">Doboz 1</div> 
 <div>Doboz 2</div> 
 <div>Doboz 3</div> 
 </body> 
 </html>

Itt is három dobozt definiáltak. A 1. doboz abszolút módon van elhelyezve.

HTML és CSS kezdőknek (37. rész): Elemek pozícionálása



A relatív elhelyezéssel ellentétben a 1. doboz számára nincs hely fenntartva. A 2. és 3. doboz felfelé csúsznak.

Az elhelyezési utasítások top, right, bottom vagy left most már nem az elem eredeti pozíciójára vonatkoznak a folyamban. Inkább az utasítások a következő környező elemre vonatkoznak, amely a relative, absolute vagy fixed elhelyezéssel rendelkezik. Ha nincs ilyen környező elem, akkor az elhelyezés az általános dokumentumfa legfelső elemére, azaz az html-re vonatkozik.

Pozícionálás fixed értékkel

Az position: fixed tulajdonsággal rögzíthetjük az elemeket. Itt is egy példa:

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>PSD-Tutorials.de</title>
 <style>
 p { margin-left: 25%; }
 #fixiert {
   position: fixed;
   top: 20px;
   left: 20px;
   background-color:#33FFCC;
   width: 20%;
   padding: 10px;
   border: 1px solid black;
 }
 </style>
 </head>
 <body>
 <div id="fixiert">Splitter-Effekt Teil 1</div>
 <p>Nur für kurze Zeit ist das neueste Tutorial oder Video-Training in der Online-Ansicht oder der Inhalt aus der Download-Kategorie punktefrei. Erfahre hier mehr ...</p> 
 </body>
 </html>

A fixált doboz nem görgetni fog, hanem mindig a neki meghatározott pozíción marad.

HTML & CSS kezdőknek (37. rész): Elemek pozícionálása



A fixált dobozok esetében a környező elem mindig a böngészőablak lesz.

Kérjük vegyék figyelembe, hogy a régebbi böngészők esetében komoly problémák adódnak a elemek fixálásával kapcsolatban. Például az IE6 nem azt teszi, amit elvileg kellene. Akik weboldalaikat ezen böngésző számára is optimalizálni akarják/kellene, most két lehetőségük van:

• Lemondani a fixált dobozokról.

• Használni hackeket az IE-hez.

Ha hacket szeretnének használni, javaslom, látogassák meg az alábbi oldalt: http://thestyleworks.de/tut-art/iewinfixed.shtml. Ahol egy kis JavaScript segítségével megmutatják, hogyan lehet megoldani a fixált dobozok megjelenítését ezen böngészőben is.