HTML Div Container

Grugeschu

Lt. Commander
Registriert
Juli 2006
Beiträge
1.855
Hallo ich habe ein kleines Problem und finde keine Lösung außer mit Tabellen zu arbeiten, was ich eigentlich aber nicht möchte aus verschiedenen Gründen.
Ich schreib mir grad das Layout für eine Datenbank und wollte den inhalt in die Box Content geben lassen. die von den conten_ Boxen umrahmt wird.

Wenn ich jetzt in den Container Content reinschreibe macht der keinen textumbruch und zerhaut mir das Design.
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" type="text/css" href="style.css">
<title>Design</title>
<body>
</body>
</head>
</html>


<div id="wrapper">
	<div id="banner"></div>
	<div id="navi">
		<a href="index.html" class="navileiste">
		<img name="home"  border="0" width="60" height="20">Home</a><!src="img/button.png">
	</div>
	<div id="content_o"></div>
	<div id="content_l"><br></div>
	<div id="content_r"><br></div>
		<div id="content">
			Bla Fasel  Inhaltsdasfdgsdsdgjsdjkhsdjksdjhsdjhsdfjkhsfdjk
			sfdjksfdhjfsdjfsdjkfdsjkhfdhdsfjksfdjsdsdfhgsdfhs
			fdhjfsdhsfdhfshfdshfdshfdshsfdhsfdhfdshsfdhsfdzufsd  gsdfhgfdhgf 
	</div>

	<div id="content_u"></div>
</div>

<div id="info"></div>

Die CSS Datei sieht so aus

Code:
#wrapper{
	width: 800px;
	margin: auto;
	background-color: #FF0000;
	}

#banner	{
	height: 120px;
	width: 800px;
	background-color: #F00200;
	background-image: url('img/banner.png');
	/*padding: 5px;*/
	}

#navi	{
	height: 20px;
	width:800px;
	background-color: #444444;
	background-image: url('img/navi.png');
	background-repeat: repeat-x;
	}

#content_o{
	width: 800px;
	height: 20px;
	background-color: #222222;
	background-image: url('img/rahmeno.png');
	}

#content_l{
	width: 20px;
	background-color: #455643;
	float: left;
	background-image: url('img/rahmenl.png');
	}

#content{
	width: 780px;
	background-color: #FFFFF1;
	float: none;	
}

#content_r{
	width: 20px;
	background-color: #455643;
	float: right;
	background-image: url('img/rahmenr.png');
	}

#content_u{
	width: 800px;
	height: 20px;
	background-color: #222222;
	background-image: url('img/rahmenu.png');
	}

Der Geschlossene Rahmen wird von Text gebrochen und das sieht leider so aus
bildschirmfoto-png.128167


Wie kann ich dafür sorgen das ein normaler automatischer Textumbruch erfolgt und die Grenzen der Div Container nicht von dem Text überschritten werden ohne Tabellen zu nutzen?
 

Anhänge

  • Bildschirmfoto.png
    Bildschirmfoto.png
    33 KB · Aufrufe: 405
Zuletzt bearbeitet:
Du musst dich von dem Gedanken verabschieden, dass du mit DIVs sowas wie "Tabellenspalten" machen kannst. Es gibt genug Möglichkeiten, dass es genauso aussieht und ich würde das auch mit DIVs machen, aber das Problem ist folgendes:

Wenn die content-Box durch den Text in der Höhe wächst, dann betrifft das die beiden Boxen content_l und content_r überhaupt nicht, sie werden nicht in der Höhe wachsen. Und weil das eben der Fall ist, fließt der Text in der content-Box unter dem content_l weiter. Das Problem kannst du beheben, indem du die content-Box mit margin versiehst, also in der CSS:

Code:
#content{
	margin:0 20px 0 20px;
	width: 780px;
	background-color: #FFFFF1;
	float: none;	
}

Nun hast du allerdings weiterhin das Problem, dass der linke und rechte Rahmen nicht weiter nach unten gezeichnet wird, weil eben content_l und _r nicht in die Höhe mitwachsen. Das könntest du zum Beispiel umgehen, indem du auf content_l und content_r komplett verzichtest und dafür die eigentliche content-Box mit einem Hintergrundbild versiehst. Dann muss die content-Box aber ein padding haben, und kein margin.

Ich empfehle dir nochmal genaues Studium des CSS Box-Models. Und versuche nicht mehr in "Tabellen" zu denken. Ich weiß wie schwierig das sein kann, wenn man jahrelang mit Tabellen gearbeitet hat :)
 
Zuletzt bearbeitet:
Ok vielen Dank für die Hilfe.

Werde mir dann wohl ein neues Konzept erarbeiten müssen.
 
Es ist im übrigen logisch, dass so ein Quark wie:

Inhaltsdasfdgsdsdgjsdjkhsdjksdjhsdjhsdfjkhsfdjksfdjksfdhjfsdjfsdjkfdsjkhfdhdsfjksfdjsdsdfhgsdfhs

... nicht umbrochen wird. Da ist keinerlei Leerzeichen, ergo kann der Browser auch nicht umbrechen und der Text geht aus der Box hinaus.

Sofern niemand so einen Müll in deine Datenbank einträgt (kann man mit PHP wunderbar vermeiden), wird auch keine deiner DIVs überragt werden.
 
Wenn du zwei Elemente, die nebeneinander liegen, automatisch gleich hoch sind, dann musst und solltest du tabellen verwenden.
Es gibt keinen Grund hier keine Tabellen zu verwenden, denn schliesslich ist es ja auch eine Tabelle. Zwar eine recht einfache, aber es ist eine Tabelle, denn zwei Spalten haben untereinander eine Abhängigkeit. Das mit divs umzusetzen wäre ein größerer Fehler als keine Tabelle zu verwenden.

Oder halt auch wie gesagt sich ein anderes Layout auszudenken, aber das halte ich für eine noch schlechtere Lösung aufgrund von einer dummen und falschen Idiolgie das Layout zu ändern.
 
Wenn du zwei Elemente, die nebeneinander liegen, automatisch gleich hoch sind, dann musst und solltest du tabellen verwenden.
Das ist so gesehen nicht richtig.

Tabellen sind nur aus einem einzigen Grund zu Verwenden - für die tabellarische Darstellung von Daten.

Zu Layoutzwecken sind Tabellen nicht da - was aber nicht heißt, das man anstelle davon jetzt duzende DIVs benutzen sollte.

Sinnvoll ist semantisches (X)HTML, mehr dazu steht z.B. hier: http://www.vorsprungdurchwebstandards.de/theory/retro-coding/
 
@PW-toXic: An dieser Stelle eine Tabelle zu verwenden, nur weil der Rand in die Höhe wachsen soll, ist semantisch totaler Quark. Alles, was er haben wollte, ist eine Box mit einem Bild als Rand. Dafür reicht ein einzelnes DIV völlig aus, wenn man ein bisschen mit der Hintergrundgrafik trickst.
 
1. Heißt es background-position ;)

2. Wenn du schon die Kurzweise benutzt, dann kannst du die Position auch darin notieren

background: #farbe url(dasbild.jpg) top right repeat-y;
 
1. Das heisst Kurzschreibweise

2. natürlich kann man die benutzen, aber man möchte es evtl. nicht ;)
Ich trenn diese beiden Sachen immer gerne - ist aber natürlich geschmackssache.


Tabellen sind nur aus einem einzigen Grund zu Verwenden - für die tabellarische Darstellung von Daten.

Zu Layoutzwecken sind Tabellen nicht da
falsch

http://www.flownet.com/ron/css-rant.html
Wobei dort noch lange nicht alles gesagt ist, was man dazu sagen müsste.
 
Zuletzt bearbeitet:
Tabellen sind nur aus einem einzigen Grund zu Verwenden - für die tabellarische Darstellung von Daten.

Zu Layoutzwecken sind Tabellen nicht da

Absolut korrekt. Tabellen zu Layoutzwecken zu verwenden ist aus vielen Gründen schlecht. Die wichtigsten Gründe sind aber, dass dafür der table-Tag nicht gemacht wurde und die Seite dadurch ihre semantische Struktur verliert. Dadurch verbaut man sich jeden Ansatz auf Barrierefreiheit. Man muss sich vorstellen, dass es für Sehbehinderte Menschen Software gibt, die die Seite dem Benutzer vorliest. Dafür ist es extrem wichtig, dass eine Tabelle eben wirklich eine Tabelle ist, dass ein Paragraph als solcher gekennzeichnet ist (<p>), dass Überschriften mit entsprechenden Tags versehen werden (<h1>), anstatt sie einfach fett und groß zu machen.... Aber das führt nun zu weit.

Fakt: Tabelle nur für tabellarischen Darstellung von Daten verwenden.
 
falsch

http://www.flownet.com/ron/css-rant.html
Wobei dort noch lange nicht alles gesagt ist, was man dazu sagen müsste.
Nur weil dieser eine Typ keine Ahnung hat, nur weil er CSS für "schwer" hält, er keine Ahnung von semantischen HTML hat und anscheinend denkt, er hätte die Weisheit gefressen ... muss das nicht heißen, dass er auch recht hat.

Schaut doch einfach mal die Kommentare zu seinen "Weisheiten" an:

Yes, you are an idiot. Trying to say there are so many CSS tutorials so CSS is bad is like saying every computer language is bad because there are so many tutorials there, too. You also show that you are not a very knowledgeable CSS coder. I think you would do away with hammers because rifles make better holes in walls
;)
 
OK dann bitte gib mir jetzt mal einen inhaltlichen Grund, warum der typ keine Ahnung hat. Der "typ" hat schliesslich auch mit tatsachen um sich geworfen und nicht mit "ihr habt alle keine Ahnung"

Ich werf dann mal einfach in den Raum:
Ihr beide seid unbelehrbare Dogmatiker, die von Entwicklung (z.B. stichwort Zielgruppe) kaum eine Ahnung haben, und dem CSS hype hinterher gelaufen sind. (So wie ich früher auch)

Ich benutze selbst keine tables für layout (z.b. pw-toxic.de), aber trotzdem ist diese Dogmatik, die ihr beide hier an den Tag legt schlicht und einfach falsch und schlecht.
 
Der Artikel ist totaler Blödsinn. Er hat zwar Gründe, aber die sind weit hergeholt, denn im Grunde geht es ihm nur darum, dass es mit Tabellen einfach bequemer ist, wenn man nicht viel Ahnung hat.

Das mit CSS ist kein "Hype". Es geht um die Trennung von Layout und Design, was viele Vorteile bietet. Ich habe bis vor ungefähr 2 Jahren selber noch Tabellen zum Layouten benutzt (Schande über mich), weil ich das mit dem Box-Modell lange Zeit nicht wirklich verstanden habe. Das Problem war auch vor allem, dass damals die Browser CSS nicht korrekt interpretiert haben, insbesondere die verschiedenen CSS-"display"-Eigenschaften.

Ich denke ein zusätzliches Problem ist auch die Angewohnheit, dass die Leute Webseiten haben wollen, die wie Tabellen aussehen. Das hat wohl eher geschichtliche Gründe und ist schade, denn dann kommen diese Probleme überhaupt erst auf. Viele Webdesigner denken immernoch in Tabellen und dann kommen automatisch Gedanken auf wie "Wie kann ich diese Tabellenform mit DIVs darstellen". Das Problem hat der Autor des verlinkten Artikels offensichtlich auch. Es macht die Sache wesentlich einfacher, wenn man direkt in Boxen mit ihren Möglichkeiten denkt.

Wenn du meinen Grund nochmal hören willst: Tabellen für Layoutzwecke sind semantisch grober Unfug. Dadurch verbaust du dir unter anderem direkt jeden Ansatz auf Barrierefreiheit. Es gibt Software für sehbehinderte Menschen, die dem Benutzer die Website vorliest. Dafür ist es extrem wichtig, dass Paragraphen (<p>), Überschriften (<h1>), Listen (<ul>) und eben auch Tabellen (!) als solche gekennzeichnet sind und nicht für irgendwelche Layoutzwecke missbraucht werden. Es geht hier um die Semantik des Quelltextes. Das ist nur ein Grund von vielen, aber wie ich finde ein sehr wichtiger.
 
Der ist für mich schon dadurch disqualifiziert, dass er es nötig hat um auf seine "just five lines of CSS" beim Tabellenlayout zu kommen mehrere Eigenschaften in eine Zeile schreibt und beim Boxmodel nicht.

Insgesamt einfach nur großer Schwachsinn. Lern einmal richtig CSS und es richtig einzusetzen und gut ist.
 
@Backslash du bist nen Held, denn vllt lernt man was und hat mal eine Frage?
 
Wie ich diese CSS Dogmatiker liebe die nicht den Hauch einer Ahnung von Softwareentwicklung haben aber Anderen vorschreiben wollen wie man zu arbeiten hat.

Adagio schrieb:
Nö, aber dafür eine schöne, unsemantische DIV Suppe hier und da ... und mal davon abgesehen: http://validator.w3.org/check?verbose=1&uri=http://pw-toxic.de/
Eure Argumente sind sowas von fehl am Platz, da kann man einfach nurnoch weinen.

Aber naja, wenn hier jemand ohne Lesen und Denken zu wollen cool sein möchte indem er einen Validator Link verschickt, dem muss man einfach richtig antworten:
http://validator.w3.org/check?uri=http://pw-toxic.de/blog/46
HUCH? Wie kann das sein? Keine Errors? Hat da der böse PW-toXic nachträglich seinen Quellcode verbessert?
Nein ich habe rein garnichts am Quellcode verbessert.
Diese 276 Errors auf der Startseite meiner Webseite sind immernoch da. Aber hast du dir eigetnlich auch kurz(!) angesehn, was für Fehler das sind? Diese Fehler rühren einzig und allein daher, dass mittels copy&paste den Inhalt des Forums in mein Blog kopiert wurde, was zur Folge hat, dass dort sehr falscher HTML code drin steht, der all diese Folgefehler verursacht.
Und jetzt verlangst du von mir, dass ich meine Webseite, nach CSS Fehlern durchsuche und diese löse, obwohl meine Webseite nurnoch für pragmatische Sachen und zum Testen genutzt wird?
Davon abgesehn: Ich sagte zwar in meinem Artikel, dass ich auf das rumgedive auf meiner Webseite keinen Orden verdient habe, aber ich habe mir das jetzt mal etwas genauer angesehn, und frage mich, wo hier eine große Div suppe ist?
Gut ich hab kein p Tag verwendet. Und weiter?

Egal - hauptsache mal Anggriffsmöglchkeiten gegen jemanden, der Tabellen verteidigt, suchen.
Und sich dann auch noch über DIV-Suppen beschweren, aber Layout DIVs verherrlichen.
 
Zuletzt bearbeitet:
Hier kannst du ja den großen Weisen spielen, aber in einem anderen Forum, wo es um nichts anderes als XHTML und CSS geht, konntest du keinen Fuß fassen.

Erspar mir also deine Kommentare ;)
 
Zurück
Oben