- Externe Datei einbinden
- <link rel="stylesheet" href="screen.css" media="screen">
durch media screen wird fürs drucken das css nicht verwendet
<link rel="stylesheet" href="print.css" media="print"> zum drucken
<link href="screen.css" type="text/css" rel="stylesheet" media="screen and (min-device-width:
481px)"> Css3 Media Querries
<link href="mobile.css" type="text/css" rel="stylesheet" media="only screen and (max-device-width:
480px)"> CSS3 für Handys
- Einbinden
- <style> </style>
- Direktangabe
- <span style="border:3px;"> Text </span> Styleeigenschaften im Tag besitzen einen höheren Kascadenwert
- Kommentar
- /* Kommentar */
- Einheiten
- Zwischen Wert und Einheit keine Leerstellen erlaubt, also z.B. 10px;
px Pixel sind unterschiedlich groß auf jedem Bildschirm
em relativ zur Schrifgröße die der Benutzer eingestellt hat, z.B. gut geeignet für Abstände zwischen
Absätzen
% Prozent zum Elternelements
Absolute Einheiteen pt (Punkt), mm, cm für Printmedien
- Farbangaben
- #ffccdd; Hexadezimal: rot, grün, blau -- ff folles Fund -- 00 für nix
#fcd; Kurzform
color:rgb(51,0,102); zwischen 0 und 255
color:rgb(100%,100%,0%); in Prozent angebbar, hier gelb
black; red; yellow;
- Mauszeiger
- cursor: auto; Normaleinstellung
cursor: crosshair; Fadankreuzes
cursor: pointer; Link Cursor
cursor: move; Bewegungskreuz
cursor: text; Texteingabesymbol
cursor: wait; Sanduhr
cursor: help; Fragezeichen
- Grundsätzlich
- Css besteht aus Deklarationen. Deklartionen bestehen aus Eigenschaft und Wert.
Einige Eingenschaften werden vererbt (Schriftart), andere nicht (margin, border, width)
Grundsätzlich sollte beim der Gestaltung auf folgendes geachten werden: viel weiße Fläche, wenig Linien, Pastellfarben, nicht so breite Paragraphen, 900 goldener Schnitt
- Refernz und Links
-
www.css4you.de Referenz
http://thestyleworks.de/ref/ Referenz
- Elementgewichtung Kaskade
- Typ gibt 1 Punkt, z.B. body oder a - bei Punktgleichheit gilt letzt definierte Regel
Klasse: 10 Punkte
Id: 100 Punkte - div#navi entspricht 101 Punkten.
Direktangabe im Tag: 1000 Punkte
- Important
- color:blue!important; dadurch am wichtigsten, falls anderes zugewiesen wird es trotz
schwächeren Selektor ausgwählt
- Selektoren
- h1, p { font-size:48pt; color:#FF0000; } Tags
#extra { font-weight:bold; } Id
div#wrapper { font-weight:bold; }
.rot { color:red; } Klasse
p.normal { font-size:10pt; color:black; }
* { color:red; } alles
- Kind- und Nachbar-Selektoren
- h1 i { color:blue; font-style:normal; } Verschachtelte Tags: nur, wenn i innerhalb h1
hi > i { color:blue; font-style:normal; } Nur direkte Kinder werden angesprochen
div#textbereich a { color:red; } alle Links im textbereich
ul+p { color:red; } Nachbarselektor: ein p selektieren was direkt auf ein ul folgt <ul><p>
- Pseudokassen Link
- a:link { color:#FF0000; text-decoration:none; }
a:visited { color:#990000; }
a:active { color:#0000FF; } Moment des Klicks
a:hover { color:#0000FF; text-decoration: underline; }
a:focus { color:#990000; }
div#navi a:hover { color:#990000; } für bestimmten Bereich gültig
- Pseudokassen Input
-
input:focus { color:#990000; }
- Text einfügen
-
.class_1:before {content:"na toll! ";color:#ff0000;} Text mit Farbe rot wird vor das Element .class_1 eingesetzt
.class_1:after { content: "123"; color:red; } Inhalte nachträchlich in html einfügen
- Elemente ansprechen
-
li:nth-child(odd) { background:#eee; } für Zebraeffekt
li:nth-child(even) { background:red; }
li:nth-child(1) { background:red; } erstes direkt angesprochen
- Attributselektoren (CSS3)
- *[href^="http"] { } Selektor sucht Links die mit http beginnen
*[title] alle Elemente mit dem Attribut title
a[title] alle a Elemente mit dem Attribut title
a[href*="eyoo.de"] alle a Elemente in welchem href eyoo.de enthält
Es gibt noch viele weitere.
- Schriftarten
- font-family: Verdana, Segoe UI, Corbel sans-serif; Letzte ist Schriftart ohne Häkchen; Standart Schrift ist Times new roman 16
- Schriftgrösse
- font-size: 13px;
font-size: small; xx-small, x-small, small, medium, large, x-large, xx-large, smaller, larger oder 130%;
- Schriftform
- font-style: italic; kursiv - font-style: normal; nicht kursiv
- Schrifgewicht
- font-weight: bold; bolder, lighter, normal, oder Zahlenwert von 100 bis 900 - 400 ist normal
- Textfarbe
- color: #CC0000;
- Zeichenabstand
- letter-spacing: 3px; Abstand der Buchstaben
- Zeilenhöhe
- line-heigth: 1.5; 1.5 Fache der Schrifgröße ist die Zeilenhöhe
- Schrift mehrere
- font: bold 12pt Times; font-family, font-style, font-size, font-weight, font-height,
font-variant
- Gross oder Kleinbuchstaben
- text-transform: uppercase; alles Großbuchstaben
text-transform: capitalize; Wortanfänge als Großbuchstaben
text-transform: lowercase; alles Kleinbuchstaben
- Vertikal
- vertical-align: top; middle, bottom, sub (tieferstellen), super (höherstellen)
- Horizontal
- text-align: center; left, center, right, justify (Blocksatz)
- Inhaltsbereich
- width: 100px; bei keiner Angabe, so groß wie das Elternelement
height: 200px; wächst bei keiner Angabe mit Inhalt mit
- Innenabstand
- padding: 1px; um den Inhaltsbereich drumherum, also zwischen Inhalt und Border
padding-top:1px; padding-right:1px; padding-bottom:1px; padding-left:1px;
padding: 10px 20px 0 10px; top right bottom left
padding: 5px 20px; oben und unten, dann rechts und links
- Rahmen
-
border-color:red;
border-width:2px;
border-style:none; dotted (gepunktet), dashed (gestrichelt), solid (durchgezogen), double (doppelt),
groove (3D-Effekt)
border: 1px solid blue;
border-left:1px; border-right:1px; border-top:1px; border-bottom:1px;
border-top-color:blue;
- Außenabstand
- margin: 1px; margin-top:1px; margin-bottom:1px;
margin-left:1px; margin-right:1px; Besonderheit: bei
vertikalen Aussenabständen 2 Elemente wird der untere Abstand verschluckt. also beide 30 px, bleiben nur 30 vom oberen
margin: 10px 20px 0 10px; top right bottom left
- Hintergundsfarbe
- background-color: #003366; für Inhaltsbereich und Innenabstand
- Hintergrundsbild
- background-image: url(bild.gif); z.B auch für Farbverlauf
background-repeat: no-repeat, repeat (Voreinstellung gekachelt), repeat-x (nur von rechts nach links
gekachelt), repeat-y (nur von oben nach unten gekachelt)
background-position: 20px 30px; oben und links Wert -- left top;
background-attachment: fixed; Wasserzeicheneffekt
background: #003366 url(bild.gif) repeat-y left top; Kurzschreibweise
- Display
-
dispaly: inline; Erzwingt Inline; Elemente stehen dadurch nebeneinander, Anwednung ist z.B. vertikales Menu
display: block; Erzwingt ein Block
display: none; Element wird nicht angezeigt und es wird auch kein
Platzhalter freigelassen.
display: inline-block Das Element ist eine Mischung aus einem Block- und einem Inline-Element. Es wird als Block-Element formatiert, floatet aber wie Inline-Elemente in der Zeile.
- Positionierung
-
position: absolute; top:50px; left:10px; width:150px; height:150px; z-index:1;
Pixelgenau positioniert, losglöst von anderen Elementen; gemessen wird vom Elternelement, html ist ein nicht static Element.
position: relative; top:10px; left:10px; width:150px; height:150px; Vom Ort aus wo sich die Box
befindet wird diese 10px nach unten geschoben und 10 nach links; gemessen wird von der Anfangsposition des Elements
position: static; Positionierung im Textfluss.
position: fixed top:10px; left:10px; width:150px; height:150px; Wie absolute, jedoch bleibt das Element beim Scrollen stehen.
- Ebenen
-
z-index:1; Element mit höherem Wert überdeckt Elemente mit niedrigerem Wert
- Inline Elemente
- Inline Elemente dürfen keine Blockelemente enthalten.
Width und height können nicht angegeben werden (width und height sind immer automatisch, so groß wie Inhalt). Auch kann kein margin-top oder margin-bottom angegeben werden.
Die Höhe wird duch font-size bestimmt.
Beispile: span, em, strong, a, cite, img, label, legend, input, button, select, option, textarea
- OVERFLOW
-
Mit overflow: kann bestimmt werden, wie übergroße innere Elemente behandelt werden. Folgende Angaben sind
möglich:
overflow: visible; Inhalt ragt aus dem Element so weit heraus, dass sein Inhalt auf jeden Fall komplett sichtbar ist.
overflow: hidden; Inhalt wird abgeschnitten, wenn er die Grenzen des Elements überschreitet.
overflow: scroll; Inhalt wird abgeschnitten, wenn er die Grenzen des Elements überschreitet. Der WWW-Browser sollte jedoch Scroll-Leisten
anbieten, ähnlich wie bei einem eingebetteten Frame-Fenster.
overflow: auto; Der Web-Browser soll entscheiden, wie das Element im Konfliktfall angezeigt wird. Auch das
Anbieten von Scroll-Leisten soll dabei erlaubt sein.
- Sichtbarkeit
- visibility: hidden; nicht angezeigt
visibility: visible; Normaleinstellung
- Aufzählung
- list-style-type: none; keine Aufzählungszeichen bei li - weitere: circle, square, disc, decimal, ...
- float
- <img src="a.gif" style="float: right;"> Dieser Text
steht links. Das Bild wird rechts angezeigt
float: left; Element steht links und wird rechts davon von
nachfolgenden Elementen umflossen.
float: none; Kein Umfluss (Normaleinstellung)
- clear
-
<img src="a.gif" style="float: right;">
<p style="clear: right;"> </p>
<div style="float: left;">123 </div>
<div style="clear: both; width: 0; height: 0; font-size: 0; line-height: 0;"'></div>
clear: left; Beendet einen Umfluß mit float:left.
clear: both; Beendet den Umfluß um beide Seiten.
Die Angabe clear beendet das Umfließen andere Elemente. Ein mit clear formatiertes Element ist das Erste, dass nicht mehr neben anderen Elementen steht.
Es kann aber trotzdem mit der float-Eigenschaft formatiert werden, damit nachfolgende Elemente um dieses Element wieder herum fließen.
- Floats einschließen mit overflow:hidden
- <div style="overflow:hidden;">
<img style="float: left;" >
<p>Overflow schliesst Elemente ein.</p>
</div>
- Flexibles Layout
- #wrapper {
width: 80%; 80% des Browserfensters;
min-width: 620px; kleiner wirds nicht; max und min nicht ie6 > sternchenhack
max-width: 72px; an Schriftgröße gekoppelt, bei Schriftgröße 13: 13 * 72, also wrapper nicht
breiter als 976 Pixel
min-height: 300px; für kurze Texte
}
width: auto; nimmt allen Bereich der zur Verfügung steht, innerhalb der Grenzen, anstatt 80%,
kleine Bildschirme können dann auch besser darstellen.
- Reset
- * { padding:0; margin: 0; } Reset: einheitliche Ausgangswerte, damit Browserunterschiede verschwinden
body, div, h1, h2, h3, h4, h5, h6, p, blockquote, pre, code, ul, ol, li, dl, dt, dd, table, th, td, form, fieldset, legend,
input, textarea { padding: 0; margin: 0; }
- Restaurierung der Abstände
- h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, dl { margin-bottom: 1em; } nach Reset neu
definieren
li { margin-left: 1em; }
blockquote { margin: 1em 2em; } Zitate einrücken
ul, ol, dl { margin-left: 1em; } Alle Listen wieder einrücken
li { margin-left: 2em; } Listenelemente etwas mehr einrücken
dd {margin-left: 2em; } Definitionen in Definitionslisten noch mehr einrücken
ul ul, ul ol, ul dl, ol ul, ol ol, ol dl, dl ul, dl ol, dl dl { margin-top: 0; margin-bottom: 0; } Verschachtelte
Listen ohne Außenabstand oben/unten
ul { list-style-type: square; } Aufzählungszeichen
ol { list-style-type: decimal; } Aufzählungszeichen
ul ul { list-style-type: disc; }
ol ol { list-style-type: lower-alpha; }
ul ol { list-style-type: decimal; }
ol ul { list-style-type: square; }
table { border-collapse: collapse; border-spacing: 0; } Tabellen
td { vertical-align: top; }
fieldset, a img { border: none; } Formulare und verlinkte Bilder ohne Rahmen
- Scrollbalken
- html { overflow-y: scroll; } für alle Bereiche Scrollleiste
- Formatierung für gut lesbaren Text
- body {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: small;
width: 50em; damit nicht zu lange Zeilen
padding: 10px;
margin: 0 auto;
}
p { line-height: 1.5; margin: 1em 0; }
Standard Schriftgröße für lange Texte
Schwarz auf weiß
Zeilenhöhe mindest 140%
- Beispiel für Druckversion
- <link href="druckversion.css" rel="stylesheet" media="print">
body { font-family: Georgia, "Times New Roman", Times, serif; font-size: 11pt; }
h1, h2 { font-family: Verdana, Arial, Helvetica, sans-serif; }
h2 { font-size: 16pt; padding-top: 6pt; border-top: 1pt solid #d90000; margin-top: 12pt; }
#navibereich { display: none; }
- Blockelemente zentrieren
- div#wrapper { width: 720px; margin: 10px auto; margin-top: 10px; margin-right: auto;
margin-bottom: 20px; margin-left:auto; padding: 10px 20px 0 10px; }
- Progressive Enhancement
- Weseiten müssen nicht in jedem Brower gleich aussehen. Ältere Browser zeigen einfachere Versionen an.
Präfixe der Brower, Firefox z.B. -moz-, dies um Lösung für bestimmte Browser anzubieten
- Abgerundete Ecken
- border-radius: 10px; www.border-radius.com Radius Generator -- mit background: none
durchsichtiger Hintergrund des div
border-radius: 5px 50px 5px 50px; 50 ist stärker abgerundet
border-top-left-radius: 10px;
- Boxschatten
- box-shadow: 4px 4px 10px #888; horizontal, vertical, blur, farbe -- Schatten unten
rechts, 10 px ist unschärfe
box-shadow: -4px -4px 10px #888; Schatten oben links
- Bild mit Schatten und runden Ecken
- <img src="" style="box-shadow: 4px 4px 10px #888; border-radius:
10px;">
- Text Schatten
- text-shadow: 1px 1px 2px #999; nicht ie
text-shadow: 0px 0px 1px #555;
- Farbverlauf
- erzeugt Farbverlauf
background: rgb(228,245,252); Old browsers
background: -moz-linear-gradient(left, rgba(228,245,252,1) 0%, rgba(42,176,237,1) 100%); FF3.6+
background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(228,245,252,1)),
color-stop(100%,rgba(42,176,237,1))); Chrome,Safari4+
background: -webkit-linear-gradient(left, rgba(228,245,252,1) 0%,rgba(42,176,237,1) 100%); Chrome10+,Safari5.1+
background: -o-linear-gradient(left, rgba(228,245,252,1) 0%,rgba(42,176,237,1) 100%); Opera 11.10+
background: -ms-linear-gradient(left, rgba(228,245,252,1) 0%,rgba(42,176,237,1) 100%); IE10+
background: linear-gradient(to right, rgba(228,245,252,1) 0%,rgba(42,176,237,1) 100%); W3C
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e4f5fc', endColorstr='#2ab0ed',GradientType=1 );
IE6-9
- Tranzparenz
- <div style="opacity: 0.7;">opacity<br>transparent</div>
Deckkraft mit Werten zwischen 0 und 1, z.B. div überhalb eines Bildes
<div style="background: rgba (192,192,192, 0.7);">rgba<br>Schrift ist nicht
transparent</div> Tranzparenz gilt nur für Hintergrund
- Transform
- dif { transform: translate(100px, 50px) rotate(10deg)
scale(1);
-moz-transform: translate(100px, 50px) rotate(10deg) scale(1); Webfix mozilla
-webkit-transform: translate(100px, 50px) rotate(10deg) scale(1); Webfix chrome
width: 200px; height: 200px; background: red; } versetzt, gedreht, verkleinert
- Farblicherübergang mit Zeitverzögerung
- #uebergang { transition-property: background-color; transition-duration: .5s;
-moz-transition-property: background-color; -moz-transition-duration: .5s;
-webkit-transition-property: background-color; -webkit-transition-duration: .5s;}
#uebergang:hover { background-color: blue; }
- Mehrfachhintergründe
- div { width: 600px; padding: 5px 50px;
background-image: url(error-icon.png), url(comment-icon.png), url(orange_bg.jpg);
background-position: top left, top right, top left;
background-repeat: no-repeat, no-repeat, no-repeat; } erstes ist im Fordergrund, ohne Tranzparenz verdeckt
Impressum: Gero Zickermann, Haasestr. 3, 10245 Berlin