Freitag, 30. Mai 2014

Selektoren in CSS

Verzeichnisse und Dateien für dieses Tutorial:
style\default.css
home.html

Es gibt verschiedene Selektoren in CSS. Für die Selektornamen dürfen keine Umlaute (ä,ö,ü) und Sonderzeichen benutzt werden, die Groß- und Kleinschreibung wird dabei berücksichtigt und der Selektornamen darf nicht mit einer Zahl beginnen.

Der Typselektor
Der Typselektor zeigt auf ein Typ (Element). Hier ein Beispiel:

home.html
  1. <html>
  2.         <head>
  3.                 <title> Selektoren in CSS </title>
  4.                 <link rel="stylesheet" type="text/css"
  5.                 href="style/default.css" />
  6.         </head
  7.         <body >
  8.                 <h1>Schaue dich um, Schönheit ist überall zu finden!</h1>
  9.                 <h2>Wer denkt perfekt sein ist, alles richtig zu machen,
  10.                 der liegt falsch!</h2>
  11.                 <h3>Fehler sind dazu da, um daraus zu lernen!</h3>
  12.         </body>
  13. </html>

default.css
  1. h1 {color: red;}


Für den Typselektor können HTML-Tags verwendet werden, die Tags werden aber ohne < und > angegeben. In den { und } stehen die Eigenschaften und die dazugehörigen Werte. Eigenschaft und Wert werden von einem : getrennt, nach dem Wert steht ein Semikolon (;). Es können natürlich mehrere Eigenschaften mit Werten angegeben werden, sie werden immer durch ein Semikolon getrennt. Mit der Eigenschaft color und dem Wert red wird der Text des Überschriften-Tags <h1> rot dargestellt. Dies bezieht sich auf alle <h1>-Tags die im Dokument vorkommen.



Der Universalselektor
Universalselektoren der mit * dargestellt wird, spricht alle Elemente (z.B. HTML-Tags) in einem Dokument an. Hier ein Beispiel:

  1. * {color: red;}

Durch den Universalselektor wird den Tags in den Dokument die Eigenschaft color zugewiesen, dadurch werden alle Texte in roter Schrift dargestellt.


Der Universalselektor spricht auch die Tags <head> und <style> an, diese werden aber durch ihre speziellen Eigenschaft nicht angezeigt.

Der ID-Selektor
Ein ID-Selektor ist eine einfache ID, der ID-Syntax besteht aus dem #-Zeichen und einen Namen, dies wurde im Tutorial Links in HTML besprochen. Hier ein Beispiel:

home.html
  1. <html>
  2.         <head>
  3.                 <title> Selektoren in CSS </title>
  4.                 <link rel="stylesheet" type="text/css"
  5.                href="style/default.css" />
  6.         </head
  7.         <body >
  8.                 <h1>Schaue dich um, Schönheit ist überall zu finden!</h1>
  9.                 <h2 id="roter_text">Wer denkt perfekt sein ist, alles
  10.                 richtig zu machen, der liegt falsch!</h2>
  11.                 <h3>Fehler sind dazu da, um daraus zu lernen!</h3>
  12.         </body>
  13. </html>

default.css
  1. #roter_text {color: red;}

Die ID sollte nur einmal im HTML-Dokument vorkommen.



Der Klassenselektor
Klassenselektoren sind ähnlich wie ID-Selektoren.  Klassenselektoren werden mit dem .-Zeichen dargestellt. Hier ein Beispiel:

home.html
  1. <html>
  2.         <head>
  3.                 <title> Selektoren in CSS </title>
  4.                 <link rel="stylesheet" type="text/css" href="style/default.css" />
  5.         </head
  6.         <body >
  7.                 <h1 class="elternklasse">Schaue dich um, Schönheit ist
  8.                 überall zu finden!</h1>
  9.                 <h2 class="elternklasse kindklasse">Wer denkt perfekt sein
  10.                 ist, alles richtig zu machen, der liegt falsch!</h2>
  11.                 <h3>Fehler sind dazu da, um daraus zu lernen!</h3>
  12.         </body>
  13. </html>

In HTML kann auf Klassen mit den Attribut class zugegriffen werden. in Zeile 7 wird mit dem Wert Elternklasse auf die Klasse mit diesen Namen zugegriffen. In Zeile 9 wird auf eine Kindklasse der Elternklasse zugegriffen. Dabei muss immer erst die Elternklasse und dann die Kindklasse angegeben werden.

default.css
  1. .elternklasse {font-family: "Segoe Script", cursive;}
  2. .elternklasse.kindklasse {color: green;}

In der elternklasse wird die Schriftart geändert. In Zeile 2 wird in der kindklasse die Textfarbe geändert. Eine Kindklasse hat immer die Eigenschaften und Werte einer Elternklasse, dies nennt man Vererbung.


Wie man im Browser sehen kann wurde ohne unser Zutun die Schriftart durch die Vererbung geändert.

Die Eigenschaft der Elternklasse kann aber auch durch die Kindklasse überschrieben werden. Hier noch ein Beispiel:

home.html
  1. <html>
  2.         <head>
  3.                 <title> Selektoren in CSS </title>
  4.                 <link rel="stylesheet" type="text/css"
  5.                 href="style/default.css" />
  6.         </head
  7.         <body >
  8.                 <h1 class="elternklasse">Schaue dich um,
  9.                 Schönheit ist überall zu finden!</h1>
  10.                 <h2 class="elternklasse kindklasse">Wer denkt perfekt
  11.                 sein ist, alles richtig zu machen, der liegt falsch!</h2>
  12.                 <h3 class="elternklasse kindklasse kindklasse2">Fehler
  13.                 sind dazu da, um daraus zu lernen!</h3>
  14.         </body>
  15. </html>

Wie man in Zeile 12 sehen kann, können Kindklassen wieder Kindklassen haben, dadurch werden die Eigenschaften der Vorherigen Klassen (hier im Beispiel elternklasse und kindklasse) vererbt.

default.css
  1. .elternklasse {font-family: Segoe Script, cursive;}
  2. .elternklasse.kindklasse {color: green;}
  3. .elternklasse.kindklasse.kindklasse2 {color: blue;}

Wie wir in Zeile 3 sehen, erbt die Klasse kindklasse2 von der kindklasse. Dadurch dass in der kindklasse aber die Textfarbe nochmal geändert wird, wird ein blauer text angezeigt, weil die Eigenschaft aus der kindklasse von kindklasse2 überschrieben wird. Natürlich ist dieses Beispiel nicht sinnvoll, es soll nur zeigen dass man Klassen immer weiter vererben kann und die Eigenschaften auch überschreiben kann. Sinnvoller wäre für dieses Beispiel, dass die kindklasse2 nur von der elternklasse erbt. Dadurch ergibt sich das gleiche Ergebnis und der Klassennamen wird nicht unnötig lang.



Der Attributselektor
Bei dem Attributselektor wird der gewünschte Name des Attribut im CSS-Code zwischen [ und ] geschrieben. Hier ein Beispiel:

home.html
  1. <html>
  2.         <head>
  3.                 <title> Selektoren in CSS </title>
  4.                 <link rel="stylesheet" type="text/css"
  5.                href="style/default.css" />
  6.         </head
  7.         <body >
  8.                 <h1>Schaue dich um, Schönheit ist überall zu finden!</h1>
  9.                 <h2>Wer denkt perfekt sein ist, alles richtig zu machen,
  10.                 der liegt falsch!</h2>
  11.                 <h3 test>Fehler sind dazu da, um daraus zu lernen!</h3>
  12.         </body>
  13. </html>

In Zeile 11 wird auf das Attribut test zugegriffen (hier wird der Namen des Attributs ohne [ und ] geschrieben, das <h3>-Tag nimmt die  Eigenschaften das Attributs an.

default.css
  1. [test] {font-family: "Segoe Script", cursive;}

Beim definieren des Attributs wird der Name in [ und ] geschrieben.


Es ist auch möglich den Typselektor, Universalselektor, ID-Selektor und Klassenselektor mit dem Attributsselektor zu verbinden. Hier ein Code-Beispiel:

  1. h3[test] {font-family: "Segoe Script", cursive;}

Vor dem Attribut haben wir jetzt ein Typselektor geschrieben, dadurch wird der Attributselektor nur im <h3>-Tags verwendet. Es gibt noch weitere Möglichkeiten den Attributsselektor zu verwenden, wie z.B. Vergleiche ausführen. Dafür wird es  noch ein eigenes Tutorial dazu geben.

Mittwoch, 28. Mai 2014

Aufzählungslisten in HTML

Für eine Aufzälhungsliste gibt es verschiedene Tags es kommt immer auf die Listenart an, die verwendet werden soll. Für die einzelnen Listeneinträge gibt es das Tag <li> (list item = Listeneintrag). Der Listeneintrag steht zwischen dem Start-Tag <li> und dem End-Tag </li> Nach dem End-Tag </li> wird automatisch eine neue Zeile angefangen.

Die unsortierte Liste
Bei einer unsortierten Liste, steht das Tag <li> und </li> zwischen Start-Tag <ul> (unordered list = unsortierte Liste) und End-Tag </ul>. Hier ein Beispiel:

  1. <html>
  2.         <head>
  3.                 <title> Listen in HTML </title>
  4.         </head
  5.         <body>
  6.                 <ul>
  7.                         <li>Erster Listeneintrag</li>
  8.                         <li>Zweiter Listeneintrag</li>
  9.                         <li>Dritter Listeneintrag</li>
  10.                 </ul>
  11.         </body>
  12. </html>

Bei einer unsortierten Liste wird automatisch ein Aufzählungszeichen den einzelnen Listeneinträgen hinzugefügt.



Die nummerierte Liste
Bei einer nummerierte Liste, steht das Tag <li> und </li> zwischen Start-Tag <ol> (ordered list = nummerierte Liste) und End-Tag </ol>. Hier ein Beispiel:

  1. <html>
  2.         <head>
  3.                 <title> Listen in HTML </title>
  4.         </head
  5.         <body>
  6.                 <ol>
  7.                         <li>Erster Listeneintrag</li>
  8.                         <li>Zweiter Listeneintrag</li>
  9.                         <li>Dritter Listeneintrag</li>
  10.                 </ol>
  11.         </body>
  12. </html>

Bei einer nummerischen Liste werden die Listeneinträge automatisch durchnummeriert.


Die Definitionsliste
Die Definitionsliste ist für Glossare gedacht. Das Start-Tag <dl> (defination list = Definitionsliste) und End-Tag </dl> steht für die Definitionsliste. Zwischen diesen Tags können das Start-Tag <dt> (defination term = Ausdruck der Liste) und End-Tag </dt> und das Start-Tag <dd> (defination defination = Defination der Liste) und End-Tag </dd> stehen. Hier ein Beispiel:

  1. <html>
  2.         <head>
  3.                 <title> Listen in HTML </title>
  4.         </head
  5.         <body>
  6.                 <dl>
  7.                         <dt>Eigenschaften von Mineralien</dt>
  8.                         <dd>Durchsichtigkeit</dd>
  9.                         <dd>Farbe</dd>
  10.                         <dd>Dichte</dd>
  11.                         <dd>Spaltbarkeit und Bruch</dd>
  12.                         <dd>Härte</dd>
  13.                         <dt>Entstehung und Vorkommen der Mineralien</dd>
  14.                         <dd>Eruptivgesteine</dd>
  15.                         <dd>Sedimentgesteine</dd>
  16.                         <dd>Metamorphe Gesteine</dd>
  17.                 </dl>
  18.         </body>
  19. </html>

Der Ausdruck der Definitionsliste ist ein Begriff der z.B. die Attribute der Liste beschreibt, wie hier im Beispiel in Zeile 7 und 13. Die Definition sind die aufzählbaren Attribute des Ausdrucks.


Verschachtelte Listen
Die drei Listenarten können auch beliebig verschachtelt werden. Hier ein Beispiel:

  1. <html>
  2.         <head>
  3.                 <title> Listen in HTML </title>
  4.         </head
  5.         <body>
  6.                 <dl>
  7.                         <dt>Eigenschaften von Mineralien</dt>
  8.                         <ul>
  9.                                 <li>Durchsichtigkeit</li>
  10.                                 <li>Farbe</li>
  11.                                 <li>Dichte</li>
  12.                                 <li>Spaltbarkeit und Bruch</li>
  13.                                 <li>Härte</li>
  14.                         </ul>
  15.                         <dt>Entstehung und Vorkommen der Mineralien</dt>
  16.                         <ol>
  17.                                 <li>Eruptivgesteine</li>
  18.                                 <li>Sedimentgesteine</li>
  19.                                 <li>Metamorphe Gesteine</li>
  20.                         </ol>
  21.                 </dl>
  22.         </body>
  23. </html>


Es ist auch möglich das Aussehen der Listen zu verändern, z.B ein anderes Aufzählungszeichen verwenden oder die Nummerierung ändern. Dafür sollte aber CSS verwendet werden und nicht mehr HTML, dies ist zwar auch noch möglich, aber CSS ist dafür um einiges besser geeignet.