Webdesign in Siegen

Absolute Positionierung in zentriertem <DIV> ?

Fragen zum Thema HTML und CSS können hier gestellt werden

Moderatoren: Basti, Ingo

Absolute Positionierung in zentriertem <DIV> ?

Beitragvon cgu am 19.12.2007, 15:11

Hallo liebe Community,

ich bin ein CSS-Neuling. Da ich nun die Arbeit eines Erfahrenen Webentwicklers übernehmen muss (und möchte) habe eine Frage zu dem verhalten von Layern für ein Jello-Layout:

Ich möchte ein <div> mittig auf der Seite zentrieren, in dem ich dann andere <div>s absolut positionieren kann. Das müsste doch möglich sein, oder? Momentan wird zwar der Layer den ich in der Mitta haben möchte auch in die Mitte gepackt, jedoch werden die anderen Layer absolut von Seitenrand und nicht absolut vom mittigen Layer plaziert. Wie kann man das beheben?


Hier meine Quelltexte:

XHTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Petri Media GmbH - Lösungen für Marketing und IT</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="petrimedia.css" />
</head>

<body>
<div id="page">
<div id="inhalt">
<p>
<img src="bitmap/startseite/ihr_unternehmen.jpg" alt="Die passende Leistung für Ihr Unternehmen" />
</p>
<p> Je nach größe der Unternehmung halten wir verschiedene Leistungs- sowie
Beratungsprogramme bereit und Verfahren nach verschiedenen Methoden bezüglich
Beratung, Leistungserstellung, Kundenbetreuung und Service.
</p>
</div>
<div id="kopfleiste">
<img src="bitmap/shared/petri_media_kopf.jpg" alt="Petri Media GmbH - Lösungen für Werbung und IT" />
</div>

<div id="navigation">
<p> <img src="bitmap/shared/petri_media_logo.jpg" alt="Petri Media GmbH, Logo" />
</p>
<p><img src="bitmap/shared/spacer.gif" alt="Einrückender Platzhalter" width="24" height="5" /><span class="pfeilmarkierung">»
</span><a href= "startseite.html" title="Petri Media, Startseite">Startseite</a><br />
[...]
</div>
</div>
</body>
</html>



HIER MEIN CSS:

body {
font-family: Arial, Helvetica, Verdana, sans-serif;
color: #444444;
font-size: 11px;
margin: 0px;
background-image: url(bitmap/shared/hintergrund_body.jpg);
}

#page {
width: 896px;
height: 666px;
padding-top: 0px;
background-color: #123954;
margin-left: auto;
margin-right: auto;
background-image: url(bitmap/shared/petri_media_inhaltsbereich.jpg);
}

#inhalt {
position: absolute;
top: 92px;
left: 225px;
width: 665px;

background-color: #eeeeee;
}

#navigation {
position: absolute;
top: 92px;
left: 10px;
font-weight: bold;
font-size: 12px;
width: 230px;
}

#kopfleiste {
position: absolute;
top: 0px;
left: 0px;
}





.pfeilmarkierung {
font-family: verdana, sans-serif;
}

/*PSEUDO - KLASSEN für LINKS */
a:link {
color: #444444;
text-decoration: none;
}

a:hover {
color: #cc0000;
text-decoration: none;
}

a:visited {
color: #444444;
text-decoration: none;
}




das XHTML strict und das CSS sind beide anscheinend valide. Daher kann es sich doch nur um einen konzeptionellen Fehler handeln, oder?
Benutzeravatar
cgu
Mitglied
 
Beiträge: 335
Registriert: 02.09.2006
Wohnort: Siegen

Re: Absolute Positionierung in zentriertem <DIV> ?

Beitragvon Manuel am 19.12.2007, 15:47

Nun ja, aber eine absolute Positionierung hat doch gerade den Vorteil, dass man es absolut und unabhängig von anderen Komponenten platzieren kann. Ich an deiner Stelle würde aber auf dieser Art der Positionierung verzichten, denn zum einen halte ich sie persönlich für meist nicht wirklich gut und zum anderen bist du mit einer relativen Positionierung wesentlich flexibler was die Seitengestaltung angeht, da das Design nicht in jedem Browser anders aussieht und nicht so leicht "kaputt" geht. Oder spricht etwas gegen relative Angaben? :)

Lg,
Manuel ;-]
Benutzeravatar
Manuel
Site Admin
 
Beiträge: 8682
Registriert: 10.12.2004
Wohnort: Asbach

Re: Absolute Positionierung in zentriertem <DIV> ?

Beitragvon Basti am 19.12.2007, 15:49

Eigentlich sollte es ausreichen, wenn du die ID #page auch per Definition positionierst.
Da dieser div-Layer ja mittig sein soll, müsste es mit "position: relative;" funktionieren.

Also einfach noch als weiteres Attribut dazuschreiben:

Code: Alles auswählen
#page {
width: 896px;
height: 666px;
position: relative;
padding-top: 0px;
background-color: #123954;
margin-left: auto;
margin-right: auto;
background-image: url(bitmap/shared/petri_media_inhaltsbereich.jpg);
}
Benutzeravatar
Basti
Moderator
 
Beiträge: 1867
Registriert: 15.06.2006
Wohnort: Rheinbreitbach

Re: Absolute Positionierung in zentriertem <DIV> ?

Beitragvon cgu am 19.12.2007, 16:43

Danke euch für die schnelle Hilfe. Das mit der relativen Positionierung hat sofort geholfen.

Ich dachte, dass die relative Positionierung anders arbeiten würde. Danke nochmal.



Noch eine kurze Frage hintendran:

Kann ich dem <div> "Page" eine Hintergrundgrafik zuweisen, die automatisch so lang wie die seite ist? Dass bedeutet, dass auch wenn jene layer, in innerhalb des layers "page" sind, länger werden, der layer "page" auch länger wird (inkl. Hintergrundgrafik)?

(hoffentlich versteht ich mein wirres geschwätz :D)
Benutzeravatar
cgu
Mitglied
 
Beiträge: 335
Registriert: 02.09.2006
Wohnort: Siegen

Re: Absolute Positionierung in zentriertem <DIV> ?

Beitragvon Manuel am 19.12.2007, 17:01

Ich hoffe ich verstehe dich da richtig. Nun ja, was du machen kannst ist deine Hintergrundgrafik so zu gestalten, dass sie nahtlos ist und sie mit dem CSS-Befehl repeat einfach wieder unten anhängst. Alternative wie auch hier in dW: Hintergrundgrafik nur oben mit einem Verlauf in eine vordefinierte Farbe oder in ein Muster.
Benutzeravatar
Manuel
Site Admin
 
Beiträge: 8682
Registriert: 10.12.2004
Wohnort: Asbach

Re: Absolute Positionierung in zentriertem <DIV> ?

Beitragvon cgu am 19.12.2007, 18:08

Ich habe mich zu unklar ausgedrückt, daher hier nocheinmal mit Skizze :)

Also:

Ich habe einen <div> Page, welches die <div>s "navigation" und "inhalt" beinhaltet. (1).

Wenn ich jetzt meine erstellte Hintergrundgrafik (bin ja eigentlich Grafiker, und kein Programmierer 8) ) dem <div> "Page" zuweise, wird diese nicht wirklich angezeigt, weil das <div> "Page" keinen eigenen Inhalt und damit keine eigene Höhe hat. Der komplette Inhalt steht in den <div>s "navigation" und "inhalt", aber nie direkt im <div> "Page" (2).

Das <div> "Page" wird nur (inkl. Hintergrundgrafik) angezeigt, wenn ich diesem <div> eine feste Höhe zuweise. Das ist ja nicht sinn der Sache, da die Höhe ja variabel sein muss. Ich möchte gerne, dass die beiden <div>s "navigation" und "inhalt" das <div> "page" in der Höhe so weit auseinander ziehen, wie groß sie selbst sind, damit der Hintergrund über die komplette Seitenhöhe geht. (3).

Bild

Ich hoffe nun ist es klarer. Bitte freundlichst um Antworten. :lol:
Ja .. öh .. DAS ... das... läuft!
Benutzeravatar
cgu
Mitglied
 
Beiträge: 335
Registriert: 02.09.2006
Wohnort: Siegen

Re: Absolute Positionierung in zentriertem <DIV> ?

Beitragvon Manuel am 19.12.2007, 18:11

Das dürfte daran liegen, dass du float verwendest um die div-Layer anzuordnen. Was hilft ist der Befehl clear: both;, den du ausführen solltest bevor das div-Tag außen rum geschlossen wird.

Beispiel:
Code: Alles auswählen
HTML:
<div class="clear"></div>

CSS:
.clear
{
    clear: both;
}


Lg,
Manuel ;-]
Benutzeravatar
Manuel
Site Admin
 
Beiträge: 8682
Registriert: 10.12.2004
Wohnort: Asbach

Re: Absolute Positionierung in zentriertem <DIV> ?

Beitragvon cgu am 19.12.2007, 18:22

[edit]

Ich habe die Lösung mit dem clear ausprobiert und die beiden bereiche -weg von der absoluten Positionierung- in float-bereiche umgewandelt. Es funktioniert gut. Das Clear war mit auch schon bekannt, aber es funktioniert ja nur mit der float-Lösung.

Danke :)
Ja .. öh .. DAS ... das... läuft!
Benutzeravatar
cgu
Mitglied
 
Beiträge: 335
Registriert: 02.09.2006
Wohnort: Siegen


Zurück zu HTML/CSS

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast