valentin
Here to stay
|
Ich bin gerade dabei mich nach langer Zeit wieder einmal ein bißchen mit HTML herumzuspielen und hab dabei ein typisches N00b Problem.( ) Und zwar mit der Tabelle. Sorry, aber ich weiß das es ein Problem ist das durch meine Unfähigkeit bedingt ist. Und zwar zerreisst der IE irgendwie das Layout während Mozilla alles korrekt darstellt. IE: Mozilla: Code: <body>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td colspan=2 style='background-image:
url("images/topthin.gif")'><IMG alt="" border=0 height=70
src="images\logo.gif" width=320></TD>
</TR>
<tr>
<td valign="top" width="160" height="35"><IMG alt="" border=0 height=35
src="images\bspacer.gif" width=160></TD>
<td rowspan=9>
<h1>Computer</h1>
<h2>Meine Systeme</h2>
<h3>Main</h3>
<p>Mainboard: Elitegroup ECS-K7S6A (SiS745) mit Sound onboard<br><br>
Prozessor: AMD Athlon XP 1600+ AGOIA<br><br>
Kühler: Wasserkühlung (Zern Delta, Aquacomputer Airplex Evo
240, Eheim 1048...; mehr Info folgt...)<br><br>
RAM: 768MB DDR-SDRAM (512MB + 256MB)<br><br>
Grafikkarte: Chaintech GeForce3 Ti200 64MB DDR-SDRAM<br><br>
Festplatte: Maxtor D540X 60GB (5400 U/min.)<br><br>
Brenner: Lite-On LTR-48246S (48x/24x/48x CD-R/CD-RW/CD-ROM)<br><br>
DVD-ROM: Toshiba SD-M1612<br><br>
Netzwerk: Surecom EP-320X-R1 10/100Mbit<br><br>
Sonstiges: Teac Floppy, 250W CWT Netzteil
</p>
<h3>Mobile</h3>
<p>Sony Vaio PCG-FX502 (Mobile Duron 1000, 256MB SDRAM, 14.1" TFT)</p>
<p><a href="index.html">Zurück zu Hauptseite</a></p>
</TD>
</TR>
<tr>
<td valign="top" width="160" style="height:30px"><a
href="index.html"><IMG alt="" border=0 height=30
src="images\home.gif" width=160></a></TD>
</TR>
<tr>
<td valign="top" width="160" style="height:7px"><IMG
alt="" border=0 height=7
src="images\contspacer.gif" width=160></TD>
</TR>
<tr>
<td valign="top" width="160" style="height:30px"><a
href="index.html"><IMG alt="" border=0 height=30
src="images\computer.gif" width=160></a></TD>
</TR>
<tr>
<td valign="top" width="160" style="height:7px"><IMG
alt="" border=0 height=7
src="images\contspacer.gif" width=160></TD>
</TR>
<tr>
<td valign="top" width="160" style="height:30px"><a
href="index.html"><IMG alt="" border=0 height=30
src="images\links.gif" width=160></a></TD>
</TR>
<tr>
<td valign="top" width="160" style="height:35px"><IMG
alt="" border=0 height=35
src="images\bspacer.gif" width=160></TD>
</TR>
<tr>
<td valign="top" width="160" style="height:30px"><a
href="index.html"><IMG alt="" border=0 height=30
src="images\kontakt.gif" width=160></a></TD>
</TR>
<tr>
<td valign="top" width="160"><IMG alt="" border=0 height=1
src="images\blank.gif" width=1></TD>
</TR>
</TABLE>
</body>
Wo liegt das Problem, was ist zuviel, was zu wenig?
Bearbeitet von valentin am 16.06.2003, 21:09
|
XeroXs
doh
|
Aus eigener Erfahrung weiß ich, dass es mit verbundenen Zellen immer wieder zu Problemen kommt bei verschiedenen Browsern (funktioniert imma nur teilweise... vor allem die ausrichtung nervt da ziemlich)
deshalb: einfach nicht verbinden, sondern mit 'table im table' arbeiten.... gilt in dem fall vor allem für dein menü.. machst einfach 2 spalten, in einer einen eigenen table NUR mit dem menü, in der anderen der content-Table..
|
atrox
in fairy dust... I trust!
|
ja, ist eine typische angewohnheit von IE und NS4, zellen-dimensionen noch großzügiger anzupassen als vorgesehen - gerade bei verbundzellen. einer der workarounds ist es, unsichtbar oben und ganz links eine reihe bzw spalte mit zellen anzulegen, die die richtigen höhe bzw breite fix eingetragen haben, um kein resizen mehr zu ermöglichen, aber keinen sichtbaren content enthalten.
|
Rektal
Here to stay
|
Hi, ich wuerde das mit weniger HTML und mehr CSS machen. Das macht das ganze uebersichtlicher und weniger Fehleranfaellig. Du brauchst z.b. nicht fuer jedes IMG eine eigene Zeile in der Tabelle. Du kannst diese, da sie alle die gleiche Breite haben, einfach im Code hintereinanderschreiben. Bilder verhalten sich wie Text und brechen um, d.h. nach jedem Bild wird automatisch in die naechste Zeile gebrochen. Du kannst auch die Blind-spacer eliminieren (weniger bilder laden) und mit CSS machen. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
<style type="text/css">
/* Kein border um verlinkte images */
a img {
border: 0;
}
#top {
background-image: url(images/topthin.gif);
}
#left {
width: 160px;
vertical-align: top;
}
#right {
vertical-align: top;
}
#left img {
padding-bottom: 7px;
}
#left img.first {
padding-top: 30px;
}
</style>
</html>
<body>
<div id="top">
<img src="" width="320" height="70">
</div>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td id="left">
<a href=""><img class="first" width="160" height="30" src="images/home.gif" alt="Home"></a>
<a href=""><img width="160" height="30" src="images/computer.gif" alt="Computer"></a>
<a href=""><img width="160" height="30" src="images/links.gif" alt="Links"></a>
<a href=""><img width="160" height="30" src="images/kontakt.gif" alt="Kontakt"></a>
</td>
<td id="right">
<!-- Content -->
<h1>Computer</h1>
<h2>Meine Systeme</h2>
<h3>Main</h3>
<p>Mainboard: Elitegroup ECS-K7S6A (SiS745) mit Sound onboard<br><br>
Prozessor: AMD Athlon XP 1600+ AGOIA<br><br>
Kühler: Wasserkühlung (Zern Delta, Aquacomputer Airplex Evo 240, Eheim 1048...; mehr Info folgt...)<br><br>
RAM: 768MB DDR-SDRAM (512MB + 256MB)<br><br>
Grafikkarte: Chaintech GeForce3 Ti200 64MB DDR-SDRAM<br><br>
Festplatte: Maxtor D540X 60GB (5400 U/min.)<br><br>
Brenner: Lite-On LTR-48246S (48x/24x/48x CD-R/CD-RW/CD-ROM)<br><br>
DVD-ROM: Toshiba SD-M1612<br><br>
Netzwerk: Surecom EP-320X-R1 10/100Mbit<br><br>
Sonstiges: Teac Floppy, 250W CWT Netzteil
</p>
<h3>Mobile</h3>
<p>Sony Vaio PCG-FX502 (Mobile Duron 1000, 256MB SDRAM, 14.1" TFT)</p>
<p><a href="index.html">Zurück zu Hauptseite</a></p>
</td>
</tr>
</table>
</body>
</html>
|
alexsb
hmm
|
ja, vorschlag von rectal ist gut, ganz besonders würd ich auch drauf schaun dass du wenigstens html 4.1 transitional schreibst, also keine tags in blockbuchstaben, keine Unmengen an attribute im <td> ....
|
Rektal
Here to stay
|
Noch besser ist natuerlich eine Variante ohne Tabelle. Tabellen sind ja primaer gedacht fuer tabellarische Daten (Excel-style eben) und nicht fuer Layout. Layoutierung ("Presentation") ist primaer die Aufgabe von CSS: (die Hintergrundfarben sind zur Veranschaulichung der Bereiche) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
<style type="text/css">
body {
margin: 0;
padding: 0;
}
a img {
border: 0;
}
#top {
background: url(images/topthin.gif) red;
height: 70px;
}
#navigation {
position: absolute;
top: 70px;
left: 10px;
width: 160px;
background-color: blue;
}
#navigation img {
margin-bottom: 7px;
}
#navigation img.first {
margin-top: 30px;
}
#content {
padding: 1em;
margin-left: 180px;
background-color: green;
}
h1 {
margin: 0;
padding-top: 0.5em;
}
</style>
</html>
<body>
<div id="top"><img src="" width="320" height="70" alt="Logo"></div>
<div id="navigation">
<a href=""><img class="first" width="160" height="30" src="" alt="Home"></a>
<a href=""><img width="160" height="30" src="" alt="Computer"></a>
<a href=""><img width="160" height="30" src="" alt="Links"></a>
<a href=""><img width="160" height="30" src="" alt="Kontakt"></a>
</div>
<div id="content">
<!-- Content -->
<h1>Computer</h1>
<h2>Meine Systeme</h2>
<h3>Main</h3>
<p>Mainboard: Elitegroup ECS-K7S6A (SiS745) mit Sound onboard<br><br>
Prozessor: AMD Athlon XP 1600+ AGOIA<br><br>
Kühler: Wasserkühlung (Zern Delta, Aquacomputer Airplex Evo 240, Eheim 1048...; mehr Info folgt...)<br><br>
RAM: 768MB DDR-SDRAM (512MB + 256MB)<br><br>
Grafikkarte: Chaintech GeForce3 Ti200 64MB DDR-SDRAM<br><br>
Festplatte: Maxtor D540X 60GB (5400 U/min.)<br><br>
Brenner: Lite-On LTR-48246S (48x/24x/48x CD-R/CD-RW/CD-ROM)<br><br>
DVD-ROM: Toshiba SD-M1612<br><br>
Netzwerk: Surecom EP-320X-R1 10/100Mbit<br><br>
Sonstiges: Teac Floppy, 250W CWT Netzteil
</p>
<h3>Mobile</h3>
<p>Sony Vaio PCG-FX502 (Mobile Duron 1000, 256MB SDRAM, 14.1" TFT)</p>
<p><a href="index.html">Zurück zu Hauptseite</a></p>
</div>
</body>
</html>
Ganz perfekt ist es natuerlich noch immer nicht. Navigationen sollten zwecks Accessability mit Listen gemacht werden. Per CSS kann man die Listen so stylen das sie nicht als solche zu erkennen sind, fuegen dem Dokument aber eine bessere Struktur hinzu. CSS fuer Liste #navigation ul, #navigation li {
list-style: none;
margin: 0;
padding: 0;
}
HTML fuer Liste <div id="navigation">
<ul>
<li><a href=""><img class="first" width="160" height="30" src="" alt="Home"></a></li>
<li><a href=""><img width="160" height="30" src="" alt="Computer"></a></li>
<li><a href=""><img width="160" height="30" src="" alt="Links"></a></li>
<li><a href=""><img width="160" height="30" src="" alt="Kontakt"></a></li>
</ul>
</div>
Aendert nichts am Layout der Seite aber eine bessere, logische Dokumentstruktur.
|
alexsb
hmm
|
Noch besser ist natuerlich eine Variante ohne Tabelle. Tabellen sind ja primaer gedacht fuer tabellarische Daten (Excel-style eben) und nicht fuer Layout. Layoutierung ("Presentation") ist primaer die Aufgabe von CSS: Ich habe ja schon oft gehört das man Tabellen nicht zum layouten nehmen soll, dazu ein paar Fragen: *) Wie layoute ich sonst komplexere Strukturen (wie z.b. Oc.at) *) Was ist eigentlich an tabellen schlecht?
|
erlgrey
formerly known as der~erl
|
oc.at = tables+css
was soll an tabellen schlecht sein?
|
alexsb
hmm
|
nicht an tabellen ansich sondern an tabellen als Layout instrument. ich habs bisher immer so gemacht das das grobe layout mit tabellen gemacht wird und die details (genaue positionen, farben usw. ) mit css das auf oc.at die threads usw tabellen sind ist eh klar, aber die Navigation z.B. ...
|
kleinerChemiker
Here to stay
|
schlecht ist nix dran, nur waren sie dafür gedacht aber die meisten nutzen heute schon tables für layout
MIK
|
Rektal
Here to stay
|
Zern Modded NPPS Svr Raddi
Idle: 34-36°C Load: 37-40°C
Im Prinzip genau so mittels CSS. OC.AT besteht ja eigentlich nur aus Foren, und da ist es auch nicht falsch Tabellen zu nehmen da das ganze ja tabellarische Daten sind (threads, posts, user, etc). Navigation und restlichen content bereich einfach mit CSS layouten. *) Was ist eigentlich an tabellen schlecht? Zum einen das rendern von Tabellen fuer Browser. Tabellen zu berechnen sind aufwendiger als Inhalt der mit CSS praesentiert wird. Bei einer Tabelle machts keinen Unterschied, aber wenn du anfaengst wie wild Tabellen zu verschachteln (wie auch hier ein Vorschlag in die Richtung war) das ist das a) mehr Arbeit das Layout fuer die Browser zu dimensionieren und b) wird auch dein Code unuebersichtlicher. Dann waere da noch der Punkt des ungeschraenkten Zugriffes. Menschen mit besonderen Beduerfnissen (aka. "Behinderungen") verwenden nicht unbedingt einen grafischen Browser sondern andere Geraete. Div. Geraete koennen z.B. keine Tabellen richtig darstellen oder sie praesentieren sie dem jeweiligen Benutzer falsch (z.b. Lynx kann bis heut keine Tabellen; anderen consolen browser schon. Trotzdem hat sich lynx etabliert). Der Vorteil von CSS ist auch, das du nicht unbedingt den Inhalt des Dolumentes so anlegen musst, wie du ihn in einem grafischen Browser praesentieren willst. Z.B. kannst du ohne weiteren den DIV "navigation" nach ganz unten ruecken. Oder ganz oben. Bei einer Tabelle hast du die Flexibilitaet nicht. Du kannst nicht einfach die Navigationslinks "wegschieben". Wenn du meine Code Beispiele nimmst, dann das CSS in ein externes Stylesheet auslagers wird schon alleine zum Bearbeiten die Seite um ein zigfaches Uebersichtlicher und du kannst dich viel mehr auf die Struktur konzentrieren. HTML ist eine "Mark up"-Language; sie gibt dem Dokument nur die Struktur. CSS ist fuer die Praesentation zustaendig. Wenn du CSS auslagerst in eine externe Datei (macht man ja meistens) dann werden die Seiten um einiges schlanker. Du kannst den Webserver so konfigurieren das die CSS dokumente gecachet werden. Die aendern sich nicht; nur der Inhalt des "Mark up" -> schnellere Ladezeiten. CSS ist nicht die Loesung fuer alle Probleme. Aber bei diesem Beispiel kann man sie einfach wegeliminieren (die Tabellen).
Bearbeitet von Rektal am 16.06.2003, 08:59 (was wegeliminieren? Tabellen hab ich gemeint)
|
Rektal
Here to stay
|
schlecht ist nix dran, nur waren sie dafür gedacht aber die meisten nutzen heute schon tables für layout
MIK Das kommt vom Netscape4. Der konnte es damals nicht besser. Da hat natuerlich jeder mit Tables fuer Layout gearbeitet. Dadurch wurden alle Tutorials mit Tabellen fuer Layout geschrieben und somit bekommen die, die NS4 noch nicht direkt erlebt haben, diese altlasten Information weitergereicht. Das die 5er Browsergeneration CSS schon so weit unterstuetzt das man auf Tabellen fuer Layout verzichten kann, ist den wenigsten klar. IMHO geht unter den Professionellen Designern der Trend zu CSS Layouts ueber (Prominentes Beispiel: http://www.wired.com ). Googlen nach "CSS layout" bringt einige Fruechte an den Tag.
|
alexsb
hmm
|
ok, ich verwende jetzt konkret eine Seite (index.php) mach da eine Tabelle mit vier Zellen und includiere in die jeweiligen td's nur andere Dateien. Damit ist alles was ich in den anderen Dateien mach schon mal fix einigeramssen richtig positioniert. Sollte ich das anders machen?
|
Rektal
Here to stay
|
ok, ich verwende jetzt konkret eine Seite (index.php) mach da eine Tabelle mit vier Zellen und includiere in die jeweiligen td's nur andere Dateien. Damit ist alles was ich in den anderen Dateien mach schon mal fix einigeramssen richtig positioniert. Sollte ich das anders machen? Da gibts keine schwarz/weiss Antwort wie ja/nein. Wenn du die Dinge nutzen moechtest wie sie urspruenglich gedacht waren, oder wenns dich einfach interessiert, oder wenn es eine Anforderung deiner Arbeit ist (z.B. Seiten WAI-Konform zu erstellen), dann vielleicht. Nehmen wir OC.at. Indexseite (main.php) hat nach kurzem Ueberfleigen 24 tables bei mir; teilweise verschachtelt. Wenn da jetzt 24 mal Daten darzustellen waeren, die tabellarisch sind, wuerd ich sagen "Ok, paszt". Da ich mit einem groben Blick aber nur 5 Bereiche sehe wo wirklich Daten tabellarisch Praesentiert werden, wuerd ich sagen da "koennte" man wegoptimieren (praktisch wahrscheinlich net wegen der Ineinandergreifenden Software usw.) und mehr in reinen Mark-Up/CSS zerlegen. Forensoftware sind aber meist so komplex das das zerlegen (nachtraeglich) nicht lustig ist. OC.AT wuerd ich nicht auf Teufel komm raus umkrempeln. Vor allem nicht im hachinein. Anderes Beispiel: http://www.eltern-bildung.at/ . Ok, sicher nicht was der durchschnittliche OC.AT user ansurft Ich wette aber fuer die meisten ists auf den ersten Blick ein klarer Fall fuer Tables. Tatsache ist das fuers Layout mit zwei Ausnahmen kein Table verwendet wird. Eine Ausnahme sind die Formulare, die andere das dortige Forum.
|
alexsb
hmm
|
ok, meine Seite ist einem Forum sehr ähnlich, sie beinhaltet auch eines, aber hauptsächlich stellt sie interaktiv Listen von Filmen zur Verfügung. Villeicht überleg ichs mir noc und werd ein wenig umbaun, ich hab bisher eh nur das rechenwerk, ohen eine einzige Farbe oder ein einziges Bild
|