Posts mit dem Label CSS werden angezeigt. Alle Posts anzeigen
Posts mit dem Label CSS werden angezeigt. Alle Posts anzeigen

Donnerstag, 28. August 2014

Vererbung in CSS

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

Im Tutorial Selektoren in CSS wurde schon auf die Vererbung eingegangen, dieses Tutorial soll zeigen wie die Elemente (HTML-Tags) die Eigenschaften weiter vererben, auch wenn nicht alle Eigenschaften auf jedes Element angewandt werden können. Wie wir bereits wissen ist, dass das Element deren Eigenschaften geerbt wird, als Elternelement bezeichnet wird und jenes Element das erbt, wird als Kindelement bezeichnet.


In der Grafik können wir sehen wie die Vererbung aufgebaut ist (Wenn ein Element nicht in der Grafik ist, kann es durchaus sein, dass keine Vererbung möglich ist). Wenn wir z.B. die selbe Schriftfarbe in allen Elementen (Tags) möchten, können wir dies im body-Element angeben.

Hier ein Beispiel:

home.html
  1. <html>
  2.         <head>
  3.                 <title> Vererbung in CSS </title>
  4.                 <link rel="stylesheet" type="text/css" href="style/default.css" />
  5.         </head
  6.         <body>
  7.                 Dies ist ein normaler Text!
  8.                 <p> Dies ist ein Textabsatz! </p>
  9.                 <ul>
  10.                         <li> Erste Zeile der Liste </li>
  11.                         <li> Zweite Zeile der Liste </li>
  12.                 </ul>
  13.         </body>
  14. </html>

default.css
  1. body {
  2.         color: #AA00FF;
  3. }


Wie wir sehen haben alle Elemente die selbe Farbe, da die Eigenschaften vom Elternelement body immer weiter vererbt wird, zur nächsten Kindklasse. Wir könnten die Eigenschaften auch schon im Element html definieren, was aber wenig sinn macht, da erst ab der Kindklasse body die Eigenschaften dargestellt werden können.

Beschränkungen der Vererbung
Viele Eigenschaften vererben ihre Werte nicht. Die Ausnahme ist der Wert inherit (erben) durch diesem Wert wird der Eigenschaftswert des Elternelements vererbt.

Es ist auch darauf zu achten in welcher Reihenfolge vererbt wird, die Werte können sich durch einer neuen Zuweisung verändert haben. Hier ein Beispiel:

default.css
  1. body {
  2.         color: #AA00FF;
  3. }
  4. ul {
  5.         color: #0000FF;
  6. }


Hier wird in der Zeile 5 den Element eine neue Schriftfarbe definiert, dadurch wir diese Farbe in den Kindklassen weiter vererbt die von ul erben.

Es kann auch sein, dass schon Werte vordefiniert wurden und sie dadurch nicht vererbt werden können.

Durch relative Wertangabe angegeben, mit den Maßeinheiten (Maßeinheiten in CSS) em, ex oder % die erst errechnet werden und dadurch kein Wert geerbt werden kann.

Veraltete HTML-Elemente können auch nicht vererbt werden wie z.B. die Tags i oder b. Deshalb sollten veraltete HTML-Elemente nicht mehr verwendet werden.

Durchaus gibt aber auch Eigenschaften die ihre Werte nicht vererben, darauf wird aber hier noch nicht eingegangen, da wir sie noch nicht kennen und diese hier zu erklären zuviel für das Tutorial wäre.

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, 21. Mai 2014

Maßeinheiten in CSS

Es ist in CCS auch wichtig die Maßeinheiten zu kennen, die uns zur Verfügung steht. Leider gibt es hier ein kleines oder auch etwas größere Problem. Da die Größe von den Betriebssystemen verschieden berechnet wird, ist nicht gewährleistet, dass z.B. die Schriftgröße auf einen anderen Rechner gut lesbar ist. Man sollte deshalb darauf achten dass die Schrift nicht zu klein ist.

Kommawerte der Maßeinheiten müssen immer mit einem Punkt geschrieben werden (11,45 ist also 11.45).

Hier sind die Maßeinheiten die uns unter CSS zur Verfügung stehen: pt, pc, in, mm, cm, px, em, ex und %

Die absolute Maßeinheiten
Absolute Maßeinheiten geben einen festen Wert an.

pt    steht für Point, 1 Point ist sozusagen ein Punkt groß auf dem Bildschirm. 1 Punkt entspricht 1/72 Inches.
pc   steht für Pica, 1 Pica entspricht 12 Punkte auf dem Bildschirm.
in    steht für Inch, 1 Inch entspricht 2.54 Zentimeter.
mm steht für Millimeter.
cm  steht für Zentimeter.
px   steht für Pixel, die Größe des Pixels ist vom Bildschirm abhängig.

Die relative Maßeinheiten
Relative Maßeinheiten werden erst errechnet.

em  steht für bezogen auf die Schriftgröße des Elements oder bezogen auf die Schriftgröße des Elternelements, wenn em bei der Schriftgröße des Elements angewendet wird.
ex   steht für bezogen auf die Größe des Kleinbuchstaben x des Elements oder bezogen auf die Größe des Kleinbuchstaben x auf das Elternelement, wenn ex bei der Schriftgröße des Elternelements angewendet wird.
%   steht für Prozent, je nach CSS-Eigenschaft relativ zur Größe des Elements, oder zu der des Elternelements.


Dienstag, 20. Mai 2014

Aufbau des CSS-Syntax

Der Syntax des CSS-Codes ist in drei Bereichen zu unterteilen. Der Selektor, die Eigenschaft und der Wert.

Selektor {Eigenschaft: Wert;}

Der Selektor der aus HTML-Tags besteht, es müssen aber nicht immer HTML-Tags sein, mehr dazu aber erst später. Die Eigenschaft und der Wert stehen zwischen { und }. Bei den Eigenschaften wird z.B. die Textfarbe angegeben, nach der Eigenschaft steht immer ein Doppelpunkt. Der Wert ist der Wert den die Eigenschaft erhält, nach einem Wert steht immer ein Semikolon. Es können auch mehr als nur eine Eigenschaft in den geschweiften Klammern angegeben werden, die dann immer durch ein Semikolon getrennt sind.

Selektor {Eigenschaft: Wert; Eigenschaft: Wert;}

Kommentare in CSS

Kommentare in CSS sind natürlich auch möglich und sinnvoll, um den Code übersichtlicher zu gestallten und eventuell anderen Web-Designer die Arbeit mit ihrem Code leichter zu machen. CSS-Kommentare stehen zischen /* und */. Hier ein Beispiel:

  1. <html>
  2.         <head>
  3.                 <title> Layout mit CSS </title>
  4.                 <style>
  5.                         /* Blaue Textfarbe für Textabsätze */
  6.                         p{color:blue;}
  7.                 </style>
  8.         </head
  9.         <body>
  10.                 <p>Dies ist ein Beispieltext!</p>
  11.         </body>
  12. </html>

Wenn der CSS-Code zentral in einer HTML-Datei liegt, darf ein CSS Kommentar nur zwischen den Tags <style> und </style> stehen, außerhalb dieser Tags wird der Kommentar nicht als Kommentar erkannt. Der Text des Kommentares kann auch über mehrere Zeilen gehen. Hier ein Beispiel:

  1. <html>
  2.         <head>
  3.                 <title> Layout mit CSS </title>
  4.                 <style>
  5.                         /* Blaue
  6.                            Textfarbe
  7.                            für Textabsätze */
  8.                         p{color:blue;}
  9.                 </style>
  10.         </head
  11.         <body>
  12.                 <p>Dies ist ein Beispieltext!</p>
  13.         </body>
  14. </html>

Bei Stylesheets die im HTML-Tag stehen, ist es nur möglich einen HTML-Kommentar (Kommentare in HTML) zu schreiben.

In einer externen CSS-Datei können Kommentare in der ganzen Datei verwendet werden.

Sonntag, 18. Mai 2014

Einführung in CSS

CSS (Cascading Style Sheets) ist für das Layout der Webseiten zuständig. Es ist zwar in HTML auch möglich, wie es im HTML Tutorial beschrieben ist, in HTML ist es aber um einiges umständlicher und es ist nicht sicher, ob alle Tags und Attribute von jeden Browser unterstützt werden. CSS dagegen wird von allen Browsern unterstützt. Man sollte sich angewöhnen für das Layout CSS zu verwenden und nicht mehr die HTML-Attribute.

Wir erstellen uns eine Datei home.html, diese Datei wird in den nächsten Tutorials immer wieder verwendet, der Code wird aber öfters ausgetauscht und/oder erweitert. Jetzt schreiben wir das HTML-Grundgerüst für unsere Webseite. Hier der dazugehörige HTML-Code:

  1. <html>
  2.         <head>
  3.                 <title> Layout mit CSS </title>
  4.         </head
  5.         <body>
  6.        
  7.         </body>
  8. </html>


Wer das erste HTML Tutorial (Einführung in HTML) gelesen hat, dürfte den Beispielcode ohne Probleme verstehen.

Es gibt drei Methoden Stylesheets zu verwenden.

Stylesheets in ein Tag schreiben
Mit dem Attribut style können wir den CSS-Code in ein HTML-Tag schreiben. Hier ein Beispiel:

  1. <html>
  2.         <head>
  3.                 <title> Layout mit CSS </title>
  4.         </head
  5.         <body>
  6.                 <p style="color:red;">Beispieltext für den Textabsatz.</p>
  7.         </body>
  8. </html>

Die Werte des style-Attributs ändert die Schriftfarbe des Absatzes auf rot. Man muss aber bedenken, dass die Eigenschaft nur in diesem Tag verändert wird in der das style-Attribut steht. Würde noch ein <p>-Tag folgen würde dieser Absatz die Standardschriftart haben.

Stylesheets zentral definieren
Es ist möglich Stylesheets im HTML-Code einzufügen. Hier der Code für die Datei home.html:


  1. <html>
  2.         <head>
  3.                 <title> Layout mit CSS </title>
  4.                 <style type="text/css">
  5.                 </style>
  6.         </head
  7.         <body>
  8.        
  9.         </body>
  10. </html>

Zwischen dem Start-Tag <style> und End-Tag </style> können wir den CSS-Code einfügen, für dieses Tutorial werden wir keinen CSS-Code einfügen. Die beiden Tags sollten zwischen dem <head>-Tag und </head> stehen. Das Attibut type (Typ) ist ein MIME-Type (für MIME-Type werde ich auch noch ein Tutorial schreiben)  und dafür müssen wir die CSS-Sprache angeben, damit wir CSS nutzen können, dies geht mit "text/css".

Stylesheets als externe Datei
Ich finde die beste Methode ist, eine externe Datei dafür anzulegen. Wir erstellen ein neues Verzeichnis mit dem Namen Style und erstellen uns im Verzeichnis Style die Datei default.css.

Jetzt müssen wir noch einen Link mit dem <link />-HTML-Tag in der Datei home.html erstellen. Hier der Beispielcode dazu:

  1. <html>
  2.         <head>
  3.                 <title> Layout mit CSS </title>
  4.                 <link rel="stylesheet" type="text/css" href="style/default.css" />
  5.         </head
  6.         <body>
  7.        
  8.         </body>
  9. </html>

Das <link />-Tag ist dafür da einen Verweis auf eine andere Datei zu erstellen, damit der Inhalt der angegebenen Datei in der home.html verwendet werden kann. Dieses Tag muss zwischen dem <head>-Tag und </head>-Tag stehen. Das Attribut rel (relation = Bezug), hier geben wir "stylesheet" an. Für das Attribut type (Typ) geben wir für CSS "text/css" an und zum Schluss für das Attribut href (Hypertext Reference, das HTML-Tag href wird im Tutorial Links in HTML besprochen), geben wir das Verzeichnis oder Adresse unserer erstellten CSS-Datei default.css an.