Sven Rautenberg: Extern oder im Quellcode?

Beitrag lesen

Moin!

Natürlich ist die Aufgabe, ein bestehendes System umzustellen, anspruchsvoller als etwas ganz neu zu entwickeln, weil man sich bestimmte Dinge einfach ersparen würde, aber dass es so komplex sein würde, die Seite in allen Browsern halbwegs auf einen Nenner zu bringen, habe ich nicht einkalkuliert. Vor allem der vielgerühmte Effekt, dass die Layouts sich flexibler unterschiedlichen Fenstergrößen anzupassen, ist schwerer zu erreichen, als ich dachte. Wenn man alles einfach mit absolut-positionierten DIVs auf den Bildschirm nagelt, kann man es ja auch gleich bei Tabellen lasse, oder?

Da hast du durchaus Recht.

Bedenke, welche Elemente du mit CSS formatierst: Im Prinzip hast du immer Blöcke vorliegen. Diese Blöcke sind auf der Seite untereinander gestapelt und nehmen immer die volle zur Verfügung stehende Breite ein. Von _was_ das die Breite ist, kann sich abwechseln, generell ist es erstmal die Breite des Browserfensters. Wenn du ein Menü-DIV absolut positioniert und in der Breite festgelegt hast, sind die Blöcke darin eben so breit wie das Menü.

Im Prinzip ist auch das Layouten mit CSS genau wie das Layouten mit Tabellen ein Suchen nach den richtigen Blöcken - nur sehen die Blöcke jetzt anders aus.

Obendrein kann man Blöcke dann auch in enthaltenen Blöcken links oder rechts fließen lassen (float:left/right), was nochmal eine weitere Ebene von Möglichkeiten eröffnet.

Insgesamt macht man mit CSS-Layouts den Seiteninhalt wieder mehr so, wie man HTML 2.0 mal geschrieben hat: Ganz viele semantisch wertvolle <H1>, <P>, <UL> etc. als Block, und fast gar keine Tabellen (außer es handelt sich um Tabellendaten). Die Anordnung hingegen sieht dann nicht so langweilig aus, wie das typische <H1>-Times-groß-fett-Layout von anno dazumal, sondern die Blöcke werden schon durcheinandergewürfelt - nein, eigentlich werden sie an die passende Stelle im Browserfenster verschoben. Sowas klappt eigentlich so gut, dass man nur noch für Netscape 4 eine Browserweiche benötigt, weil der z.B. nicht vom rechten Rand aus positionieren kann. Ergo erhält der eine Formatierung mit fester Bildschirmauflösung (was dann erlaubt, auch Elemente am rechten Rand von links aus auszurichten), während alle besseren Browser dann dynamisch agieren können.

Na ja, vielleicht fehlt mir einfach noch die Übung, aber die klare Verbesserung, die einige hier im Forum seit längerem predigen, sehe ich noch nicht.

Wenn du erstmal Übung hast, dann siehst du die Verbesserung. :)

Plötzlich übernimmt der Mozilla eine in einer zentralen CSS-Datei angegebene Listenformatierung nicht, die alle anderen Brauser klaglos schlucken und nimmt die Systemschrift und so weiter. Saublöde Effekte. Überhaupt die Listen, überhaupt die Positionierungen, das sind ja Urzeiteffekte wie dereinst der berüchtigte Browserversatz, und auch die Komplexität von verschachtelten CSS-Fromatdateien mit eingebauten diversen Browserweichen find ich irre hoch.

Ich habe eigentlich noch keine solchen Bekanntschaften gemacht. Naja, mag sein, dass du CSS ein wenig ultrastark ausnutzen willst, obwohl du noch keine großen Erfahrungen gemacht hast. Vielleicht lasse ich gewisse Dinge einfach weg, weil ich sie entweder nicht kenne, oder weiß, dass sie Probleme verursachen.

Na ja, macht euch nur lustig, die ihr den Frust vor einem Jahr durchgestanden habt, und es heute drauf habt, aber ob es für ein Großprojekt wirklich sinnvoll ist, seine Seiten komplett auf diese Weise vorzuhalten, wage ich zu bezweifeln. Wie sollten ein Assistent und ein Tenplate für den Selfraum aussehen, wenn dahinter ein ganzer Wahn von verschachtelten CSS-Dateien plus interne Browserdifferenzierungen hängen müsste?

Der Assistent wäre sehr einfach. Er müßte lediglich das oder die vorhandenen Stylesheets mit einbinden, ansonsten könnte er sich strikt auf semantisch wertvolle Auszeichnung des darzustellenden Contents beschränken. Es müßte also kein Formatierungs-Assistent geschrieben werden, sondern eigentlich nur ein "Mach wertvolles HTML"-Assistent. Änderungen in den zentralen Stylesheets wirken sich dann sofort auf alle Seiten aus - und das ist dann die wirkliche Stärke von CSS (naja, eine davon). Allerdings ist nicht davon auszugehen, dass das Gesicht von SelfHTML sich in der nächsten Zeit nennenswert verändern würde.

Huach, aus lauter Ärger hab ich eine der neuen Seiten in 10 Minuten auf die traditionelle Weise mit Tabellen positioniert. Zeitaufwand: 10 Minuten und alles sitzt in allen Browsern an der gleichen Stelle. Mal sehen, wie lange ich für die Realisierung mit CSS-Positionierung  brauche *g*

Machst Du mir eher Mut, Michael, dass ich es noch hinkriege, oder ist es wirklich so nervig?

Nein, es ist nicht so nervig. Natürlich, wenn du ein Tabellen-Design als Vorlage hast, ist es wesentlich einfacher, daraus eine HTML-Tabelle zu machen. Aber wenn du ein vernünftiges, modernes Design hast, dann kannst du wahlweise eine Tabelle draus machen, oder mit CSS auf die neue Art rangehen. Übung macht den Meister.

- Sven Rautenberg

--
"Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)