Montag, 28. April 2014

Kurs Tag 15 - HTML & CSS - CSS: Floaten (Bilder Elemente), Clear

Mitschrift 28.04.2014

TAG 15

Floaten/ Clear / Bilder & Ebenen

letztes Themengebiet, dann sind wir mit den grundlegenden Dingen des CSS durch.

  • Ordner: HTML-Kurs.zip herunterladen -> Indexdatei öffnen! -> Tag 12
  • Neue Datei Öffnen: floaten.html

Float = fließen / Fluss

wir haben zwei div-Container erstellt :

<!doctype html>
<html>
    <head>
        <title>Float</title>
       
        <style type="text/css">
            div#eins {
                width: 50px;
                height: 50px;
                background-color: silver;
               
            div#zwei {
                width: 150px;
                height: 150px;
                background-color: orange;
    </head>
   
    <body>
   
    <div id="eins"></div>    

    <div id="zwei"></div>
       
    </body>
   
</html>

Warum werden sie untereinandergestellt? - Weil sie Blockelemente sind.


Wir erstellen einen Elementselektor div { mit "float: left;"}, dann werden sie nebeneinandergestellt. Das Attribut float hebt den Zeilenumbruch des Blockelements div auf!*/-->
           
            div {
                float: left;
            }


So setzt sich der zweite Container direkt hinter den ersten Div - er versucht ihn zu "umfließen" - die Blockelementeigenschaften sind aber weiterhin gewahrt!

Was passiert hier wirklich? Floaten bewirkt bei den Elementen:

Regel1: Das Attribut float hebt den Zeilenumbruch des Blockelementes auf.
Regel2: Es wird immer in die Richtung geflossen, die als value angegeben wird. 
= das Element richtet sich nach der Flussrichtung aus - legt sich wie magnetisiert neben das vorherige Element
left -> alles linksbündig (Flussrichtung rechts)
right -> alles rechtsbündig (Flussrichtung links) das erste Element rechtsbündig und das nachfolgende Element legt sich links daneben - also in Flussrichtung daneben!
none -> hebt den float auf
heritate ->Regel3: !!! Die Reihenfolge im Quelltext ist ausschlaggebend!!!
Wenn ich die Breitenbeschränkung rausnehmen, spannt sich das Element über die gesamte Breite.

Wenn ich den Container gefloatet habe, bei voller Breite, ist der nachgestellte Container weg.

Wenn ich keine Breitenangaben im div2 habe - die Containerbreite richtet sich nach der Breite des Textes aus. (ähnlich wie bei Inlineelementen)

Wenn wir einen dritten div-Container eingeben, fließt der in Flussrichtung weiter - also erst der im Quelltext oben stehende, dann die beiden folgenden Container hintereinander.

Wir können auch in einzelnen Selektoren bestimmen, das einzelne Elemente float = right hat, obwohl die anderen weiterhin left bleiben.

=>So überschriebt der Browser den div-Elementselektor nur für dieses Element:
<!doctype html>
<html>
    <head>
        <title>Float</title>
       
        <style type="text/css">
            <!-- /* Elementselektor mit "float: left;", dann werden sie nebeneinandergestellt. Das Attribut float hebt den Zeilenumbruch des Blockelements div auf!*/-->
           
            div {
                float: left;
            }
           
            div#eins {
                width: 150px;
                height: 150px;
                background-color: silver;
            }
           
            div#zwei {
               
                height: 150px;
                background-color: orange;
            }
           
            div#drei {
                width: 150px;
                height: 150px;
                background-color: green;
                float: right;
            }
           
        </style>
    </head>
   
    <body>
   
    <div id="eins"> </div>
    <div id="zwei">Inhalt des zweiten Containers </div>
    <div id="drei">Inhalt des dritten Containers </div>
   
   
    </body>
   
</html>

selbst wenn ich jetzt das Browserfenster kleiner ziehe, bleibt die Flussrichtung rechts erhalten und so klemmt sich der dritte grüne Container drunter und fließt unterhalb der anderen Elemente weiter. (im Folgenden visualisiert:)



  
wenn ich jetzt auch den orangen container auf float: right setze, geht es ebenso:
 
Platz für alle Container


der grüne Container rutscht runter, um weiter fließen zu können

jetzt hat auch der gelbe Container keinen Platz mehr und rutscht unterhalb weiter.

Die Reihenfolge der Elemente im Quelltext ist wichtig UND 
die Spezifität der Selektoren
 Danach werden die Elemente hierarchisch umgebrochen.

Beispiel für hierarchisches Umbrechen:
Wenn wir jetzt noch einen vierten Container an unterster Stelle stellen, gilt hier der Elementselektor (niedriger als der ID-Selektor des grünen und orangen Containers), da keine besonderen float-Angaben für diesen Container gemacht wurden.
Der blaue Container ist nicht nur im Quelltext hierarchisch ganz unten, sondern auch von den Selektoren untergestellt - er bricht also als erstes um. 
noch haben alle Container Platz

der blaue Container muss als erstes weichen, dann der grüne und schließlich der gelbe


Bilder floaten 

neue Datei: floaten-2.html

wir fügen ein Bild ein...
default- / Standard mäßig, ist es linksbündig ausgerichtet!

Link: float bei css4you

Wir können jedes Element mit float anpassen!

dann fügen wir einen Paragraph ein - roter Rahmen

jetzt geben wir dem Image ein float: left

Dann rutscht das nachfolgende Element neben das Bild - es legt sich darum - der Rahmen fließt auch drum herum:


Das Element umfließt! Es drängt sich auch in die obere Ecke, ABER der Inhalt des Elements ist davon ausgeschlossen!
Regel: Die Inhalte überlagern sich nicht, nur die Elemente!!!

... und einem Paragraph
untereinander ohne float

Bild mit float: left -> das nachfolgende Element legt sich unter das Bild, die Inhalte ordnen sich um das Bild an - er umfließt das Bild!
Das Blockelement p spannt sich weiterhin über die gesamte Breite, aber es legt sich an das Bild - nicht drüber oder drunter!!!

Der Paragraph schiebt sich mit auf die Position links oben!
Der Inhalt des Elementes umfließt das Element!
Die Elemente werden nicht vom Block- zum Inlineelement umgewandelt, sondern nehmen den Zeilenumbruch weg und lassen das nachgfolgende Element auf die Position des ersten Elementes rücken - nur das Element, nicht den Inhalt des Elements!

Inlineelemente legen sich zwar auch nebeneinander, aber gefloatete Blockelemente heben den Zeilenumbruch auf und legen sich dahinter (bzw der Inhalt darum) und bewegen sich in eine vorgegebene Richtung.

Regel: Floaten verändert das Grundverhalten / ursprüngliche Verhalten der Elemente!
Elemente fließen in die angegebene Flussrichtung
nachfolgende Elemente positionieren sich dahinter, weil der Zeilenumbruch aufgehoben wird.Was tatsächlich passiert, demonstriert unser Beispiel mit dem Bild:
an sich erzwingt sich das Bild einen Zeilenumbruch
durch das floaten bleiben die Elemente das, was sie sind - der paragrph mit dem roten Rahmen ist und bleibt ein Blockelement. Nur der Zeilenumbruch wird aufgehoben.
Das Element legt such unter das Bild, nur der Inhalt umfließt das Bild! Das p-Tag bleibt ein Blockelement und spannt sich über die gesamte Breite aus!


<!doctype html>
<html>
    <head>
        <title>Float 2</title>
       
        <style type="text/css">
           
           
            img {
                float: left;
            }
           
            p {
                border: 1px solid red;
            }
           
        </style>
    </head>
   
    <body>
   
    <img src="images/broetchen.jpg" />
   
    <p>

            Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
           
            Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
           
            Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
           
            Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
    </p>
    </body>
   
</html>

Wofür brauche ich umlaufenden Text und floats?
  • Artikel
  • Werbeeinbledungen im Text...

Tipps zu neuen Attributen:
line-height = Zeilenhöhe

text-align (bspw. justify), Textausrichtung - justify = Blocksatz
box-shadow: 10px 10px 10px #aeaeae; = Schatten ums Bild :)

Aufgabe: Bitte nachformatieren:

weiteres Beispiel - Hinführung zum Clear
h1 und der schwarze div-Container (durch die Markierung wirkt schwarz dunkellila) beginnen oben links, nur der Inhalt stellt sich neben die Container



Clear

Gegenstück zum Floaten!
Löst Float wieder auf - float hat Auswirkung auf nachfolgende Elemente - um diese Betroffenheit herauszunehmen, muss ich den float unterbrechen!

Clear-Attribut alle vorher gegangenen Float-Aktionen zu sagen: Nein, ich bin nicht betroffen (float unterbrochen, gecleared)

Dann verhält sich das Element wieder so, wie wir es von einem Blockwlement erfahren


Durch das Clear mit der entsprechenden Flussrichtungsangabe, schalte ich für dieses Element bestimmt die vorher gegangenen Float-Angaben aus.
Alle nachfolgenden floats gelten wieder auch für dieses Element
Damit das Element immer (egal ob right oder left) von den floats losgelöst ist - gebe ich für das Element an: "clear: both"

float: right
clear: right
Ich muss quasi nur dort clearen, wo ein Element durch das vorangeganegne gefloatete Element betroffen ist.

float
clear


Nur der grüne Container ist betroffen, die anderen richten sich nur mit aus


So können wir Spalten definieren über div-Container

Ich habe später nicht mehr die Möglichkeit mein HTML zu erweitern, da es eine klare Trennung zwischen und Struktur und Formatierung in den Content Management Systemen (CMS) gibt!
ERGO: Eine schlechte Struktur kann auch ein super CSS auffangen.

Damit ich Elemente wieder in die ursprüngliche Form, mit den Eigenschaften, die es hat zurück bekomme, muss ich clearen! je nachdem ob es vorher float: left hier?

Hier mal ein paar Veranschaulichungen zu float & clear
clear left


2 Bilder clear both

3 Bilder flot - nur das grüne Element ist betroffen, die anderen folgen den Standardeigenschaften

float


Tipp/ Exkurs: Ausrichtung zentriert
NICHT über center!
Datei: zentriert.html

Wie kann ich Dinge zentrieren?
Ich lege um alles einen wrapper/ Einfasser:

HTML: <div id="wrapper"> zentrierter Inhalt </div>
CSS: #{margin-left: auto; margin right: auto; width: 600px;}

für Responsive-Design bitte keine Pixelangaben, sondern bspw. 80%, also:
HTML: id="wrapper"
CSS: #{margin-left: auto; margin right: auto; width: 80%;}


Ebenen floaten:

Wir können auch mehrere Klassen vergeben:
Rahmen nicht mehr ums Bild, sondern füge das Bild in einen div-Container ein:
  • <div class="ebenelinks">Bild</div> oder
  • <div class="ebenerechts">Bild</div>und verwende es für mehrere Bilder auf der Seite
So kann ich sogar einen Untertitel geben, indem ich ihn als Text in den div schreibe.


Ebene floaten - Bild im div-Container

Da ich das Bild in die Ebene lege, heißt es nicht mehr Bild floaten, sondern Ebene floaten!

Freitag, 25. April 2014

Kurs Tag 14 - HTML & CSS - CSS: Schriften in CSS einfügen, Größenangaben (em, px...)

Mitschrift 25.04.2014

TAG 14

Schriften in CSS einfügen

Es gibt 2 Möglichkeiten Schriften, die nicht automatisch im System sind, wie arial, sans-serif, helvetica... in die CSS-Datei einzufügen.

2 Möglichkeiten Schriften einzubauen:

1) Webfonts / Google Schriftarten


Ich nutze die Schrift referenziert!!! (also mit Link oder @import)
  • interne Schriftverlinkung über link-Tag
  • Bewährte Methode: Dozent bevorzugt diese Methode, da CSS nur Formatieren soll und Referezierungen in den Head-Bereich der HTML-Datei gehören!!!
  • <link rel="stylesheet" href="css/template.css" type="text/css" />
  • habe sie nicht auf der eigenen Seite, sondern mit der URL oder über einen Link verbunden.
  • Risiko: Falls der Dienst abgestellt wird oder die Links ändert, ist meine Schrift weg.


=> Einfügen über einen Link im Head-Bereich des HTML-Dokuments:

  • gehe zu Google Webfonts 
  • eine Schrift auswählen durch Button "Add to Collection": Patrick Hand SC

  
  • unter 1. Choose the style:
    Tachometer zeigt an, inwiefern die Schrift unser Lageverhalten verändern kann


  • unter 3. add this code - Standard!
    Inhalt der Reiterkarte kopieren und im Head meines Dokumentes angeben/einfügen.

Hinweis: Ein Link-Tag! = wir referenzieren auf die google Fonts Seite:
<link href='http://fonts.googleapis.com/css?family=Sofadi+One|Patrick+Hand+SC' rel='stylesheet' type='text/css'>
 ERGO: Wir importieren stylesheet aus einer anderen Quelle.


  • unter 4. Integrate the fonts into your CSS
    Dann muss ich es in mein im Headbereich meines HTML-Dokumentes einfügen UND auch in meinem CSS-Dokument, wie weiter unten angegeben!

Den Code kopieren & im Headbereich eintragen
  • Headbereich im Quelltext:
<!doctype html>
<html>
    <head>
        <title>Web Fonts</title>
      
        <link href='http://fonts.googleapis.com/css?family=Sofadi+One|Patrick+Hand+SC' rel='stylesheet' type='text/css'>
      
           
<link rel="stylesheet" href="css/template.css" />
      
    </head>
  • CSS-Angaben im CSS-Dokument:
       *{
            font-family: 'Patrick Hand SC', verdana, helvetica, arial, sans-serif;
            font-weight: 300;
         }

Tipp: Damit ich nicht alle Elemente definieren muss, für die die Schrift gilt, stelle ich die Schrift in einen Globalselektor!


  • Globalselektor: * {font-family angeben!!!}



anderes Beispiel - andere Schrift mit mehreren Styles (Strichstärken)
Schrift Dosis hat 7 Styles (mit verschiedenen Strichstärken)

Hinweis: ich kann für alle Schriften die Strichstärke verändern:
  • mit font-weight: 800;  kann ich die Strichstärke verändern - also den Text fetter und dünner schreiben lassen.
  • CSS4YOU > Schrift > font-weight 

Der Browser interpoliert (frischt auf), wenn wir die Schriftbilder und Strichstärken verändern. 


ABER: Immer wenn der Browser interpolieren muss, also die Schriften nicht physikalisch vorliegen, kann es Probleme geben, bspw. wenn man in pdf konvertiert etc.


ERGO: es macht Sinn, sich eine Schrift zu besorgen, die alle möglichen Schriftstärken abbilden kann, damit es später keine Probleme gibt.



=> Einfügen über die @import Angabe im CSS-Dokument:

Exkurs:
In CSS gibt es eine Besonderheit:
@ Klammeraffe: hier wird etwas importiert / implementiert
Beispiele: @font-face, @print, @media

=externe Schriftverlinkung!!!
  • gehe zu google Webfonts
  • suche eine Schrift aus durch "Add to collection" (Open Sans Condensed)
  • klicke auf "Use"
  • bei 3. den zweiten Reiter @import wählen!

  • Haken bei light 300 - genügt 
  • @import-link kopieren 
  • Link in CSS-Datei einfügen
  • Sichwerheitshalber den Link mit einfache Anführungszeichen 'link' quotieren!!!
    • also: @import url('http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300'); 
  • So wird erstmal keine Schrift angezeigt, ich muss sie erst VERWENDEN!!!
  • jetzt verwenden durch Angabe im Globalselektor!
    • steht unter 4. in den Google Web-fonts in der Use-Ansicht - kopieren& einfügen!
    • Pluszeichen sind immer Leerzeichen!
    • Grundsätzlich mit font-weight eine Strichgröße benennen!!!!!
    • Angaben im CSS:

      @import url ('http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300');
             
              *{
              font-family: 'Open Sans Condensed', verdana, helvetica, arial, sans-serif;
              font-weight: 300;
              }
Hinweis:
die @import-Methode geschieht durch Verbindung mit einer URL
Das hat den Vorteil, dass es nicht nur über einen bestimmten Link, wie beim Standard-Einfügen geschieht (dieser kann kaputt gehen und schon ist die Schrift nicht mehr vorhanden).

URL: Ich kann mir den Link/ die Adresse rauskopieren und im Browser öffnen
-> so bekomme ich die CSS-Angaben angezeigt:


@font-face {
  font-family: 'Open Sans Condensed';
  font-style: normal;
  font-weight: 300;
  src: local('Open Sans Cond Light'), local('OpenSans-CondensedLight'), 
url(http://themes.googleusercontent.com/static/fonts/opensanscondensed/
v7/gk5FxslNkTTHtojXrkp-xF1YPouZEKgzpqZW9wN-3Ek.woff) 
format('woff');
}

-> hier werden uns die CSS-Angaben von Googlefonts angezeigt durch Implementierung @font-face und somit haben wir die Schleife zur 2. Möglichkeit der Schrifteneinbindung gezogen:
Einfügen von heruntergeladenen Schriften!

2) Dafont oder andere Schriftportale

  • ich lade die Schrift herunter! 
  • Einbetten einer heruntergeladenen Schriftdatei in meine CSS-Datei
  • Dafont hat den Vorteil, dass ich mir die Schrift physikalisch in meinen Schriftenordner laden kann - also auf meinem Rechner/Server liegen habe!
    Dann füge ich die Schrift über @font-face ein

    Schriften mit @font-face einbinden - so geht's!
a) @font-face {} in mein CSS einfügen
b) font-family: 'Foxes-In-Love' ;  in @font-face eintragen
  • wir definieren den Verwendungsnamen der Schrift - Wir müssen angeben, wie die Schrift heißt  => Hier kann ich jeden Namen vergeben!!! z.B. Standardschrift oder so, woie mein Unternehmen

c) src: URL ('Foxes In Love Font.ttf');
  • URL sagt aus, dass eine relative Pfadangabe folgt!
  • es ist eine physikalische Schrift - hier wird angegeben, wo sie liegt, damit der Browser sie finden und anwenden kann.
  • wir verknüpfen die physikalische Schrift mit dem Dokument
  • für die Quelle muss ich gucken, wo meine HTML-Datei steht und dann den relativen Pfad angeben also bspw.: template.css steht im Ordner CSS in Tag 14 - Ordner Fonts im selben Tagesordner:
    src: url( '../fonts/
    'Foxes In Love Font.ttf');
  • Jetzt ist die Schrift erst implementiert - bis hierhin wurde nur der Name definiert und die Quelle angegeben.
d) Jetzt müssen wir die Schrift verwenden!!!
  • am Besten über den Globalselektor:
    • * {font-family: 'Foxes In Love Font'.ttf, verdana, helvetica, sans-serif; font-weight: 200;
  • Erst font-family-Angaben im CSS wird die Schrift verwendet/aktiv!!!

Quelltext in CSS:
 @font-face {
            font-family: 'Foxes-In-Love';
            src: url('../fonts/Foxes-In-Love.ttf');
        }
                        
        *{
            font-family: 'Foxes-In-Love', 'Open Sans Condensed', verdana, helvetica, arial, sans-serif;
            font-weight: 300;
        }

 

Allgemeine Hinweise zu Schriften:

Dateiendungen für Schriften
wir unterscheiden nach TruType- und OpenType-Schriften!
-> bitte selber nachlesen:

  • Open-Type-Schrift : .otf
  • True-Type-Schrift: .ttf
Warum Schrift in ''?
Die üblichen Schriften sind im System verankert - der Browser kennt sie. Aber die neuen Schriften kennt das System nicht. mit den einfachen Anführungszeichen helfen wir dem Browser den Schriftnamen zu erkennen. Teilweise heißen die Schriften "Schrift bold" - würden wir ohne '' schreiben, würde er nicht wissen, ob nun Schrift oder bold die SChrift ist.

Deshalb auch keine Leerzeichen verwenden. 
ALSO IMMER DIE LEERZEICHEN IN DEN SCHRIFTEN DURCH -(Bindestriche) oder _(Unterstriche) ersetzen!!!

ERGO: Vereinheitlichung ist wichtig: Entscheiden Sie sich für eine Einfügungsmethode!!!
Die Link-Methode hat sich bewährt!


Aufgabe: über die Link-Funktion oder/und @import-Funktion eine Schrift einfügen! 


DATEI: font-import.zip erhalten -> können wir als Vorlage nutzen!
hier sind template dateien zu finden, wie die Vorgehensweisen bei googlefonts und über @font-face aussehen.

Hinweis für die Realität:
Man kann über @font-face mehrere Schriften einfügen ins Dokument, aber in der Realität macht man das besser nicht - warum? 


Weiter geht es mit Größenangaben / Schriftgrößen

Link zu SelfHTML
->weg von absoluten zu relativen Schriftgrößen
  • absolute Schriftgrößen:
    • nicht skalierbar
    • schwer zu vergrößern 
    • Früher haben wir mit pt (Punkt gearbeitet - absolut: 1 Punkt = 1/72 inch - ein inch = 2,54cm)
  •  relative Schriftgrößen
    • px = Pixel (Mischform aus absolut und relativ) - keine echte relative Schriftgröße, da in Relation
    • em = equal to M (Geviert im klassischen Sinne des Drucks)
      • relative Größenangabe bezogen auf die Schriftgröße des Elements
    • %
Neue Datei: groessen.html

h1 {}
Die Relation geht immer von der Standardeinstellung des Browsers aus!
Herauszufinden über den Firebug:
rechte Seite - Berechnet: hier wird angegeben, was 100% bedeutet:

 wir können auch andere &-Angaben machen

und sogar Dezimalzahlen angeben:




Welche Vorteile hat es relative Größenangaben zu machen?
Es ist egal, welches Endgerät ich nutze - Responsive! Super, weil die Leute sowohl vom Smartphone, als auch über Tablets und Rechner ins Netz gehen! 
Der Browser skaliert sich automatisch richtig! 
ERGO: Die Darstellung passt immer zum Gerät! 

Bootstrap wird häufig als CSS-Hilfe verwendet! 
(Werbeslogan: Designed for everyone, everywhere.

Bootstrap makes front-end web development faster and easier. It's made for folks of all skill levels, devices of all shapes, and projects of all sizes.)

Linktipps  (Datei: links-css.txt) :
# CSS allgemein
http://www.mediaevent.de 
http://www.postner.de/blog/2011/08/10/css-box-shadow-an-einzelnen-seiten/ 

# Effekte CSS3
http://www.onlinecasinodemar.com/webdesign/xhtml-css/beeindruckende-effekte-mit-der-css-eigenschaft-text-shadow/

# IE Filter
http://www.drweb.de/magazin/internet-explorer-spezial-die-filter-des-internet-explorers/

# px oder em
http://www.elmastudio.de/webdesign/tipps-und-tools/pixel-oder-em-welche-schrifteinheit-ist-die-richtige/  - diesen Beitrag bitte lesen = Aufgabe!


Hier ein Zitat elmastudio.de:

Pixel oder em? Welche Schrifteinheit ist die Richtige?

Soll ich Pixel oder em für mein CSS verwenden? Was sind eigentlich die Unterschiede? Und welche Vor- und Nachteile gibt es? Da ich ursprünglich aus dem Grafikdesign komme, war mir früher eigentlich nur Punkt (pt) als Schrifteinheit geläufig. Im Webdesign begegneten mir dann auf einmal Pixel (irgendwie noch logisch), em (schon etwas komplizierter) und Prozent als weitere Einheiten. Es war also mal wieder an der Zeit, etwas Neues dazu zu lernen.


Pixel oder em
Falls es dir ähnlich geht wie mir, hier eine Übersicht, die ein wenig Licht ins Dunkel bringen soll. Damit dir die Entscheidung für eine Schrifteinheit, bei deinem nächsten Projekt auf keinen Fall mehr Kopfzerbrechen bereitet.
Pixel (px)
Ein Pixel ist die kleinste Einheit einer Rastergrafik, bzw. deren Bildschirmdarstellung. Eine Schrift in 14px, ist also auf deinem Monitor 14 Pixel hoch, ganz egal welche Schriftart du verwendest.
Pixel im Vergleich
Pixel ist also eine statische Einheit. Sie verändert sich nicht. Egal ob du dir die Schrift auf Windows oder Mac, oder in unterschiedlichen Browsern anschaust.
Pixel verändern sich auch nicht in verschachtelten (cascading) Parent-Child-Elementen. Wenn du also in einen Parent-Element mit 18px ein Child-Element mit 16px platzierst, bleibt das Child-Element 16px groß.
Willst du sicher gehen, dass dein Design, auch auf unterschiedlichen Systemen und Browsern, genau so aussieht, wie du es auf deinem eigenen Rechner angelegt hast, dann erreichst du das sicher am besten mit Pixeln.
em
Die Schrifteinheit em (aus dem Schriftsatz: equal to M) hat im Gegensatz zu Pixeln keinen festen Wert, da em immer relativ zur definierten Schriftgröße in Pixeln steht.
Wenn du also in deinem CSS Style Sheet die Textgröße mit 10px definierst, ist 1em=10px. Soll deine h1-Überschrift dann 30px groß sein, sind das 3em. Eigentlich gar nicht so schwierig, oder?
Wenn du allerdings nirgends in deinem CSS eine feste Textgröße definiert hat, orientiert sich em an der standardmäßigen Browser-Einstellung, die bei den meisten Browsern bei 16px liegt. 1Em wäre dann also dann =16px.
Du kannst dir bestimmt schon vorstellen, dass diese Rechnung auch komplizierter werden kann. Vor allem wenn du in deinem Style Sheet eine ganze Reihe unterschiedlicher Schriftgrößen verwendest.
Ein beliebter Trick ist deshalb, die Textgöße nicht auf einen festen Pixelwert zu setzen, sondern auf 62.5%. Denn wenn die Standard-Browsereinstellung 16px ist, macht das bei 62.5% =10px. So wird eine Schriftgröße von 21px zu 2.1em, was die Rechnung sehr viel einfacher macht.
 
Was sind die Vor- und Nachteile?
Ein großer Vorteil der Einheit em ist, dass em, im Gegensatz zu Pixeln, in Internet Explorer 6 oder noch älteren Browsern in der Größe veränderbar ist.
Ems sind außerdem auch auf Webseiten mit elastischen Layouts im Einsatz. Hier werden alle Elemente der Webseite in em definiert, so dass alle Elemente im Verhältnis zueinander stehen.
Das heißt: Wenn du deine Schriftgröße veränderst, passen sich alle Elemente auf deiner Seite an. Das macht ein elastisches Layout natürlich enorm flexibel.
Vorsichtig solltest du allerdings sein, wenn du em vor allem als Ersatz für Pixel verwenden willst. Ems stehen immer in Relation zu ihrem Parent-Element. Das bedeutet, sie verändern ihren Wert, sobald zwei Elemente ineinander verschachtelt sind (wenn du z.B. ein List-Element li in einem Paragraph-Element p setzt). Was zu einem ganz schönen durcheinander führen kann, wenn du viele Elemente ineinander verschachtelst.
Nützliche kleine Helfer
Beim praktischen Pixel zu Em-Umwandler bekommst du den CSS Code für deine Schriften auch gleich mit dazu.
Der Pixel zu Em Rechner ist ein kleines, aber hilfreiches Javascript-Tool.
Mit Typetester kannst du Schriften in verschiedenen Größen, Farben, und Fonts testen, und bekommst auch gleich den CSS Code für deine Auswahl generiert.
Noch mehr Lesestoff
»How to size Text in CSS« ein Artikel von Richard Rutter von A List Apart.com.
Einen tolle Übersicht über Pixel, Em, Prozent und Punkt gibt Chris Coyier von CSS-Tricks in seinem Artikel »px-em-%-keyword«.

Ems stehen immer in Relation zu ihrem Parent-Element. Das bedeutet, sie verändern ihren Wert, sobald zwei Elemente ineinander verschachtelt sind (wenn du z.B. ein List-Element li in einem Paragraph-Element p setzt). Was zu einem ganz schönen durcheinander führen kann, wenn du viele Elemente ineinander verschachtelst.  

-> wir können es für uns nutzen!!!

Wir können es ausnutzen, Texte und Textpassagen halbwegs proportional zueinander wachsen zu lassen!
Ich muss halt irgendwo mal Prozentangaben machen, um Veränderungen vornehmen zu können.
-> der firebug hilft uns bei der Berechnung :)

Datei: em-px.html - in der Datei können wir mit Werten spielen, um die Relationseigenschaft von em besser zu verstehen! 

weiterer Link:
http://pascalbirchler.ch/2008/02/09/die-unglaublichen-em-elastischen-layouts-mit-css/

Die unglaublichen Em & elastischen Layouts mit CSS

Dieser Beitrag ist eine freie Übersetzung des Artikels The Incredible Em & Elastic Layouts with CSS, welcher am 25. September 2007 von Jon Tan veröffentlicht wurde