Div container einfügen ohne Überlappung

Hallo Experten,

ich möchte neben #rapper #bodyArea 2 div container einfügen (links und rechts davon) die nicht überlappen. Hier ist der Code:

@charset „UTF-8“;
* {
margin: 0px; padding:0px;

}
html, body {height: 100%}

#rapper {
width: 1045px;
min-height: 100%;
border-right-width: 8px;
border-left-width: 8px;
border-right-style: solid;
border-left-style: solid;
border-left-color: #6FD12F;
border-right-color: #6FD12F;
margin-right: auto;
margin-left: auto;
background-color: #FFF;
}
#rapper #navigation {
color: #043B10;
background-image: url(Graphiken/oben.gif);
background-repeat: repeat-x;
width: 1045px;
}
#rapper #headerImg {
width: 1045px;
background-color: #043B10;
}
#rapper #bodyArea {
width: 1025.5px;
background-color: #FFF;
padding: 10px;
}

Ich hab schon versucht die Container so hinzuzufügen:

#rapper #bodyArea right {
float:right;
padding-top:20px;
padding-right:40px;
}
#rapper #bodyArea left {
float:left;
padding-top:20px;
padding-right:40px;
}

Die Divs im html hab ich dann so gesetzt:

Jedoch funktioniert dass nicht.

Kann mir da vielleicht jemand helfen.

Lg,
Chris

Moin,

ich möchte neben #rapper

Gehts bei Dir um Musik oder ist das Unwissenheit? Hört sich eher an, als meintest Du einen „wrapper“ (von „to wrap“, umwickeln).

ich möchte neben […] 2 div container einfügen
(links und rechts davon) die nicht überlappen.

div ist ein Block-Element. Die sind per Default 100% breit und erzeugen einen Umbruch.
Um mehrere Block-Elemente nebeneinander zu bekommen, kann man „float“ verwenden. Damit wird das Element aus dem Textfluss genommen und das nächste beginnt an der selben Stelle. Dadurch überlappen sich Block-Elemente aber auch. Aber wenn das gefloatete Element eine feste Breite hat, kann das nachfolgende Block-Element einen Abstand in gleicher Breite bekommen, dann überlappt sich auch nichts mehr.

Hier ist der Code:

Viel zu kompliziert. Ein Link ist einfacher für Dich und uns.

Ich hab schon versucht die Container so hinzuzufügen:

#rapper #bodyArea right {

Was ist „right“? Meinst Du „#right“?

Übrigens ist es keine gute Idee, Klasse oder IDs mit Layoutangaben zu benennen.

Die Divs im html hab ich dann so gesetzt:

Haben die eigentlich auch einen semantischen Sinn?

Ich frag das so blöd - obwohl das nicht die Frage war - weil Du alles neu machen musst, wenn Du erst das Layout und danach den Inhalt mit Semantik aufbaust. Oder aber Du auf die Weise eine Seite erzeugt, die keine Semantik hat - und somit für Suchmaschinen und Vorlesebrowser annähernd unbrauchbar wird.

Jedoch funktioniert dass nicht.

Mit nem Link würde man sofort sehen, was nicht funktioniert (außer die falsche Schreibweise im Selektor!) und man könnte das Ganze mit entsprechenden Browser-Tools analysieren.

Liebe Grüße,
-Efchen

Hallo Efchen,

danke für deine schnelle Antwort.
ja rapper war meine Kreation, da ich nicht gewusst hab, dass es einen sematischen Sinn machen soll.
Was wäre eine gute Semantik?
Oder was wäre eine bessere Idee als Klasse oder IDs für die Layoutangabe?

Ich würd dir gerne einen Link geben, leider ist sie noch nicht online.
Es ist erst meine erste Homepage und deshalb möchte ich mich zuerst mitn Fertigstellen beschäftigen bevor ich mich mitn Uploaden beschäftige.

Das Problem ist, dass die Element right und left sich im bodyArea befinden und nicht links und rechts davon. Selbst wenn ich float und width definiere.

#wrapper #bodyArea #right {
width: 200px;
float:right;
padding-top:20px;
padding-right:40px;
}

#wrapper #bodyArea #left {
width: 200px;
float:right;
padding-top:20px;
padding-right:40px;
}

Keine Ahnung wieso, dass nicht funktioniert? :smile:
Aber wenn IDs keine Gute Idee für Suchmaschinen sind, was ist eine bessere?

Danke

Lg,
Chris

Moin,

ja rapper war meine Kreation, da ich nicht gewusst hab, dass
es einen sematischen Sinn machen soll.

Hmmm…das mit der Semantik hat jetzt nichts mit Deinem Tippfehler zu tun :smile:

Was wäre eine gute Semantik?

Du weißt nicht,l was man unter Semantik versteht, oder? Hast auch nicht mal bei Wikipedia oder Google geguckt, was das heißt?

Unter „Semantik“ versteht man die logische Bedeutung, die Du mit HTML Deinem Inhalt vermittelst. Da geht es darum, eine Überschrift auch als Überschrift ( ff) auszuzeichnen, sonst ist der Inhalt eben keine Überschrift. Insbesondere Suchmaschinen und Vorlesebrowser können das sonst nicht interpretieren bzw. machen es falsch.
Das Tag z.B. definiert eine Gruppe. Eine Gruppe umfasst in der Regel mindestens zwei andere Elemente, sonst muss man nichts zu einer Gruppe zusammenfassen. Auch einfach Text in ein zu schreiben ist semantisch nicht korrekt, zumindest wäre passender, wenn es nicht noch was anderes gibt (z.B. bei Adressen im Impressum).

Oder was wäre eine bessere Idee als Klasse oder IDs für die
Layoutangabe?

Das hast Du falsch verstanden. IDs und Klassen sind gut. Klassen für Definitionen, die häufiger vorkommen, IDs sind eindeutig im Dokument.
Aber wenn Du Layoutinformationen wie „left“ oder „green“ in die Namen integrierst, dann trennst Du nicht Inhalt von Layout. Stell Dir vor, Du nennst eine Klasse „green“ und willst die Textfarbe irgendwann mal von grün auf gelb ändern. Dann hast Du den Salat. Wahrscheinlich hast Du anschließend eine Klasse „green“, die einen gelben Text definiert - nicht gerade logisch. Oder Du machst Dir die Mühe in Deinen zu dem Zeitpunkt hunderten von Seiten die insgesamt 1000 Vorkommen der Klasse zu suchen und zu ändern.

Besser ist es, semantische Namen zu vergeben. Nicht „left“ für eine Sidebar, die links steht (die soll vielleicht mal rechts stehen!), sondern „Sidebar“. Das beschreibt das Element richtig.

„Trennung von Inhalt und Layout“ habe ich erwähnt. Kein Begriff? Kann man sicher auch googlen :smile: Da geht es darum, Inhalt immer strikt von Layout zu trennen. Also HTML und Inhalt in die eine Datei, niemals Layout mit HTML machen, und alles Layout und Aussehen in das externe Stylesheet. Dann kann man ein Layout komplett ändern und muss dafür nur eine einzige Datei - das Stylesheet - austauschen, selbst wenn die Site schon hundert Seiten umfasst.

Was das heißt, kann man schon an den verschiedenen Layouts bei http://www.csszengarden.com/ sehen, die alle auf dem SELBEN HTML-Code aufbauen - unter strikter Trennung von Inhalt und Layout.

Ich würd dir gerne einen Link geben, leider ist sie noch nicht
online.

Schlechte Antwort - dann musst Du sie online stellen! :wink:

Es ist erst meine erste Homepage und deshalb möchte ich mich
zuerst mitn Fertigstellen beschäftigen bevor ich mich mitn
Uploaden beschäftige.

Macht halt Fehlersuche durch Dritte schwieriger.
Wenn Du noch keinen Webspace hast und noch nicht dafür zahlen willst, solange Du noch lernst, es gibt auch kostenlosen Webspace, den man für solche Zwecke nutzen kann. Arcor hat da glaub ich auch was.

Das Problem ist, dass die Element right und left sich im
bodyArea befinden und nicht links und rechts davon. Selbst
wenn ich float und width definiere.

Und das soll so nicht sein? Dann darfst Du die Elemente auch im HTML-Code nicht innerhalb des Elements bodyArea setzen. Damit definierst Du ja, dass die Elemente INNERHALB des Elternelements liegen und sich damit natürlich auf die eine oder andere Weise überlappen.
Wenn Du Dein #left, #bodyArea und #right nebeneinander setzen willst, dann floate left und right und setze im HTML-Code zuerst left und right, dann bodyArea in der Reihenfolge rein und verschachtele sie nicht.

Aber wenn IDs keine Gute Idee für Suchmaschinen sind, was ist
eine bessere?

Suchmaschinen wollen den Inhalt analysieren und verstehen. Mit IDs und Klassen hat das nichts zu tun (s.o.). Aber was soll das für ein Dokument sein, wenn es beispielsweise keine Überschrift und keinen Textabsatz enthält (weil der Autor alles in gepackt hat)? Das würde ich als Suchmaschine sehr schlecht bewerten.

Liebe Grüße,
-Efchen

Hallo,

danke, jetzt weiß ich auch was du mit Semantik meinst. Hab vorher nur kurz in wikipedia nachgesehen und den ersten Absatz gelesen. Leider hab ich keine konkreten Bsp gefunden. Deshalb hab ich anfangs nicht gewusst was du damit meinst.

Also wenn ich die Bereiche SidebarI und SidebarII nenne, erkennen die Suchmaschinen es besser?
Oder ist es besser so Sidebar1, Sidebar2?

In Fehler hab ich jetzt auch gefunden. der ursprüngliche wrapper hat mir nur einen Rand gemacht und deshalb sind die Sidebars immer drinnen gewesen.
Jetzt hab ich es mit einen zusätzlichen wrapper gelöst.

Danke für deine Erklärung.

Lg,
Chris

Moin,

Also wenn ich die Bereiche SidebarI und SidebarII nenne,
erkennen die Suchmaschinen es besser?

Nö. Die Suchmaschinen werden sich nicht für Deine Benennnung interessieren. Diese ist nur für Dich. Ich hab doch bestimmt das Beispiel mit dem Ändern des Layouts, dem Verschieben eines Elements namens „rechts“ nach links gegeben?

Jetzt hab ich es mit einen zusätzlichen wrapper gelöst.

div-Suppe?

Danke für deine Erklärung.

Gerne.

Viele Grüße,
-Efchen