Spezielle Fragen zum Einsatz von Ebenen

Moin,

wer kann einem Anfänger bei einer Problemstellung etwas unter die Arme greifen ?

Fragestellung:

Wenn ich mehrere Ebenen nebeneinander platziere, hab ich oftmals das Problem, dass manch Ebenen sich verschieben.

Beispiel:

Ich habe eine Ebene (rechts oben) für ein Logo erstellt - geht!

Im Anschluss habe ich direkt fünf kleinere Ebenen nebeneinander platziert und darin einzelne Grafiken platziert um ein Navigationsmenü zu bauen. - geht auch! Witzigerweise ist mir hier schon aufgefallen, dass der Wert " Top:" immer unterschiedlich ist obwohl die einzelnen Ebenen für das Navigationsmenü doch auf gleicher Höhe liegen. Folglich müsste der Wert „Top“ hier für die einzelnen Grafiken (Navigationsmenü) doch gleich sein da diese optisch auf gleicher Höhe liegen, sind sie jedoch nicht!

Zum eigentlichen Problem:

Erstelle ich jetzt eine weitere Ebene (zB mit Text oder einer Grafik) , hab ich oftmals das Problem, dass diese neue Ebene z.B. andere Ebenen (Navigationsmenü) verdrängt. Hier muss ich dann mühselig die verdrängten Ebenen wieder ausrichten, bis die Platzierung stimmt. Nehm ich jedoch die neuerstelle Ebene dann wieder weg, werden die restlichen Ebenen (nicht alle Ebenen) wieder verdrängt, bzw. letztere müssen wieder neu angepasst werden in der Platzierung. Verstehen tu ich es überhaupt nicht da die Ebenen sich eigentlich überlappen müssten, was diese ja auch eigentlich machen.

Die Ebenen haben alle einen Wert relative und der z-index ist durchnummeriert.

Kann mir jemand die Logik dahinter erläutern ?


html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>r</title>

<?php

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">

</head>


<link rel="stylesheet" href="file:///D|/test/1/wissen.css" type="text/css" />

<body>
<div id="container">            
<div id="content"></div>
<div id="box1"></div>
<div id="logo"></div>
<div id="navi"></div>
<div id="navi2"></div>
<div id="navi3"></div>
<div id="navi4"></div>
<div id="navi5"></div>
<div id="navi6"></div>
<div id="textstartseite"></div>
<div id="textstartseite2"></div>
<div id="footer"> <p>Für telefonische Kontaktaufnahme wählen Sie: +000000</p> </div>

css:

body {
    background-color: #E1DDD9;
    color:#000000;
    font-size: 12px;
    font-family: Verdana, Arial, Sans-Serif;

}

p {
    /* ------  Farb/Schrifgrösset für Footerleiste -----*/ 
    padding: 1px;
    text-align:center; 
    color:#ffffff;
    margin:0;
    font-size: 1.2em;
    
}


p2 {
    /* ------Textformatierungen Startseite  1 -----*/ 
    color:#000000;
    font-size: 12px;    
    
}

p3 {
    /* ------Textformatierungen Startseite  2 Name: Andre Fohrst -----*/ 
    color:#ff6000;
    
}

p4 {
    /* ------Textformatierungen Startseite  2 Name: Andre Fohrst -----*/ 
    color:#666666;
    
}

#container {
width: 956px;
height: 520px;
margin-bottom: 10px;
margin-left: auto;
margin-right: auto;
margin-top: 30px;
background-color: #ffffff;
}

    
#content  {
    height: 520px;
    width: 950px;
    border: 3px solid #ff6000;
    background-color: #ffffff;
    
    margin-right:  0px;
    margin-left: 0px;
    
    
}


#textstartseite {
    position:relative;
    left:350px;
    top:-597px;
    width:600px;
    height:200px;
    z-index:12;
    background-color:#ff6000;
    
    
}
#textstartseite2 {
    position:relative;
    left:350px;
    top:-7px;
    width:60px;
    height:200px;
    z-index:12;
    background-color:#ff6000;
    
    
}


#box1 {
    /* ------  Box 1 -----*/ 
    position:relative;
    left:0px;
    top:-525px;
    width:50px;
    height:50px;
    z-index:2;
    background-color: #ff6000;
    
}


#logo {
position:relative;
left: 584px;
top: -573px;
width: 367px;
height: 112px;
background-color:#F1700A;
z-index:3;
} 

#navi {
    position:relative;
    left:774px;
    top:-550px;
    width:179px;
    height:25px;
    z-index:4;
    background-color: #F1700A;
    background-image: url(bilder/impressum.jpg);
    
}


#navi2 {
    position:relative;
    left:629px;
    top:-575px;
    width:145px;
    height:25px;
    z-index:5;
    background-color: #F1700A;
    background-image: url(bilder/kontakt.jpg);
    
}


#navi3 {
    position:relative;
    left:436px;
    top:-600px;
    width:193px;
    height:25px;
    z-index:6;
    background-color: #F1700A;
    background-image: url(bilder/biete.jpg);
    
}

#navi4 {
    position:relative;
    left:282px;
    top:-625px;
    width:154px;
    height:25px;
    z-index:7;
    background-color: #F1700A;
    background-image: url(bilder/mich.jpg);
    
}


#navi5 {
    position:relative;
    left:105px;
    top:-650px;
    width:177px;
    height:25px;
    z-index:8;
    background-color: #F1700A;
    background-image: url(bilder/wissen.jpg);
    
}


#navi6 {
    position:relative;
    left:3px;
    top:-675px;
    width:102px;
    height:25px;
    z-index:9;
    background-color: #F1700A;
    background-image: url(bilder/home.jpg);
    
}


#Auswahl {
    /* ------  face -----*/ 
    position:relative;
    left:3px;
    top:-515px;
    width:312px;
    height:130px;
    z-index:10;
    background-color:none;
    
    
}



#footer {
    /* ------  footer -----*/ 
    position:relative;
    left:350px;
    top:-333px;
    width:604px;
    height:20px;
    z-index:11;
    background-color: #Ff6000;
    
}

Dein HTML-Code ist noch nicht wirklich ein HTML-Code. Dort ist auch php-Code drinne und das HTML-Grundgerüst ist nicht vollständig.

Im CSS fällt mir auf, dass Du quasi alles relativ positionierst. Verzichte darauf. Auch auf absolute Positionierung. Schau dir float an, wenn Du Elemente nebeneinander haben willst.

Und Elemente wie p2 oder p3 gibt es nicht. Wenn Du bestimmte Absätze speziell Stylen willst, verwende Klasse. Also z.B. statt

[code]p2 {
/* ------Textformatierungen Startseite 1 -----*/
color:#000000;
font-size: 12px;

}[/code]

das

p.nummer2 { /* ------Textformatierungen Startseite 1 -----*/ color:#000000; font-size: 12px; }

was diesen HTML-Code ansprechen würde:

[html]

Text des Absatzes

[/html]

Grüss Dich,

Was fehlt da ?

Ja, ich wüsste jetzt auch nicht wie ich das sonst umsetzen müsste, wenn ich jetzt so ca. fünf Boxen (Ebene) nebeneinander platzieren möchte.

Beim Einsatz „absolute“ bleiben die Boxen (Ebenen) an der Position kleben und bewegen sich nicht wenn man das Browserfenster skaliert. Daher auch mein Einsatz mit „relative“.

Ich hab es mir angesehen jedoch verstehe ich den Einsatz noch nicht im Umgang mit der Platzierung bzw Positionierung von Boxen (Ebenen). Bisher versteh ich das lediglich so, dass man Text an einer Box umfliessen kann.

Ok, ich habe das als eine Art Variable betrachtet und angewendet. Da der Browser das ohne Fehler umgesetzt hat, ddachte ich, das wäre jetzt so ok.

</body></html>

und der gehört in den -Bereich. Zwischen und hat nichts zu stehen.

Ja, ich wüsste jetzt auch nicht wie ich das sonst umsetzen müsste, wenn ich jetzt so ca. fünf Boxen (Ebene) nebeneinander platzieren möchte.

(nochmal) Stichwort float. Siehe:
Float: Die Theorie
CSS Positionieren
float: Elemente umfließen lassen: CSS-Referenz auf CSS 4 You - The Finest in Stylesheets

Beim Einsatz „absolute“ bleiben die Boxen (Ebenen) an der Position kleben und bewegen sich nicht wenn man das Browserfenster skaliert. Daher auch mein Einsatz mit „relative“.

Dann informier dich über die Bedeutung von absoluter Positionierung:
position: Positionsart: CSS-Referenz auf CSS 4 You - The Finest in Stylesheets
CSS Positionieren
CSS position
Dann wird dir sicherlich klar werden, dass Du keine der „position“-Optionen für deine nebeneinander liegenden Boxen benötigst.

Ok, ich habe das als eine Art Variable betrachtet und angewendet. Da der Browser das ohne Fehler umgesetzt hat, ddachte ich, das wäre jetzt so ok.

Nein, ist es nicht. Du darfst nur Elemente verwenden die in dem von dir verwendeten HTML-Standard auch enthalten sind. Das ein Browser auch „andere“ Elemente erkennt, muss nichts heißen. Ein anderer Browser macht das vlt. nicht.

Hallo.

Zusätzlich zu threadis Bemerkungen möchte ich noch sagen das die Seite bloss einen Doctype enthalten sollte und eine Navigation normalerweise als Liste ausgezeichnet wird.

Gruss
Elroy