webmapping

Session 3 - CSS entdecken mit main.css (20.3.2024)

CSS entdecken mit einem Quiz

https://webmapping.github.io/nz/quiz

Stylesheet einbinden

CSS Quiz in Dreierteams und einer halben Stunde

Frage und Antworten

  1. was bewirkt die CSS Regel in Zeile 5-10?

     body {
         font-family: 'Open Sans', sans-serif;
         background-color: #ffffff;
         max-width: 1280px;
         margin: auto;
     }
    

    Als font-family für die Seite wird “Open Sans” verwendet, ist dieser Font nicht verfügbar kommt eine serifenlose Standardschrift zum Einsatz; die Hintergrundfarbe (background-color) der Seite soll Weiß (#ffffff) sein; die Seite soll nie breiter sein als 1280px (max-width) und hat Links und Rechts den selben Rand (margin: auto) - dadurch wird der Seiteninhalt zentriert

  2. wozu wird das Größer-als-Zeichen (>) in Zeile 12 verwendet?

     header>img {
         max-width: 100%;
     }
    

    Das Größer-als-Zeichen (>) selektiert das erste Bild im Header, also unser Banner und setzt seine Breite auf 100% des Header-Bereichs

  3. was passiert in der CSS Regel in Zeile 16-21?

     header a img {
         border: 1px solid silver;
         border-radius: 50%;
         margin-top: -75px;
         margin-left: calc(50% - 50px);
     }
    

    Das quadratische User-Bild bekommt mit border: 1px solid silver; einen dünnen Rahmen, wird mit border-radius: 50%; als Kreis dargestellt, über margin-top: -75px nach oben in das Bannerbild geschoben und mit margin-left: calc(50% - 50px); in der Mitte positioniert. Die CSS calc() Funktion erlaubt uns dabei das Rechnen mit Werten in CSS.

  4. was passiert in der CSS Regel in Zeile 23-30?

     main {
         max-width: 1024px;
         margin: auto;
         margin-top: -50px;
         border-left: 1px dashed gray;
         border-right: 1px dashed gray;
         border-bottom: 1px dashed gray;
     }
    

    Der Hauptbereich wird mit max-width auf die maximale Brei 1024px gesetzt, über margin: auto wieder zentriert und mit margin-top: -50px um 50px nach oben geschoben - damit ist der Abstand zum User-Bild nicht so groß. Rechts, Links und Unten wird mit border-\[left|right|bottom] ein gestrichelter Rand in grau mit 1px Breite gezeichnet (1px dashed gray)

  5. was bewirkt “padding” in Zeile 33?

     article {
         padding: 1em;
     }
    

    Mit padding wird der gesamte Inhalt des Artikels um 1em vom Rand nach Innen verschoben - damit “klebt” die Schrift nicht mehr am gestrichelten Rand. Die Einheit em bezieht sich dabei die Schriftgröße und entspricht der Standard font-size 16px. Historisch kommt die Bezeichnung em aus dem Schriftsatz - mehr dazu hier: https://de.wikipedia.org/wiki/Em_(Schriftsatz)

  6. wo werden die Fonts Roboto und Montserrat in Zeile 37 & Zeile 45 definiert?

    Die beiden Fonts werden in der dritten Zeile bei @import definiert und binden Webfonts ein, die uns Google-Fonts bereitstellt. Mehr dazu bei der nächsten Frage

     @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300&family=Open+Sans:ital@0;1&family=Roboto:wght@300&display=swap');
    
  7. findet die Quelle aller verwendeten Fonts im Internet

    Die Quelle unserer Fonts ist https://fonts.google.com/ - dort stehen 100e frei verfügbare Fonts für uns bereit. Einfach Browsen/Suchen, Anklicken und “Get font” drücken, dann landet der Font in unserer Auswahl, die wir Rechts/Oben beim Taschensymbol (Tooltip View selected fonts) ansehen können. Danach einfach weitersuchen und wenn wir alle gewünschten Fonts gesammelt haben, kann dort unter “Get embeded Code” mit der Option “Web/@import” die @import CSS Regel kopiert und ins Stylesheet main.css übertragen werden.

  8. warum steht eine Raute (#) vor “map” in Zeile 52?

     #map {
         width: 90%;
         height: 600px;
         border: 1px solid silver;
         margin: auto;
     }
    

    Die Raute (#) ist der sogenannte ID-Selektor - er selektiert HTML-Elemente über deren eindeutige ID - in unserem Fall wird damit das Element mit id="map" angesprochen - unser Kartenfeld.

  9. wofür stehen die vier Werte bei padding in Zeile 61?

     footer {
         text-align: center;
         padding: 1em 2em 3em 2em;
     }
    

    Die vier Werte bestimmen die Abstände des <footer> Elements vom Artikelbereich und Seitenrand in der Reihenfolge Oben -> Rechts -> Unten -> Links (also im Uhrzeigersinn). Würden dort zwei Werte stehen wäre es Oben+Unten -> Rechts+Links

  10. was bewirkt die CSS Regel in Zeile 64-67?

    footer nav {
        display: grid;
        grid-template-columns: 40% 20% 40%;
    }
    

    display: grid bewirkt, dass die Navigationslinks im Footer in einem Grid-Layout dargestellt werden. Jedes <a> Element landet in einem eigenen Bereich des Grids, das über grid-template-columns in drei Bereiche mit 40% 20% 40% Breite eingeteilt wird.

  11. welche Elemente werden mit dem Schatten in Zeile 76-78 angesprochen?

    header img,
    figure>img,
    #map {
        box-shadow:
            0 4px 8px 0 rgba(0, 0, 0, 0.2),
            0 6px 20px 0 rgba(0, 0, 0, 0.2);
    }
    

    Alle Bilder im Header (also Banner und User-Bild), jedes Bild eines <figure> Elements und die Kartenfläche

  12. was bewirkt die @media Regel in Zeile 81-90? Könnt ihr sie im Browser reproduzieren?

    @media screen and (max-width: 1280px) {
        main {
            border: none;
        }
    
        figure {
            margin-left: 0;
            width: 100%;
        }
    }
    

    Die @media Regel bewirkt, dass der gestrichelte Rahmen des Artikels und die automatische Einrückung des Bilds innerhalb des <figure> Elements entfernt wird, sobald die Seitenbreite im Browser unter 1280px fällt. Ausprobieren könnt ihr das durch Verändern der Größe des Browserfensters oder die Developer Tools des Browser - im Firefox z.B. F12 und dann Rechts/Oben das Icon für “Bildschirmgrößen testen” oder STRG+UMSCHALT+M oder im Menü “Extras / Browser-Werkzeuge / Bildschirmgrößen testen” wählen

Font Awesome

Script für Leaflet Karte nach main.js verschieben

Der Ausflug zu CSS ist vorläufig beendet, wir widmen uns jetzt wieder der Karte, deren Code noch in einem <script>-Element in ` index.html steht. Analog zur CSS-Datei main.css können und werden wir ab jetzt **immer (!)** unseren Script-Code in eine eigene Datei auslagern - wir nennen sie main.js`

Vorschau Icon für den Browser-Tab

Die Karte ist damit fertig aber eine Fehlermeldung steht noch in der Konsole - scheinbar fehlt da noch ein favicon.ico - angezeigt wird dieses Icon im Browser beim Tab - wir verwenden unser User-Bild dafür und bauen es im <head> Bereich als link rel="shortcut icon" ein

<link rel="shortcut icon" href="images/user.jpg" type="image/x-icon">

COMMIT: https://github.com/webmapping/nz/commit/4657676a48e33bab23b6afe1c0de53fa63116a19