# "Wozu ist denn CSS / CSS2 gut" Dumme Frage?



## 0x7F800000 (8. Sep 2008)

Hallo allerseits!
(Ich bin immer noch blutiger Anfänger in sachen webdesign, daran hat sich seit dem letzten Sommer nichts geändert  bitte nicht wundern: zeitmangel :autsch: )

"Wozu soll denn bitte schön CSS überhaupt gut sein?"
Diese Frage habe ich mir neulich wieder mal gestellt, als ich mir angeschaut habe, was die netten Leute in irgendwelchen anderen Foren alles vorschlagen, um einen "Rechteck mit runden Ecken" mithilfe von XHTML / CSS zu realisieren. Etwa den eigentlichen Inhalt in die Mitte einer Tabelle zu setzen, und die restlichen Zellen mit passenden Bildchen zu füllen, oder den eigentlichen Inhalt mit siebenunddreizig weiteren sinnfreien <div>-Blöcken zu umschließen, und diese dann mit CSS passend auszumalen.

Beides kommt mir äußerst gruselig vor. Da verstehe ich überhaupt den Sinn des gesamten unternehmens mit struktur-aussehen Trennung nicht. CSS 1-2 ist anscheinend einfach dermaßen schwach, dass die leute zu irgendwelchen finsteren hacks aus markup-salat mit vielen logisch unsinnigen elementen greifen, um ihrer Seite das gewünschte Aussehen zu verpassen. Folge: valides aber sinnfreies XML: das war doch so nicht geplant oder?

Da ich in den nächsten paar wochen beabsichtige, eine primitive webapplikation zu fabrizieren, würde ich deswegen gerne wissen, wie man solche Probleme "normalerweise" löst:
Soll ich ein Tupel ( CSS , Layout-XHTML-Datei ) als einheit betrachten, und den gesamten Inhalt in eine Inhalt-XHTML-Datei auslagern, und das ganze dann mit irgendeinem Servlet/JSP zusammenkleben und zum client schicken? Dann Kriegt der Client zwar immer noch denselben unverständlichen markup-wirrwarr, aber zumindest bleibts auf dem Server getrennt. 

Oder was wäre eine einfache, aber dennoch akzeptable Lösung, mit der ich relativ schnell eine "Hello-World"-mäßige webseite erstellen könnte?

Die oberflächliche Suche in dem web brachte mir zum thema leider nichts was wesentlich weiter ging als _" * und <font> sind böse"**   :autsch:

Wäre für jegliche Tipps/sinnvolle Links/Buchempfehlungen sehr dankbar.  :###*_


----------



## Gelöschtes Mitglied 6946 (8. Sep 2008)

Runde Ecken bekommt man auch mit weniger als 37 Divs hin  Hängt nur immer ganz konkret davon ab, wo diese sollen sein, ob das Element flexibel ist und so weiter. Aber für CSS 3 sind runde Ecken mit Hilfe von Border geplant, Firefox hat da ab Version 2 sogar schon eine eigene Variante. Aber darum gehts ja nicht.

Prinzipiell ist es schon besser, HTML und CSS zu verwenden. Die HTML-Dateien werden im Allgemeinen schlanker und übersichtlicher, als wenn Tabellen-Layouts verwendet werden oder Styles mit Markup vermischt wird, die Datei ist somit auch schneller geladen (wenn das CSS-Gedöns in eine CSS-Datei ausgelagert wird, die die meisten Browser zwischenspeichern) und vielleicht spielt ja auch eine gewissen Barrierefreiheit eine Rolle und was SEO angeht hat man mit CSS statt Tabellen evtl. auch hie und da seine Vorteile.

Es wird aber immer irgendwelche Dinge geben, die nicht mit einem einzigen Element und ein bisschen CSS geklärt werden können. Runde Ecken für ein in alle Richtungen flexibles Element z.B. braucht mindestens 4 Elemente, die aber auch durchaus sinnvoll sein können, z.B. wenn in dieser "Box" als erstes Element ohnehin eine Überschrift drin ist (dann hätte man schonmal 2 Elemente). Insgesamt wird man aber weniger Verschachtelung brauchen, als mit Tabellen - sofern da jemand am Werk ist, der halbwegs Ahnung von dem hat, was er tut.

Im Zweifelsfall kann man immer SelfHTML empfehlen, da stehen die Grundlagen drin und auch als Nachschlagewerk für Zwischendurch nutze ich das gerne. Sonst kannst auch mal "Einführung in XHTML, CSS und Webdesign lesen, das ist vielleicht auch noch interessant.


----------



## 0x7F800000 (8. Sep 2008)

Dass es nicht unbedingt 37 zusätzliche divs sein müssen war mir schon bewusst 
CSS3 wird schon wesentlich mächtiger, aber bis es der letzte drecksbrowser unterstützt will ich nicht unbedingt warten. 


> Styles mit Markup vermischt


Um Himmels willen, auf derart bescheuerte Idee würde ich sicherlich nicht kommen, keine Angst 
Das "Online-Buch" vom Herrn Jendryschik habe ich praktisch vollständig durchgelesen und die tipps, welche die trennung von CSS und XHTML betreffen, sehr ernst genommen. Aber darum geht's mir gerade nicht. 

Ich frage mich eher, _wie trenne ich "layout-struktur-xhtml" von dem "inhalts-struktur-xhtml"?_



> Es wird aber immer irgendwelche Dinge geben, die nicht mit einem einzigen Element und ein bisschen CSS geklärt werden können. Runde Ecken für ein in alle Richtungen flexibles Element z.B. braucht mindestens 4 Elemente


Dagegen ist ja prinzipiell nichts einzuwenden. Wenn ich ein Komplexes Layout beschreiben will, muss ich das eben aufwendig mit vielen tags machen, weil der komplexe Sachverhalt sich eben nicht mit einem CSS-Wörtchen beschreiben lässt. Wenn ich diese ganze layout-strukturierungs tags in eine externe Datei etwa "layout.xhtml" auslagere und von dem eigentlichen Inhalt (text, formeln, bilder, applets) etwa "content.xhtml" komplett getrennt halte, dann ist die Welt doch voll in Ordnung. 

Ich muss also den eigentlichen Inhalt aus der Inhalts-datei auslesen, diese irgendwie mit der layout-struktur verflechten, und das alles dann an den client schicken, samt css und dem ganzen Krempel. Wie stelle ich sowas am einfachsten an?



edit: Falls ich eine ähnliche Frage im SelfHTML forum stelle, zählt es als crossposting? Die Leute sehen das vielleicht aus einer anderen Perspektive, vielleicht können sie irgendetwas anderes vorschlagen? :roll:


----------



## 0x7F800000 (9. Sep 2008)

Okay, hab die diskussion auf SelfHTML forum verschoben, dort ist sie wohl wesentlich angebrachter


----------



## Gelöschtes Mitglied 6946 (9. Sep 2008)

Wo du so von einer extra Inhalts-XHTML-Datei sprichst, da muss ich unweigerlich an XML und XSLT denken. Du könntest dir z.B. eine XML-Struktur ausdenken, in der wirklich nu die puren Daten stehen und diese dann per XSLT in eine XHTML-Struktur überführen, die du dann zur Darstellung bringst. Oder so ähnlich... Naja whatever, hoffentlich wird dir im SelfHTML-Forum geholfen


----------



## 0x7F800000 (9. Sep 2008)

XSLT! Ha! Ich glaube, das war das Stichwort!   Habe darüber bisher nur im zusammenhang mit Prolog gehört, weil es angeblich auch irgendsoeine lustige logische Programmiersprache sein soll, habe mir aber noch nie die mühe gegeben, durchzulesen, wozu das eigentlich da ist  Aber jetzt sieht es für mich so aus, als ob es _genau das_ ist, wonach ich gesucht habe! Danke für den Tipp, ich werde mir das heute genauer anschauen :toll:  :toll: 
[im selfhtml hat es übrigens keiner vorgeschlagen, da hat es sich also doch gelohnt, hier nachzufragen  :bae: ]

boah ey, dieses XSLT wird sogar von browsern verarbeitet, das ist doch einfach nur megageil! Da brauche ich also nur minimale Datenmenge rüberzuschicken, das kommt beim client an, und wird dort zu validen XML verwurschtet  klasse.


----------



## maki (9. Sep 2008)

> [im selfhtml hat es übrigens keiner vorgeschlagen, da hat es sich also doch gelohnt, hier nachzufragen bae.gif ]


Sehr komisch, die erste Antwort die du dort erhalten hast lautet:


> @@0x7F800000:
> 
> »» Inhalt<->Darstellung     XHTML<->CSS
> »» ist zwar wünschenswert, aber scheinbar bisher nicht direkt möglich.
> ...


----------



## 0x7F800000 (9. Sep 2008)

@maki: hehe, nein, bei SelfHTML landen wegen der "klassischen Forenansicht" die jungsten beiträge Ganz oben. Die Antwort mit XSLT ist da nicht mal vor zwei Stunden aufgetaucht, das ist die allerletzte Antwort.  Davor kamen hauptsächlich Vorschläge mit finsteren CSS-:before-:after-Hacks, sowie Ideen, die xhtml struktur mit JavaScript aufzublähen.

Aber gut, somit wäre meine Frage umfassend beantwortet. Danke an Alle.  :toll:  :lol:


----------



## maki (9. Sep 2008)

>>  hehe, nein, bei SelfHTML landen wegen der "klassischen Forenansicht" die jungsten beiträge Ganz oben.

Achso


----------



## 0x7F800000 (10. Sep 2008)

Dürfte ich vielleicht doch noch eine Frage hinterherwerfen...

Gibt es beim super tollen offiziellen w3c validator wirklich keine Möglichkeit, xml mit SYSTEM-dtd  also

```
<!DOCTYPE rootelement SYSTEM ... >
```
zu validieren, oder habe ich keine Augen im Kopf? 
Wo soll man da die dtd denn hochladen? :shock: :bahnhof: 

bzw: wieso geht es denn hier: http://www.xmlvalidation.com/ und beim w3c validator nicht?? ???:L
(der von xmlvalidation.com fragt nochmal nach der dtd, wenn er online keine findet)


----------

