PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellenlayout Background - wie 100% höhe?


Blade II
2006-03-04, 11:40:14
Hallo.

Im moment sitze ich an folgendem Design:
http://uzumakinaruto.speedmaker06.de/warcraft/design.html

Mein Problem ist jetzt nur, dass im Internet Explorer der linke und rechte Rahmen nicht 100%ige Höhe hat und somit werden die beiden Bilder nicht nach oben bzw. nach unten gesetzt. Somit ist der Rest des Rahmen einfach schwarz.

Was mache ich falsch?

darph
2006-03-04, 12:04:40
Öhm... css: background-repeat:repeat-y;

Und du solltest dir vielleicht überlegen, auf HTML strict und reines CSS umzusteigen. border="0"... da rollen sich einem ja die Zehennägel hoch ;(

zeckensack
2006-03-05, 20:38:30
OT ...Und du solltest dir vielleicht überlegen, auf HTML strict und reines CSS umzusteigen.Ungelogen: ich wollte gerade einen Fred erstellen in dem ich frage wie man mit CSS layoutet. Bzw eigentlich wollte ich fragen was eigentlich so falsch daran ist, ein (einfaches) Layout über eine Tabelle zu machen, weil ich im Moment keine Probleme erkennen kann. Und trotzdem wird überall davon abgeraten (zB selfhtml).
Ich benutze btw für den kleinen Popel auch schon CSS, aber eben nicht für's Layout ...
Kuckst du Anhang.

Coda
2006-03-05, 21:17:54
Was daran böse ist, ist dass du später den Content nicht mehr vom Layout trennen kannst.

Kucksu hier: http://www.csszengarden.com/
Ein HTML, "zehntausend" verschiedene Designs über CSS.

darph
2006-03-05, 22:50:33
OT ...Ungelogen: ich wollte gerade einen Fred erstellen in dem ich frage wie man mit CSS layoutet. Bzw eigentlich wollte ich fragen was eigentlich so falsch daran ist, ein (einfaches) Layout über eine Tabelle zu machen, weil ich im Moment keine Probleme erkennen kann. Und trotzdem wird überall davon abgeraten (zB selfhtml).
Ich benutze btw für den kleinen Popel auch schon CSS, aber eben nicht für's Layout ...
Kuckst du Anhang.
Es ging mir weniger um die Tabelle. Das alleine... naja. Okay, Glaubensfrage.

Es ging mir mehr um die ganzen non-strict Attribute... das HTML Dokument hat eigentlich nur Logik zu enthalten. Das kann zum Beispiel die Tatsache sein, daß etwas in einer Tabelle präsentiert wird. Das ist Logik. Content. Das versteht und verarbeitet sogar ein Textbrowser wie lynx (jetzt kommt nebenher auch ins Spiel, welche Probleme Tabellenlayout haben kann. Stell dir vor du parst eine HTML Datei um ihren Inhalt zu indizieren und dabei erstellt der Parser aus den Elementen Objekte. Auf Einmal hast du eine Tabellenzelle, in der das Inhaltsverzeichnis steht... aber egal. Das nur am Rande...). Ob diese Tabelle jetzt in einem grafischen Browser einen Rand anzeigt oder nicht - das ist Layout. Das ist eine Frage der Präsentation. Das ist für die graphische Darstellung vielleicht wichtig, für die inhaltliche aber nicht. Ergo gehört sowas zu den Stylesheets. (Und mit mit border-width:0px; ja auch nicht sonderlich kompliziert zu bewerkstelligen).

zeckensack
2006-03-10, 21:35:37
*ausbuddel*
*OTbrabbel*
Es ging mir weniger um die Tabelle. Das alleine... naja. Okay, Glaubensfrage.

Es ging mir mehr um die ganzen non-strict Attribute... das HTML Dokument hat eigentlich nur Logik zu enthalten. Das kann zum Beispiel die Tatsache sein, daß etwas in einer Tabelle präsentiert wird. Das ist Logik. Content. Das versteht und verarbeitet sogar ein Textbrowser wie lynx (jetzt kommt nebenher auch ins Spiel, welche Probleme Tabellenlayout haben kann. Stell dir vor du parst eine HTML Datei um ihren Inhalt zu indizieren und dabei erstellt der Parser aus den Elementen Objekte. Auf Einmal hast du eine Tabellenzelle, in der das Inhaltsverzeichnis steht... aber egal. Das nur am Rande...). Ob diese Tabelle jetzt in einem grafischen Browser einen Rand anzeigt oder nicht - das ist Layout. Das ist eine Frage der Präsentation. Das ist für die graphische Darstellung vielleicht wichtig, für die inhaltliche aber nicht. Ergo gehört sowas zu den Stylesheets. (Und mit mit border-width:0px; ja auch nicht sonderlich kompliziert zu bewerkstelligen).Ich verstehe was du mir sagen willst, aber das brauchst du mir nicht zu sagen :)
Ich sehe einfach keinen Unterschied darin, weder im Arbeitsaufwand noch in der Semantik, ob ich "Navigation links" und "Content rechts" etc jetzt mit einer Tabelle trenne, oder mit floatenden Layern und Boxen. Bzw ich sehe schon einen Unterschied in der Mächtigkeit, der "Content rechts" könnte zB die "Navigation links" elegant umfließen, dies möchte ich aber für mein Design nicht nutzen.

Die Eigenschaften, grafischerdings, dieser Elemente habe ich auch in CSS-Klassen verpackt, die ich dann eben den Zellen meiner Tabelle zuweise. Meine Tabelle per se, so wie sie im HTML-Teil notiert ist, gibt trotzdem nur die Struktur wieder, so wie von dir postuliert, dh eben dass die Navigation links sein soll, und der "Content" der Seite rechts daneben.

Bei beiden Möglichkeiten, CSS und Tabellen, muss ich einfach grundlegende Strukturelemente in alle HTML-Dateien einfügen. Bei CSS geht's ja auch nicht ohne, man muss ja erstmal divs und spans haben, um Klassenzugehörigkeit definieren zu können. Bei der Tabelle sind's halt tds und trs. Praktisch ist beides gleichermaßen stures Copy&Paste, und Vergesslichkeit rächt sich auch bei beiden Ansätzen gleichermaßen durch Inkonsistenz.

PS: Mein Tabellenkrempel (mit einem gesunden Schuss CSS), an dem ich diese Woche gebastelt habe sieht mit dem Opera-User-Stylesheet "Emulate text browser" ganz entzückend aus.

TheRealTentacle
2006-03-12, 12:33:20
Sacht mal wie bekomme ich eine Tabelle auf mindestens 100% Höhe, wenn ich das richtig verstanden habe ging es hier nur um den Hintergrund ..

darph
2006-03-12, 12:43:52
Sacht mal wie bekomme ich eine Tabelle auf mindestens 100% Höhe, wenn ich das richtig verstanden habe ging es hier nur um den Hintergrund ..
Hundert Prozent in Bezug auf was? :)

TheRealTentacle
2006-03-12, 12:45:04
Browserhöhe ^^

Es geht nur darum quasi das Design nicht einfach mitten im Fenster enden zu lassen. Eine Grafik würde auch gehen, aber ich finde das wäre keine optimale Lösung.

darph
2006-03-12, 12:51:10
also <body><table id="lala">...</table></body>

Du mußt beachten, daß jede Box einen Rahmen, einen Innenabstand sowie einen Außenabstand haben. Dumm ist, daß IE und FF diese etwas unterschiedlich interpretieren. FF macht es w3c konform, der IE macht es meiner Meinung nach eleganter.

Jedenfalls mußt du den Abstand für den body, der ja auch eine Box ist, eliminieren, aber eben auch den Außenabstand der Tabelle.


body {
margin: 0px; //Außen; oder auch nur für margin-top, -bottom
padding: 0px; //Innen; dito
border: 0px;
}

#lala {
margin: 0px;
border: 0px;
height: 100% // relativ zum Elternelement.
}


Ich hab das jetzt net getestet, so sollte es aber thun.

TheRealTentacle
2006-03-12, 13:15:27
Danke erstmal :). Leider bring es nicht den gewollten Effekt:


body
{
font-family: Segoe UI, Arial, Helvetica, sans-serif;
font-size: 10pt;
font-weight: normal;
text-decoration: none;
font-style: normal;
color: #000000;
background-color: #e9FFe9;
margin: 0px; //Außen; oder auch nur für margin-top, -bottom
padding: 0px; //Innen; dito
border: 0px;
}

table.site
{
font-align: left;
font-size: 10pt;
color: #003000;
width: 700px;
vertical-align: top;
align: top;
margin-left: auto;
margin-right: auto;
border: 1px dotted Green;
margin-bottom: 0px;
margin-top: 0px;
height: 100% // relativ zum Elternelement.;
border-left-width: 1px;
border-right-width: 1px;
border-bottom-width: 0px;
border-top: 0px;
}

Getestet mit IE7 Beta 2 und FF 1.501

TheRealTentacle
2006-03-12, 13:20:13
/Edit

Also, es gibt keine Möglichkeit den IE7 und FF Fehlerfrei dazu zu überreden die Box bis zum Browserrand nach unten zu ziehen. (Bei Body 100% und mit Position rumgespielt)

Beide stänkern mit den Scrollbalken. Ich hab es mit allen Position Tagsprobiert, bei dem einen gehts mit dem FF und bei den anderen gehts mit IE7.

Ich habe mir jetzt überlegt, ob ich 2 Style Files mache, mit Browserweiche, das wäre aber höchst unkonfortabel.

darph
2006-03-12, 13:55:20
Hm... wenn ich im Sytlesheet des body "height: 100%" eintrage, sagt der IE "Einhundert prozent relativ zum Elternelement, das ist window.document". Der FF sagt "da gibt's nyx drüber, das ignoriere ich". Body ist also unabhängig von der Fenstergröße nur so groß, wie es das letzte im Body Element erlaubt. Hm.


Sort of dirty hack:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title> </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- fix the FOUC -->
<script type="text/javascript">

function fix() {
document.getElementById("eins").style.height = window.innerHeight + "px;";
}
</script>
<style type="text/css" media="screen">
body {
margin: 0px;
padding: 0px;
border: 0px;
height: 100%;
}

table#eins {
margin: auto;
margin-top: 0px;
margin-bottom: 0px;
border: 0px solid red;
height:99%;
}

td#drei {
}

td#vier {
width: 150px;
height: 100%;
border: 1px solid green;
}

</style>

</head>

<body>
<table id="eins">
<tr id="zwei">
<td id="drei">links</td>
<td id="vier">rechts
Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
sed diam nonummy nibh euismod tincidunt ut laoreet dolore
magna aliquam erat volutpat. Ut wisi enim ad minim veniam,
quis nostrud exercitation ulliam corper suscipit lobortis
nisl ut aliquip ex ea commodo consequat. Duis autem veleum
iriure dolor in hendrerit in vulputate velit esse molestie
consequat, vel willum lunombro dolore eu feugiat nulla
facilisis at vero eros et accumsan et iusto odio dignissim
qui blandit praesent luptatum zzril delenit augue duis
dolore te feugait nulla facilisi. Li Europan lingues es
membres del sam familie.
</td>
</tr>
</table>

<script type="text/javascript">fix();</script>
</body>
</html>

So sieht's in beiden Browsern so ziemlich gleich aus. Ohne Scrollbalken, btw.


Aber so nebenbei: überleg dir, ob du das wirklich haben willst. Ich würd's nicht machen. Du limitierst dich damit nur selbst. Bzw. schränks den Benutzer ein. Du hast keinerlei Ahnung, wie hoch das Browserfenster des Benutzers ist. Und du weißt im Vorraus oft auch nicht, wieviel Text am Ende in die Seite gepackt wird. Die Chance, daß der Text aus der Seite raus fließt, ist groß, insofern machst du dir die Arbeit eventuell für nichts. Dein Design sollte so funktionieren, daß es von keinerlei Einstellungen oder Größen abhängig ist (okay, 400 pixel Fensterbreite kann man mittlerweile vorraussetzen, aber das war's auch schon).