Vor genau dreißig Jahren, am 10. Oktober 1994, stellte Håkon Wium Lie den ersten Entwurf für CSS vor. Danach entwickelte Lie CSS gemeinsam mit Bert Bos und einem Team im Rahmen des W3C weiter. Ende 1996 konnte CSS Level 1 Recommendation präsentiert werden. Im Jahr 1998 folgte bereits CSS 2. Eine Überarbeitung der Sprache fand dann dreizehn Jahre später mit CSS 2.1 statt. In der Zwischenzeit war die CSS Working Group fleißig dabei, CSS 3 zu entwickeln und auch Teile bereits zu veröffentlichen. Das lag daran, dass CSS 3 kein Gesamt-Release von neuen Features der Sprache war, sondern CSS in zig unterschiedliche Module aufgeteilt hat, die fortan separat weiterentwickelt und vorangetrieben wurden. Heutzutage spricht man daher auch meist nur noch einfach von CSS ohne Versionsnummer, da sich die Sprache innerhalb ihrer Module weiterentwickelt und es kein "großes" Release mehr gibt.
mehr siehe Heise Blog
Um einen kleinen Einblick zu bekommen, was alles mit CSS möglich ist, findet auf https://enjoycss.com/ viele Beispiele und einen CSS Online Generator.
1. Externe CSS Datei | |
---|---|
Man lagert die Style Sheets in einem externen Dokument an zentraler Stelle aus und verbindet diese Datei mit allen HTML Dateien. So hat man ein einheitliches Design für die gesamte Website (Corporate Design). Das CSS wird im Klartextformat in UTF-8 mit der Endung .css gespeichert. Die CSS Anweisungen werden direkt in die CSS Datei eingefügt. so sieht's aus In den HTML Seiten muss eine Verknüpfung zu dieser Datei angelegt werden. Hier gibt 2 Arten die externe CSS Datei einzubinden. |
|
HTML<link rel="stylesheet" href="website.css"> |
a.)Einbinden einer CSS Datei in HTML in einem |
CSS<style> @import "formate.css"; @import url("special/ie-hacks.css"); </style> |
b.) Einbinden einer CSS Datein in CSS. Innerhalb des Gültigkeitsbereichs eines
|
So eine @import Anweisung kann man auch benutzen, wenn man mehrere Stylesheetdateien angelegt hat und innerhalb einer Stylesheetdatei eine andere Stylesheetdatei einbinden will. Auch Schriftarten werden so eingebunden. so sieht's aus | |
2. Dokumentweit | |
Hat man nur wenige Style Anweisungen, so lohnt es sich nicht eine extra Datei dafür anzulegen. Stattdessen schreibt man die Style Anweisungen direkt in die HTML-Datei. Auch wenn man eine externe Stylesheet Datei eingebunden hat, kann es nützlich sein, zusätzlich ein paar dokumentweite Style Anweisungen hinzuzufügen, die nur für dieses Dokument Gültigkeit haben. Man notiert ein style- Element das Attribut type="text/css" muss ab HTML5 nicht eingefügt werden. Innerhalb des Gültigkeitsbereichs des style Elements wird CSS notiert. | |
<style> body {color: #FFAFFF} </style> |
Dokumentweite Einbindung der Styles werden standardmäßig im Kopfbereich der Seite definiert. Wenn diese dokumentweite Deklaration nach einer externen Einbindung eingefügt wird, hat die dokumentweite Vorrang. |
3. Innerhalb von Elementen | |
Die dritte Möglichkeit, ein einzelenes HTML Element wird mit einer CSS Anweisung versehen. | |
<h1 style="color:red; font-size:26px;">HTML5</h1> |
Innerhalb von HTML Elementen hat man die Möglichkeit, für das einzelne Element eine Style-Anweisung zu notieren. Diese hat Vorrang vor der externen und vor der dokumentweiten Anweisung. Das Attribut |
Eine Regel oder ein Regelset legt fest wie bestimmte Elemente einer HTML-Seite dargestellt werden sollen. Eine Regel besteht aus einem Selektor gefolgt von einem Deklarationsblock. Darin befinden sich eine oder mehrere Deklarationen auch Anwweisungen genannt. Eine Anweisung besteht aus einer Eigenschaft gefolgt von einem Doppelpunkt und ein oder mehreren Wertzuweisungen. Die Anweisungen (Deklartionen) werden mit Semikolon getrennt aufgeführt.
Selektor { Eigenschaft: Wert; Eigenschaft: Wert; }
2px
. Ausnahmen sind z-index
, line-height
, opacity
und font-weight
. Diese CSS-Eigenschaften sind einheitenlos (unit-less). z.B. font-weight: 300;
div {border: 1px solid grey;}
body {font-family: Verdana, Arial, Geneva, sans-serif;}
body {font-family: "Courir New", Courir, monospace;}
Auch ein Html Dokument ohne CSS Anweisung wird mit dem Browser Style-Sheet dargestellt. Es ist außerdem möglich ein Benutzerstylesheet für den Browser festzulegen. Wenn ein Browser eine HTML Seite darstellt. Sucht er für jedes Element nach einer Stylesheet Definition, wenn es nur eine gibt. Stellt er es entsprechend dar. Gibt es mehrere unterschiedlicher Herkunft werden sie folgendermaßen mit absteigender Gewichtung sortiert.
Um ein einheitliches CSS in allen Browsern zu erlangen, kann man alle Styleanweisungen zurücksetzen. Anschließend erstellt man eigene CSS Anweisungen für die wichtigsten Elemente. Siehe reset alles zurücksetzen. oder man bindet die normalize.css von Nicolas Gallagher ein.
Eine regelmäßig aktualisierte reset.css findet man unter: http://meyerweb.com/eric/tools/css
Man kann mehrere CSS Dateien einbinden und zusätzlich auf der einzelnen Seite definieren. Generell gilt die vom Browser zuletzt aufgerufene Style Anweisung überschreibt frühere Formatvorgaben. Das ist das Prinzip der Kaskadierung. Von dieser Rangfolge unabhängig überschreiben genauere Angaben ungenauere Angaben. Was das im einzelnen zu bedeuten hat, kann man an dem Punktesystem der Spezifität ermitteln.
mehr dazu siehe hier
Man kann für unterschiedliche Ausgabegeräte einzelne Style Sheet Dateien definieren. Mehr dazu unter Media Queries Das macht in erster Linie Sinn für Druck und Bildschirmausgaben. Dazu folgendes Beispiel:
<link type="text/css" rel="stylesheet" href="printStyle.css" media="print">
<link type="text/css" rel="stylesheet" href="screenStyle.css" media="screen">
Es gibt verschiedenen Möglichkeiten der Wertzuweisung, absolute und relative Werte, Werte die sich auf die Basisischriftgröße beziehen, Werte die sich am Viewport orientieren. mehr dazu hier
Mit der calc() Funktion kann man relative und absolute Werte addieren oder andere mathematische Operationen auführen. mehr dazu hier
Unter Schriftformatierung habe ich genauere Angaben zu den einzelnen Einheiten aufgeführt. mehr dazu hier
Kommentare erscheinen nur in der Quellcode Ansicht. In CSS wird ein Kommtar folgenermaßen erzeugt:
/* Kommentartext */
Im HTML Bereich erzeugt man einen Kommentar folgendermaßen:
<!-- Kommentartext -->
Das Thema Prefix ist mittlerweile 2020 veraltet.
CSS Eigenschaften, die noch nicht offizieller Standard sind, müssen vorerst noch mit Hersteller Präfixen versehen werden (vendor prefix) Nach einer Weile wird die Unterstützung für die gepräfixten Bereiche eingestellt und der offizielle Standard wird verwendet. Um auf alle Browserversionen Rücksicht zu nehmen müssen die Eigenschaftn mehrmals aufgeführt werden. Im folgenden ein Beispiel.
background: -webkit-linear-gradient(90deg, #fec, white, #fec); /* For Safari 5.1 to 6.0 */
background: -o-linear-gradient(90deg, #fec, white, #fec);/* For Opera 11.1 to 12.0 */
background: linear-gradient(0deg, #fec, white, #fec); /* Standard syntax */
Es gibt eine Lösung mit Javascript, so dass man lediglich die offizelle Schreibweise notieren muss, den Rest erledigt das Script von Lea Verou. Laden Sie die Datei herunter und binden Sie diese im Head Bereich ein.
Prefix Free only 2kb Javascript Datei http://leaverou.github.io/prefixfree/