Nichts liegt mir ferner, als jemanden zu verwirren. Aber wie es am Anfang eines Lernprozesses nunmal ist, kriegt man viel um die Ohren gehauen und kann nur mit wenig etwas anfangen. Man muss halt kleine Schritte gehen.
Also würde ich das Menü als Liste definieren? Öhm hab ich auch gemacht, fällt mir da ein. Aber ich frage mich, wie ich dann den eigentlichen Content meiner Website rechts daneben ausgeben lasse. Muss ich dann um die Liste ein float machen oder wie??
Ja, ein Menü zeichnet man für gewöhnlich als Liste aus, weil eine Liste das ist, was ein Menü am besten beschreibt. Ein eigenes Tag für Menüs gibt es bislang noch nicht in (X)HTML. Wie das dann am Bildschirm dargestellt wird, ist für die bloße Auszeichnung zunächst völlig irrelevant.
Wenn Du nun Block-Elemente nebeneinander ausgeben lassen willst, musst Du eines davon floaten und ihm eine Breite mitgeben. Dann wird das gefloatete Element aus dem Textfluss genommen und das nachfolgende Element „unterhalb“ des gefloateten Elements gelegt, an genau die Position, an der auch das gefloatete Element steht. Um das besser zu verstehen, lege Dir zwei Block-Elemente an, gib dem einen ein float und gib dann beiden einen Rahmen oder eine Hintergrundfarbe. Dann siehst Du es.
Ok, und meinen Banner aus dem Head füge ich also einfach als ein. Quasi so:
Ich kenne Dein Banner nicht. Ich habe nur theoretisch gesprochen. Es gibt Banner, die man als Hintergrundgrafik einfügt, und solche, die man als einfügt. Es kommt schlicht darauf an, ob das Banner Content enthält oder ob es nur zur Zierde da ist. Content kommt in die HTML-Datei, Zierde ins Stylesheet.
Aber muss ich dann nicht die CSS-Anweisungen direkt in dieses Tag schreiben? Wenn ich denn in der CSS-Datei quasi eine allgemeine Angabe zu img machen würde, würden ja dann alle Bilder bspw. in der entsprechenden Größe ausgegeben werden.
Zur „Trennung von Inhalt und Layout“ gehört auch, dass man alle CSS-Angaben immer in ein externes Stylesheet schreibt. Natürlich gibt es drei Möglichkeiten, Styles zu schreiben, aber nur, wenn man alles ins externe Stylesheet schreibt, hat man eine echte Trennung von Inhalt und Layout.
Das Problem das Du hast ist, dass Du anscheinend nicht weißt, was Klassen und IDs sind. Du kannst Elementen eine eindeutige ID zuweisen, oder eine Klasse (die im Gegensatz zur ID mehrmals vorkommen kann). Das sieht in HTML dann so aus:
<h1 id="Header">
<img class="klasse1" ... />
<p class="klasse1">
Über CSS kannst Du dann diese IDs bzw. Klassen selektieren. Eine ID wird immer mit einem „#“ davor, eine Klasse mit einem „.“ davor angesprochen, also so:
h1#Header { font-size:1.5em; }
.klasse1 { float:left; }
h2#Header { /* ist im HTML-Code nicht definiert */ }
p#klasse1 { /* Ist auch nicht definiert, die ID "klasse1" }
Die ersten beiden Zeilen passen zum HTML-Code darüber, die beiden letzten sind nirgendwo definiert, haben also keine Auswirkung.
Schreibt man denn nun CSS direkt mit in die HTML-Datei rein oder eben doch in eine eigene Datei??
Wenn Du alles in ein externes Stylesheet schreibst, hat das den Vorteil, dass alle Deine Angaben zu Layout und Design in einer Datei (oder auch mehreren) stehen, die dann nach einmaligem Laden im Browsercache abgelegt werden und somit nicht mehr vom Server geladen werden müssen. Außerdem kannst Du, wenn Du alles in Stylesheets hast, jederzeit das Aussehen ALLER Seiten auf einmal ändern, indem Du nur eine Datei (das Stylesheet) änderst. So kannst Du einen kompletten Redesign machen, indem Du nur das Stylesheet austauschst. Siehe dazu auch css Zen Garden: The Beauty in CSS Design, das ist ein gutes Beispiel dafür, alle diese hunderte von Seiten haben den SELBEN HTML-Code, nur jeweils ein anderes Stylesheet.
Man man man… kopfschüttel Da ist man als Anfänger(in) glücklich, dass das ganze einigermaßen gescheit aussieht und der html- und css-Validator 0 Fehler ausspuckt und dann das… Das wirft einen in seinem Selbstbewusstsein, schon so gut voran gekommen zu sein, wieder um Lichtjahre zurück, finde ich. :???: seufz
Lass DIch doch nicht so schnell entmutigen. Webseiten erstellen ist ein Handwerk wie jedes andere auch. Es ist zwar richtig, dass man schnell einsteigen kann, und die Mehrheit der Menschen damit eher was anfangen kann, als mit anderen handwerklichen Aufgaben, Tapezieren, Dachdecken, Sanitärinstallationen usw. Aber Tatsache ist halt auch, dass eine Website normal nicht nur für sich selbst ist, sondern für andere. Und daher sollte das Ziel auch sein, eine möglichst hohe Benutzbarkeit zu erreichen.
Das, was ich Dir jetzt hier mitgeteilt habe, sind die Vorgehensweisen, wenn man es perfekt machen will. Wenn Du z.B. kein externes Stylesheet machst, kannst Du trotzdem ein Redesign deiner Site machen. Das dauert dann halt nur sagen wir 3 Wochen im Gegensatz zu 2 Stunden, wenn Du alles in einem Stylesheet hast.
Wenn Du allerdings diese Vorgehensweisen schon jetzt lernst, baust Du schon jetzt qualitativ hochwertigere Sites und das kann für Dich und für Deine Besucher nur Vorteile bedeuten!
Eine Basis aus validen Code ist schonmal gut. Denn sonst ist auch die Darstellung am Ende reine Glücksache. Semantisch korrekt sollte der Code sein, damit Suchmaschinen ihn sinnvoll interpretieren können, und er barrierefrei ist. Ein semantisch guter Code kann auch von Clients interpretiert werden, die nichts visuell darstellen. Und die von mir beschriebene Vorgehensweise hilft Dir dabei, Deinen Arbeitsaufwand zu minimieren und das Ergebnis zu optimieren.
Ich wollte Dich weder deprimieren, noch Dir Dein Selbstbewusstsein rauben.
Ich finde es aber gut, dass Du Dich dafür zu interessieren scheinst und Dir Gedanken machst, das sind gute Voraussetzungen, dass Du das verstehst und anzuwenden lernen kannst. Manch anderen interessiert das nicht die Bohne. Also auch mal ein Lob für Dein Interesse!
Ich beantworte gerne auch alle weiteren Fragen!
-Efchen