HTML und CSS
Daniel Beuter
Mannheimer Abendakademie, 7. Dezember 2012
Copyright: D. Beuter
Seminar-Inhalte
Grundlagen Internet/Browser
HTML
Grundstruktur
Document Type Definition
Tags
CSS
Einbindung
Selektoren
Klassen
Formatierungen
Ablauf Heute
Seminar 13:00 Uhr bis 15:00 Uhr
PAUSE 15:00 Uhr bis 15:15 Uhr
Seminar 15:15 Uhr bis ca. 16:45 Uhr
Grundlagen Internet – Datenfluss
Server
- Bereitstellung
von
Informationen
PC/Laptop
Internet
- Datenaustausch
- Domainverwaltung
- Abruf von Daten
- Interpretation
- Darstellung
Grundlagen Internet – Darstellung einer
Internetseite
1. Datenabruf einer Internetseite
(z.B. www.dmkommunikation.de)
PC/Laptop
- Abruf von Daten
- Interpretation
- Darstellung
2. Interpretation durch einen Browser
(z.B. Firefox, Internet Explorer, Google
Chrome)
3. Darstellung auf dem Bildschirm
Was leistet der Browser?
Interpretiert HTML und CSS
Erstellt aus Fließtext eine übersichtliche Darstellung
Was leistet der Browser? - Einschränkungen
ACHTUNG!
Standards sind nicht durchgehend umgesetzt
Jeder Browser hat seine Besonderheiten
Vor allem im Bereich CSS ist Vorsicht geboten
Firefox/Chrome
Internet Explorer
Was ist HTML
HTML -> Hyper Text Markup Language
Die Hypertext Markup Language (HTML;
deutsch Hypertext-Auszeichnungssprache) ist eine
textbasierte Auszeichnungssprache zur Strukturierung von
Inhalten wie Texten, Bildern und Hyperlinks in
Dokumenten.
Quelle:
http://de.wikipedia.org/wiki/Hypertext_Markup_Language
Wie programmiert man eine Internetseite?
Man benötigt lediglich einen Text-Editor
Auf jedem System vorhanden
Beispiel
HTML - Grundlagen
HTML besteht aus Tags:
<b>gefetteter Text</b>
Tags können verschachtelt werden
<b><i>gefetteter und kursiver Text</i></b>
Verschachtelung muss immer in der richtigen Reihenfolge
geschehen.
Was zuletzt geöffnet wurde, muss zuerst geschlossen
werden
<b>fetter, <i>kursiver</i></b> Text
<b>fetter, <i>kursiver</b></i> Text
Verschiedene Tags
Quelltextstruktur
<html>,<head>,<body> etc
Tags zur Textformatierung
<b>,<i>,<strong> etc
Layout-Tags
<table>
<ol>,<ul>
Meta-Tags
<meta name=“abc“ content=“test“ />
Quelltextstruktur
Jede Seite besteht mindestens aus diesen Teilen
Bereiche eines HTML-Quelltextes
<head> bietet Platz für
Allgemeine Informationen wie Sprache, Autor, Lizenz, Inhalt,
Zusammenfassung
Titel der Seite
Importieren von externen Dateien (CSS und JavaScript)
<body> bietet Platz für
den Inhalt der Seite
Document Type Definition
Wichtiges Detail, DTD steht vor dem öffnenden HTML-Tag
DTD gibt an, mit welcher Syntax das Dokument erstellt
wurde
Standards werden vom W3C herausgegeben und verwaltet
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Transitional sollte gewählt werden
Strict ist sehr „hart“ mit Fehlern
Welche Formatierungen werden benötigt?
Fett
Farbig
Kursiv
tiefgestellt/hochgestellt
andere Schriftart
Ausrichtung
Schriftgröße
Tabellen
Absatz
Überschrift
Bilder
Umbruch
Überschriften
werden mit <h1> bis <h6> gekennzeichnet
<h1> sollte nur einmal pro Seite vorkommen
<h1> ist Überschrift der obersten Ebene
<h6> ist Überschrift der untersten Ebene
Überschriften nicht für Textformatierung verwenden, da
für Strukturierung der Seite vorgesehen
Beispiel Überschriften
Abschnitt
Abschnitte werden mit <p> für „Paragraph“ eingeleitet und
geschlossen
Automatischer Zeilenumbruch zwischen Abschnitten
Leerzeichen und Zeilenumbrüche werden im HTMLQuelltext ignoriert
Abschnitt: Beispiel
Abschnitt: Beispiel
Textausrichtung im Absatz
Mit dem Schlüsselwort align
align=“center“ – mittig
align=“right“ - rechts
align=“left“ - links
Einfacher Umbruch
<br/>
eines der wenigen Elemente, die ohne ein End-Tag
auskommen
Trennlinie
<hr/>
auch ohne Endtag
Erzeugt eine Trennlinie über die gesamte Breite
Schriftformatierung
<font>
Wird genutzt, um Schriftgröße, Farbe und Schriftart
festzulegen
Textfarbe kann per Name oder per Hex-Code angegeben
werden
Schriftarten mit Vorsicht einsetzen
color=green
align=center
Schriftformatierung
Kursiv, Fett, Unterstrichen, Durchgestrichen, Hoch
und Tief
Für oft benötigte Elemente gibt es kurze Schreibweisen
Listen
es gibt sortierte und unsortierte Listen
sortierte Listen haben eine Nummerierung
1,2,3 (Standard)
a,b,c
I,II,III
unsortierte Listen haben Aufzählungszeichen
square (Quadrat)
circle (nicht ausgefüllter Kreis)
disc (ausgefüllter Kreis, Scheibe)
Listen
Einleitung der Liste mittels <ul> oder <ol>
<ul> unsorted list – unsortierte Liste
<ol> ordered list – sortierte Liste
Listeneinträge mit <li>
Listen können verschachtelt werden, so können
Hierarchien abgebildet werden.
Listen - Beispiele
Listen – Beispiele
Listen - Beispiele
Listen
Bei nummerierten Listen kann der Wert des aktuellen
Eintrags angegeben werden.
<li value=“8“>Eintrag mit Nummer 8</li>
Arten von nummerierten Listen:
<ol type=“a“>
a,b,c
<ol type=“A“>
A,B,C
<ol type=“I“> (großes i)
I,II,III
<ol type=“i“>
i,ii,iii
Listen
Arten von unsortierten Listen
<ul type=“disc“>
Ausgefüllter Kreis (Standard)
<ul type=“circle“>
Hohler Kreis, Ring
<ul type=“square“>
Quadrat
Tabellen
Tabellen werden über das Tag <table> eingeleitet
Zeilen einer Tabelle werden mit <tr></tr> definiert
Zellen in einer Zeile werden mit <td></td> definiert
Tabellen – Einfaches Beispiel
Tabellen – Einfaches Beispiel
Tabelle - Header
Eine Tabelle hat meist eine Überschrift
Diese wird mittels <th></th> für „Table Header“ definiert
Tabelle – Header – Beispiel
Tabelle aufteilen
Eine Tabelle kann in 3 Bereiche gegliedert werden
thead – Der Kopf der Tabelle
tfoot – Der Fuß der Tabelle
tbody – Der Inhaltsbereich einer Tabelle
Diese Reihenfolge ist einzuhalten
einzelne Elemente können ausgelassen werden
Werden keine Bereiche definiert, wird alles als tbody
interpretiert (Beispiel von vorhin)
Tabelle aufteilen - Beispiel
Tabelle - Formatierungsoptionen
Eine Tabelle kann formatiert werden
Gitternetzlinien: border=“1“
Innenabstand: cellpadding=“5“
Aussenabstand: cellspacing=“8“
Die Angaben werden als Pixel interpretiert.
Gitternetz in der Tabelle
Gitternetz wird mit border=“1“ eingeschaltet
Standard: Alle Gitternetzlinien werden angezeigt
Schlüsselwort: rules
none – Keine Gitternetzlinien
rows – Nur die Zeilen sind abgetrennt
cols – Nur die Spalten sind abgetrennt
groups – Die Gruppen (head,foot, body) sind voneinander
getrennt
all – Alle Gitternetzlinien werden angezeigt
Gitternetz – Beispiel
Aussenrahmen
Außenrahmen kann auch definiert werden.
Schlüsselwort: frame
void – kein Rahmen
above – nur oben ein Rahmen
below – nur unten ein Rahmen
lhs – left hand side – nur links ein Rahmen
rhs – right hand side – nur rechts ein Rahmen
hsides – horizontal sides – nur oben und unten
vsides – vertical sides – nur rechts und links
Außenrahmen
Spalten definieren
Spalten werden über Colgroups definiert
direkt nach dem Begin der Tabelle
vor dem ersten Inhalt, also vor thead
Können absolut definiert werden (in Pixeln)
Können in % angegeben werden
Spalten definieren
Bilder
Werden mit dem Tag <img> eingebunden
benötigen kein Endtag
Schlüsselwort src um Bilddatei zu laden
Bilder - Beispiel
Bilder – Optionen
Bilder können formatiert werden
Rahmen ums Bild mit border=“1“
Größe kann festgelegt werden
width=“200px“ – Festlegen der Breite
height=“180px“ – Festlegen der Höhe
Man kann auch beides festlegen, hier ist jedoch Vorsicht
geboten, sonst:
Links, Anker
Links und Anker werden über das Tag <a> definiert
Ankerpunkte werden innerhalb eines Dokumentes gesetzt,
um an eine definierte Stelle des Dokumentes zu springen
Sinnvoll bei sehr langen Text-Seiten, Glosar
Links werden genutzt, um Ankerpunkte oder andere Seiten
zu verlinken
Links - Beispiel
Ankerpunkt setzen
<a name=“seitenanfang“>
Kann in einem Link direkt angesprungen werden
Seitenintern und Seitenextern
Zum Anspringen eines Ankerpunktes wird # verwendet
DIV/Span
DIV (diverse) und Span werden verwendet, um den Inhalt
zu strukturieren
DIV ist Blockelement
Umbruch, falls nicht anders definiert
Span ist Inline-Element
kein Umbruch
Können Style-Informationen aufnehmen, ähnlich wie
<font>
Meta-Tags
Es gibt diverse Meta-Tags
werden verwendet, um Informationen über die Seite
anzugeben
Beispiele sind:
Schlüsselwörter
Beschreibung des Inhalts
Nennung des Autors
Nennung des Copyright
Codierung der Seite
Meta-Tags
Meta-Tags waren für Suchmaschinen sehr relevant
mittlerweile nur noch für Yahoo interessant, Google
verwendet sie kaum
Aufbau
Meta-Tags
Keywords
Stichwortartige Beschreibung des Seiteninhalts
Getrennt durch Komma
Description
Fließtext, sollte nicht mehr als 180 Zeichen haben
aber auch nicht zu kurz
robots
wird von Suchmaschinen ausgewertet, um festzulegen, ob
die Seite indexiert werden soll
Optionen: index vs. no-index
follow vs. no-follow
Meta-Tags
Ein sehr wichtiges Meta-Tag ist die Angabe der
Zeichenkodierung
Fehlendes Meta-Tag kann unleserliche Zeichen zur Folge
haben
Umlaute kodieren
ä -> &auml;
Ä -> &Auml;
ß -> &szlig;
HTML und CSS
Heute
CSS als Auszeichnungssprache
Formen der Einbindung
Selektoren
Regeln für die Gestalltung
CSS – Cascading Style Sheets
Grundidee beim Entwurf von CSS war es, mittels HTML
oder XML nur die inhaltliche Untergliederung eines
Dokumentes und die Bedeutung seiner Teile zu
beschreiben, während mittels CSS weitgehend unabhängig
davon die konkrete Darstellung (Farben, Layout,
Schrifteigenschaften usw.) der Teile festgelegt wird.
Wie kann man CSS einbinden?
Möglichkeiten der Einbindung von CSS
Inline
Style-Blöcke
Separate Datei
Inline-CSS
Die einfachste Möglichkeit, CSS einzusetzen
Schlüsselwort: style
Vorteile/Nachteile Inline-CSS
Vorteile
sehr einfach umzusetzen
Style ist immer direkt am Element
keine komplizierten Konstrukte
Nachteile
Jedes Element muss für sich definiert werden
keine Wiederverwertbarkeit
uneinheitlich
Inline Style-Blöcke
Werden direkt in der HTML-Datei geschrieben
Vorteile/Nachteile Style-Blöcke
Vorteile
Alle Design-Informationen an einer Stelle
Regeln können wiederverwendet werden
„volle Kraft“ von CSS kann genutzt werden
Nachteile
nur für eine Seite gültig
zwischen den Seiten nach wie vor kein Standard
„geht unter“ zwischen HTML-Code
CSS in eigene Datei auslagern
CSS-Regeln können in einer eigenen Datei ausgelagert
werden
Diese Datei wird auf allen Seiten verwendet
Styles sind somit im ganzen Projekt verfügbar
Vorteile/Nachteile von Auslagerung
Vorteile
Einheitliches Design für die ganze Seite möglich
Klare Trennung von Inhalt und Design
CSS kann „komplett“ genutzt werden
Nachteile
zwei unterschiedliche Dateien
Empfehlung für den Einsatz von CSS
keine Methode ist für alles geeignet
Mischen ist möglich
Empfehlung: Für jede Regel individuell überlegen, wo sie
am besten hinpasst
Gibt es das Element auch auf anderen Seiten?
Auslagern
Gibt es das Element noch einmal auf dieser Seite?
Auslagern oder Style-Block (besser Auslagern)
Ist das Element wirklich einmalig?
Inline mit Style-Tag (sehr sparsam gebrauchen)
Aufbau einer CSS-Regel
CSS-Regeln sind immer nach folgendem Schema
aufgebaut:
Es können mehrere Selektoren mit Komma getrennt
verwendet werden
Es können mehrere Schlüsselwörter mit Strichpunkten
getrennt in einer Regel verwendet werden
Sonderfall: Inline-CSS mit Style-Schlüsselwort
Wird das CSS direkt im Element mit dem Schlüsselwort
„style“ verwendet, fällt der Selektor und die Klammern
weg
Stattdessen:
Selektoren
Selektoren in CSS selektieren ein oder mehrere Elemente
Verschiedene Möglichkeiten
über eine ID
über eine Klasse
über den Elementname
über ein Schlüsselwort
über die Position im Dokument
Selektor: ID
Über die ID wird ein spezielles Element selektiert
Aufbau im CSS
#ID des Elements
Aufbau im HTML
<p id=“ID_des_Elements“>
Wird verwendet, um einzigartige Elemente zu
referenzieren, welche einmalig auf einer Seite sind
Selektor: Klasse
Über eine Klasse können mehrere Elemente einer Seite
selektiert werden
Aufbau im CSS
.Klasse des Elements
Aufbau im HTML
class=“Klasse des Elements“
Ein Element kann mehrere Klassen haben
dadurch lässt sich eine schöne Aufteilung der FormatRegeln erziehlen
Selektor: Elementname
Über den Elementname können gleiche Elemente
selektiert werden
Keine Anpassungen im HTML notwendig
Sollte so viel wie möglich verwendet werden, um
einheitliches Design zu ermöglichen
Aufbau im CSS
h1
span
p
Selektor: Schlüsselwort
Es können Elemente selektiert werden, welche ein
bestimmtes Schlüsselwort gesetzt haben.
Über dies können auch Elemente selektiert werden, welche
einen bestimmten Wert für ein bestimmtes Schlüsselwort
gesetzt haben
Aufbau CSS
*[Schlüsselwort=Wert]
=Wert kann weggelassen werden
Selektor: Position im Dokument
Selektoren können verknüpft werden
Selektoren können aufgelistet werden
Verknüpfung von Selektoren
Elemente, welche innerhalb eines anderen liegen, werden
selektiert
Es können Ebenen dazwischen liegen, es muss also kein
direktes Kindelement sein
Beispiel
#content h1
Wird nur angewendet auf Überschriften, welche innerhalb
des content-Blocks liegen
Auflistung von Selektoren
Durch Komma von einander getrennte Selektoren
Jeder Teil des Selektors kann greifen
Beispiel:
h1, h2, h3 { color: red; }
Alle Überschriften h1-h3 werden rot dargestellt
Verschiedene Verknüpfungsarten
Nachfolger
Kindelement
Geschwister-Selektor
Tiefen-Selektor
Nachfolger
Nachfolger werden als einfache Liste dargestellt
Arten von Einzel-Selektoren können beliebig gemischt
werden
Beispiel
body #content p.abschnitt h4
Selektiert wird jetzt Überschrift (H4), welche innerhalb eines
Abschnittes mit der Klasse .abschnitt liegen, welche
wiederum zum Content-Bereich gehören muss. Das bodyElement kann hier weggelassen werden.
Kindelemente
Ähnlich dem Nachfolger-Selektor
Nur direkte Kinder werden selektiert
Beispiel
#content > h4
Nur eine Überschrift (h4) welche direkt im Content-Bereich
liegt
Geschwister-Selektor
Elemente liegen auf gleicher Ebene
Müssen nicht direkte Geschwister sein
Beispiel:
p + span
Jeder Span, welcher auf gleicher Ebene ein „p“-Element
haben, werden selektiert
Tiefen-Selektor
Das „Gegenteil“ vom Kind-Selektor
Es muss mindestens eine Ebene zwischen dem ersten und
dem zweiten Element liegen
Beispiel
#content * h3
Jede Überschrift H3 wird selektiert, welche innerhalb von
#content liegt, und mindestens ein Element dazwischen
liegt.
Schriften
Schriften werden durch das Schlüsselwort “font“ definiert
Beispiel
<span style=“font-family:Arial“>Text</span>
Fettung in CSS
Fettung wird durch das schlüsselwort “font-weight“ definiert.
Mögliche Werte
bold
bolder
light
lighter
100,200,300,400,500,600,700,800,900
Schriften
kursive Schriften werden durch das Schlüsselwort
“font-style“
Mögliche Werte sind
normal (Standard)
italic
oblique
Farben
Wie auch in HTML werden Farben in CSS über einen
Farbcode (Hexadezimal) angegeben
Referenzierung auch über Namen möglich
Auflistung aller Farbnamen mit Codes:
http://www.farb-tabelle.de/de/farbtabelle.htm
Farben in CSS
Farben werden mit dem Schlüsselwort “color“ festgelegt
color bezieht sich dabei auf die Textfarbe, also den Inhalt
des Elements
Hintergrund
Hintergrund kann sein:
Farbfläche
Bild
Schlüsselwort: background-color
Hintergrund-Bild
Der Hintergrund eines Elementes kann auch aus einem Bild
bestehen
Schlüsselwort: background-image
Als Wert muss die Adresse des Bildes angegeben werden.
Hintergrund-Bild
Hintergrund - Repeat
Standardmäßig wird der Hintergrund in alle Richtungen
wiederholt
Dieses Verhalten kann gesteuert werden:
background-repeat
Mögliche Werte
repeat-x
repeat-y
repeat
no-repeat
horizontal wiederholt
vertikal wiederholt
in beide Richtungen wiederholt
keine Wiederholung
Hintergrundeffekte mit Repeat
Durch die Wiederholung wird Speicherplatz gespart
eine kleine Graphik kann eine ganze Fläche füllen
Hintergrundeffekte für Menüs
durch vertikales Wiederholen kann man einen Hintergrund
beispielsweise für ein Menu erstellen
Home | Über uns | Anfahrt
Float
Float = Fluss, fließen
Elemente in HTML fließen immer
Mit CSS kann der Float beeinflusst werden
Beispiel:
float:left;
float: right;
Einheitlicher Umbruch (auch für übergeordnete Container)
<br style=“clear:both“ />
Positionierung
In CSS gibt es 2 weitere Möglichkeiten, Elemente zu
positionieren
Standard ist relative Positionierung
Es gibt noch die absolute Positionierung
Absolut: Die linke obere Ecke wird zum Elternelement um
bestimmte Pixel verschoben
Relativ: Die Position wird von der laut Float zugewiesenen
Position aus entsprechend verschoben
Schatten
Man kann Elementen einen Schatten zuordnen
Schlüsselwort: box-shadow
Beispiel:
box-shadow: 3px 2px 7px #ccc;
wobei gilt: verschiebung vertikal, verschiebung horizontal,
breite des Schattens, Farbe des Schattens
Unterschiedliche Umsetzung in Browsern
box-shadow wird nicht von allen Browsern erkannt
Für Mozilla Firefox:
-moz-box-shadow
Für Webkit-basierte Browser (Chrome, iPhone)
-webkit-box-shadow
Kompletter Schatten-Block also
-moz-box-shadow: 3px 2px 7px #ccc;
-webkit-box-shadow: 3px 2px 7px #ccc;
box-shadow: 3px 2px 7px #ccc;
Runde Ecken
Ecken können abgerundet werden
Auch hier ist die Umsetzung in den Browsern (noch) nicht
einheitlich
Beispiel:
border-radius: 5px;
Für Mozilla und Webkit wieder entsprechend:
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
Runde Ecken
Man kann auch einzelne Ecken abrunden
border-top-left-radius: 5px;
border-top-right-radius: 18px;
border-bottom-left-radius: 10px;
border-bottom-right-radius: 15px;
Vielen Dank!
Daniel Beuter
DM Kommunikation
Neustadt / Weinstraße
Tel. 06321 – 484 0162
[email protected]
http://www.dmkommunikation.de
https://www.xing.com/profile/Daniel_Beuter3