# Detailseiten

Bisher hast du eine index.html und eine style.css-Datei erstellt. Browser erkennen eine index.html immer automatisch und führen diese aus. Würde die Homepage (Startseite) deiner Website home.html heissen, müsstest du diesen Dateinamen in der Adresszeile hinzufügen.

<!-- Die index.html-Datei errreichst du so… -->
superwebsite.ch/index.html
<!-- …als auch über folgende URL (Webadresse) -->
superwebsite.ch

<!-- URL mit home.html -->
superwebsite.ch/home.html

Als nächstes erstellst du weitere HTML-Seiten, um Besuchern zusätzliche Details zu jedem Eintrag deiner “Work”-section zeigen zu können. Zur besseren Unterscheidung werden solche Seiten oft Detailseiten genannt.

Bei der Erstellung gibt es zwei Varianten:

  1. Du speicherst neue HTML-Dateien mit passenden Namen (z.B. inspiration.html, photos.html etc.) im root-Ordner (Hauptverzeichnis, in dem deine index.html liegt) oder einem Unterverzeichnis (z.B. detailseiten) deiner Website.
  2. Du erstellst Unterordner mit passendem Namen und erstellst darin jeweils eine neue index.html (z.B. inspiration/index.html, photos/index.html).

Hinweis

Letzteres hat wie oben beschrieben den Vorteil, dass du nicht den Dateinamen mit der Endung .html in der URL ausschreiben musst. Damit es für dich einfacher ist, verwenden wir jedoch die erste Variante.

# Unterordner und Dateien erstellen Aufgabe

Zur besseren Übersicht verpacken wir sämtliche Detailseiten in einen Unterordner,den wir detailseiten nennen. Deine Ordnerstruktur könnte dann so aussehen:

Details folders

Sobald du diesen Ordner erstellt hast, kannst du wiederum im Code-Editor auf den detailseiten-Ordner einen Rechtklick machen, "New File/Neue Datei" wählen und mindestens eine neue Datei (z.B. design.html) erstellen.

Details with files

# Detailseiten Markup Aufgabe

Öffne nun die eben erstellte, neue HTML Datei. Die gesamte HTML-Grundstruktur inklusive head main und footer brauchst du auch bei den Detailseiten. Die Bereiche head, header und footer kannst du unverändert aus deiner bestehenden index.html übernehmen. Nur den Inhalt von main solltest du nicht übertragen, da du nichts davon auf der Detailseite benötigst.

Hinweis

Bitte beachte die Kommentare im Code, um Abweichungen und Unterschiede zu deiner bestehenden index.html zu erkennen.

<!DOCTYPE html>
<html lang="de">

  <head>
    <!-- Meta Einstellungen -->
    <meta charset="utf-8">
    <meta name="language" content="de">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- Meta Angaben -->
    <!-- Hier macht es Sinn Titel und Description passend zum Inhalt der Detailseite anzupassen -->
    <meta title="Inspiration — Jane Doe">
    <meta name="description" content="Ideen, Skizzen und mehr von Jane Doe">
    <meta name="keywords" content="ideas, sketches, inspiration">
    <!-- CSS Dateien -->
    <!-- 
      Da du dich hier in eine Ebene unter dem root-Verzeichnis befindest, musst du ../ vor deine Dateipfade setzen, wenn du auf Dateien auf der Hauptebene zugreifen willst.
      Kapitel: Absolute & Relative 
    -->
    
    <link rel="stylesheet" type="text/css" href="../css/style.css">
    <link rel="stylesheet" type="text/css" href="../css/responsive.css">
  </head>

  <body>
    <header>
      <!-- Navigationsbereich -->
      <nav>
        <!-- Auch hier, du befindest dich eine Ebene unter dem root-Verzeichnis und musst deshalb eine Ebene raus (../).
        Am besten gibst du dann auch gleich die index.html Seite vor den bestehenden # (hash) an (../index.html#) Damit weiss der Browser dann, dass du auf die index.html Seite verlinken willst. Kapitel: Absolute & Relative --> 
        <a id="logo" href="../index.html"><strong>JD</strong></a>
        <ul>
          <li><a href="../index.html">About</a></li>
          <li><a href="../index.html#expertise">Expertise</a></li>
          <li><a href="../index.html#work">Work</a></li>
          <li><a href="../index.html#career">Career</a></li>
          <li><a href="../index.html#contact">Contact</a></li>
        </ul>
      </nav>
    </header>
    <!-- Anfang der Hauptbereichs "main" -->
    <main>
      <section id="detail">
        <div class="detail_stage">
          <div class="section_title">
            <h1>Ideen, Skizzen und mehr</h1>
            <span class="section_subtitle">inspiration</span>
          </div>
          <!-- Dasselbe wie bei der Navigation. Navigiere zwei Ebenen nach oben in deinen Bild-Pfaden -->
          <img class="detail_mainimage" src="../img/work/drawing.png" alt="drawing">
        </div>
        <div class="detail_content">
          <div class="detail_textblock">
            <p>Durch meine Ausbildung und Arbeit als Designer bin ich immer auf der Suche nach neuen Inspirationsquellen.
              Obwohl ich mich als Digital Designer sehe, experimentiere ich auch gerne analog auf Papier und Leinwand. Ich
              zeichne und male besonders gerne Portraits von Menschen aus meinem Umfeld.</p>
          </div>
          <figure class="detail_media">
            <img src="../img/work/scribble1.png" alt="Robert D. Jr.">
            <figcaption>Fineliner, Robert D. Jr.</figcaption>
          </figure>
          <figure class="detail_media">
            <img src="../img/work/scribble2.png" alt="Chains">
            <figcaption>Fineliner, Chains</figcaption>
          </figure>
          <div class="detail_textblock">
            <p>Ich digitalisiere auch oft meine Skizzen und forme sie dann am Bildschirm zu richtigen Illustrationen.
              Zeichnen und Malen ist für mich ein sehr entspannendes Hobby und gleichzeitig fördert es meine Fähigkeiten
              als Designer.</p>
          </div>
          <figure class="detail_media">
            <img src="../img/work/scribble3.jpg" alt="Spacetravel">
            <figcaption>Pencil on Canvas, Spacetravel</figcaption>
          </figure>
        </div>
      </section>
      <!-- Related section -->
      <section id="related">
        <div class="block_with_background">
          <div class="section_title">
            <h3>More</h3>
            <span class="section_subtitle">Andere Arbeiten</span>
          </div>
          <div class="work_group">
            <!-- Hier musst du nur eine Ebene nach oben, weil der Ordner "design" ebenfalls im Ordner "details" liegt. -->
            <a href="design.html" class="work_item is-darken">
              <!-- Hier wiederum zwei Ebenen -->
              <img src="../img/work/screens.jpg" alt="screens">
              <div class="work_text">
                <span class="work_label">Design</span>
                <h4>Grafiken & Websites</h4>
              </div>
            </a>
            <a href="photos.html" class="work_item">
              <img src="../img/work/dude.jpg" alt="dude">
              <div class="work_text">
                <span class="work_label">Fotografie</span>
                <h4>Meine besten Bilder</h4>
              </div>
            </a>
          </div>
        </div>
      </section>
    </main>
    <!-- Ende des Hauptbereichs "main" -->
    <footer>
      &copy; Jane Doe &nbsp;|&nbsp; <a href="mailto:hello@janedoe.com">hello@janedoe.com</a>
    </footer>
  </body>
</html>

Du solltest fast alles aus dem oben gezeigten HTML bereits kennen. Einzig figure und figcaption sind neue Tags. Das wird meist dann verwendet, wenn du ein Bild mit einer kurzen Beschreibung semantisch korrekt gruppieren möchtest.

Aus Vollständigkeitsgründen hast du hier auch bereits den footer eingefügt. Was es mit den kryptischen Zeichen wie &copy; oder &nbsp; auf sich hat erfährst du später im Kapitel Footer.

Weitere Detailseiten befüllen

Wiederhole die beschriebenen Schritte für alle Detailseiten, die du brauchst.

# Detailseiten Styles Aufgabe

Glücklicherweise kannst du viele Styles, die du bereits für die index.html geschrieben hast, auch für die Detailseiten verwenden. Du brauchst also nur noch zusätzliches CSS für neue Dinge. Da sich index und Detailseiten die gleiche CSS-Datei teilen, kannst du folgende Style-Rules einfach am Ende deiner bestehenden style.css Datei einfügen.

/* 
--------------------------------
Styles für Detailseiten
--------------------------------
*/

.block_with_background {
	padding-bottom: calc(3vh + 3vw); /* Innenabstand mit calc() zusamenrechnen */
	background: rgba(2,54,94,0.1); /* Diese Section soll einen grauen Hintergrund erhalten um sich visuell abzugrenzen */
}

#detail .section_title h1 {
  font-size: min(max(1.5rem, 3vw), 3rem);
}

.detail_mainimage {
  width: 100%;
  border-radius: 2rem;
}

.detail_content {
  max-width: 50rem;
  margin: 0 auto;
}

.detail_media {
  margin: 0;
}

.detail_media figcaption {
  text-align: center;
  margin: 1rem 0;
}

.detail_media img {
  box-shadow: 0 2px 30px 0 rgba(0, 0, 0, 0.1);
  width: 100%;
}

.detail_textblock {
  margin: calc(3vw + 3vh);
}

#related {
  padding: 7vh 0 0;
}

#related .work_group {
  padding: 0 calc(3vh + 3vw);
}

Hier gibt es ebenfalls wenig, was du nicht bereits kennst. Erwähnenswert ist die erste und letzte Style-Rule in diesem CSS-Abschnitt. Mit #detail .section_title und #related .work_group überschreibst du die bestehenden Styles von .section_title und .work_group sofern sich diese im HTML innerhalb eines DOM-Nodes mit der ID detail oder related befinden.

Hinweis

Das Leerzeichen zwischen #detail und .section_title ist hier entscheidend. Damit weiss der Browser, dass du das Child mit der Class section_title innerhalb des Parents mit der ID detail suchst. Würdest du dieses Leerzeichen weglassen, also #detail.section_title schreiben, würde der Browser nach einem Element suchen, welches selbst sowohl die ID detail als auch die Class section_title besitzt.

# Verlinken der Work-section Aufgabe

Damit du nun von deiner Startseite via “Work”-section auf die passende Detailseite gelangen kannst, musst du noch die passenden Verlinkungen einfügen. Gehe dazu wieder in deine index.html-Hauptdatei und ändere die Links in der "Work"-section.

<!-- Passe ALLE href-Attribute innerhalb der Work-Section an, damit diese zur passenden Detailseite führen. -->
<!-- Ersetze den Wert im href="#" mit dem Pfad zu deiner Datei -->
<a href="detailseiten/inspiration.html" class="work_item is-darken">
  <img src="img/work/screens.jpg" alt="screens">
  <div class="work_text">
    <span class="work_label">Design</span>
    <h4>Grafiken & Websites</h4>
  </div>
</a>

# Überprüfen im Browser Aufgabe

Überprüfe im Browser, ob alles wie von dir gewünscht dargestellt wird. Überprüfe auch, ob alle Verlinkungen zwischen den Seiten richtig funktionieren. Die Vorlage würde bei unveränderter Umsetzung folgendermassen aussehen:

Invision Detail Preview
Bild scrollen, oder gesamte Seite auf Invision ansehen

Stelle dich den Challenges

Falls du bisher kaum von der Vorlage abgewichen bist, wäre jetzt ein guter Zeitpunkt, damit zu beginnen. Verändere die Gestaltung und Inhalte und stelle dich unseren Challenges. Mach es zu deinem Portfolio. Dadurch erfährst du, wie selbstständig du das Gelernte effektiv anwenden kannst. Frage die Dozenten jederzeit um Unterstützung.

Passende Challenges

  • #8 Parallax (Bewege verschiedene Elemente und Bilder unterschiedlich schnell beim scrollen)
  • #15 Video (Füge ein Video ein das auf allen Geräten ohne Klick automatisch abspielt)
  • #16 Slider (Stelle Bilder in einem Slider dar)
  • #17 Lightbox (Biete Nutzern die Möglichkeit, Bilder zu vergrössern)
  • #18 Previous/Next-Navigation (Füge eine Navigation ein, um zur nächsten oder letzten Seite zu gelangen)