Inf / CSS

CSS = Cascading Style Sheets

Intro

  • um ein HTML Inf:css/e01Html.php zu formatieren benutzt CSS folgende
  • Snytax: selector '{' (attribute ':' value)* '}', z.B. Paragraphen zentriert und rot Inf:css/e02Syntax.php
  • Selectors Inf:css/e03Selector.php gibts für
    • Elemente: (einfacher Name, für Firefox nicht mit Ziffern anfangen!)
    • id=: mit # anfagen
    • class= mit . anfangen
    • mit commas können Selektoren gruppoiert werden: p, a, h1 { ...}
    • oder geschachtelt a p {...}: betrifft p geschachtelt in a
    • allgemeiner gibt es patternmatching, pseudo Elements und pseudo classes, combinatoren (' ' = descendent, '>' = child, '+'=benachtbarte Geschwister usw.)
  • Stylesheet kann auf drei Arten geholt werden:
  • Auswahl eines Wertes für ein Element-Property.
    1. cascade Wert falls existiert
    2. sonst falls inherit: Wert der Property im parent Elements des DOM Tree
    3. sonst DefaultWert
  • cascade: Zuerst alle Deklaration die für den MediaType und Element/Property zu treffen und dann sortieren nach
    1. importance (!important clause) and origin (author, user, or user agent): ua, u, a, a i, u i
    2. specifity des Selectors (spezifischer überschreibt weniger spezifisch)
    3. Reihenfolge: (external, internal, inline) und dann überschreibt späteres das früher spezifizierte
  • spacing Inf:css/e11space.php
  • Inf:css/e20mediaQuery.php : Media query für Screen Grösse Orientierung usw.
    • im html header meta viewport angeben, damit Handy nicht einfach grösste Auflösung benutzt
    • image scaling: auf max-width: 100% und height:auto stellen, damit Bilder richtig ge'scale't werden (sonst verzerrt, weil Höhe und Breite unabhängig verkleinert werden

Table

Boxes & Layout

  • background image: Inf:css/e05BgImg.php mit vielen Attributen, wie repeat in welche Richtigung, fixed/scroll usw.
  • box model Inf:css/e06Box.php : 4 Bereiche, von innen nach aussen
    1. content: Nutz Rechteck. with und heigth eines Elements betreffen nur den content!
    2. padding: Abstand zwischen content und border
    3. border: editierbarer rand, mittel border-type usw..
    4. margin: transparenter Rand ausserhalb border
    5. outline: eine optionale weitere Einrahmung
    • Achtung: damit es richtig dargestellt wird muss display:block sein (das ist es für p, h1, usw.. für viele andere elements muss es aber explizit gesetzt werden!)
  • sowohl inline wie block elemente haben eine box: Inf:css/e12box.php
  • Inf:css/e07Sidebar.php header/footer, und zwei scrollbars für links und rechts
  • Inf:css/e08horizontalList.php horizontal list for navigation
  • Inf:css/e14Layout.php position: static, relative, absolute, fixed..., doppelte Elemente
  • Inf:css/e15LayoutHLMOF.php responsive layout with fix header, scrollable left and main (with overlay) and footer
  • Inf:css/e16LayoutStatic.php responsive layout with fix header, scrollable left and main (with overlay) and footer