diff --git a/public/images/cat-w250.png b/public/images/cat-w250.png new file mode 100644 index 0000000..bd95c63 Binary files /dev/null and b/public/images/cat-w250.png differ diff --git a/public/images/cat-w600.png b/public/images/cat-w600.png new file mode 100644 index 0000000..5001a8d Binary files /dev/null and b/public/images/cat-w600.png differ diff --git a/public/images/cat.png b/public/images/cat.png new file mode 100644 index 0000000..50d5daa Binary files /dev/null and b/public/images/cat.png differ diff --git a/src/components/slides/html-images/basics.astro b/src/components/slides/html-images/basics.astro new file mode 100644 index 0000000..439c010 --- /dev/null +++ b/src/components/slides/html-images/basics.astro @@ -0,0 +1,142 @@ +
+
+

Das img-Tag

+
+ +
+

Einbinden einer Grafik

+

Mithilfe des <img /> Tag können Bilder in die Website eingebunden werden:

+
+ +
Eine Katze. Ein Bild von Cat-As-A-Service.
+
+
+ +
+

Die Einbindung des Bilder erfolgt mit dem src-Attribut:

+

+      <img src="/images/cat.png" />
+    
+
+ +
+

Das Bild wird im Web-Server abgelegt und mit dem Pfad aufgerufen.

+

Es können natürlich auch Bilder aus anderen Webseiten verwendet werden, aber dies ist nicht beliebt.

+

Datenhaltung und Bandbreite werden mit auf den Host des Bildes "abgeschoben".

+
+ +
+

Aber h"alt"

+

Mit dem alt-Attribut kann das Bild beschrieben werden, dass angezeigt wird. Der Text ist so nicht einsehbar, technische Hilfsmittel wie Screen-Reader verwenden aber solche Informationen.

+

+      <img
+        src="/images/cat.png"
+        alt="Eine schwarz-weiß farbene Katze sitzt
+          und schaut interessiert nach oben"
+      />
+    
+
+ +
+

(Weitere) Gründe das alt-Attribut zu verwenden

+ +
+ +
+

+      <img
+        src="/non-existent.png"
+        alt="Das Bild hier fehlt"
+      />
+    
+ Das Bild hier fehlt +
+ +
+

Breite & Höhe vordefinieren

+

Es ist mit den Attributen height und width möglich, dem Browser mitzuteilen welche Breite und Höhe das geladene Bild einnehmen soll.

+
+ +
+

+      <img
+        src="/images/cat.png"
+        alt="Das Bild einer Katze"
+        height="50"
+      />
+    
+ Das Bild einer schwarz-weißen Katze +
+ +
+

+      <img
+        src="/images/cat.png"
+        alt="Das Bild einer Katze"
+        height="250"
+      />
+    
+ Das Bild einer schwarz-weißen Katze +
+ +
+

Tipp: Wenn das Bild flexibel geladen wird, immer nur ein Attribut verwenden. Der Browser behält das Seitenverhältniss ansonsten nicht:

+

+      <img
+        src="/images/cat.png"
+        alt="Das Bild einer Katze"
+        height="250"
+        width="100"
+      />
+    
+ Das Bild einer schwarz-weißen Katze +
+ +
+

Aber Wieso Dimensionen angeben?

+
+ +
+

Der Browser lädt zuerst HTML, liest dann das HTML und lädt Inhalte nach sobald er welche findet.

+

Das Bedeutet, dass ein Bild womöglich während der ersten Sekunden nicht zu sehen ist und dann klassisch rein "ploppt".

+
+ +
+

Inhalt der nach dem Bild angezeigt wird, wird daraufhin verschoben -> Schlechte User-Experience.

+

Das gesamte Konzept (Inhalt wird nachgeladen) ist auch unter dem Begriff "Cumulative Layout Shift" bekannt.

+
+
+

Wird eine Höhe vorgegeben, so "reserviert" der Browser den Platz, bis das Bild vollständig geladen wurde.

+
+ +
+

Datei-Typen

+

Bilder-Formate gibt es heutzutage wie Sand am Meer.

+
+ +
+

Klassische Formate

+ +
+ +
+

Modernere Formate bieten normalerweise "gleichbleibende" Qualität bei drastisch kleineren Dateigrößen

+
+ +
+ +
+
\ No newline at end of file diff --git a/src/components/slides/html-images/index.astro b/src/components/slides/html-images/index.astro new file mode 100644 index 0000000..ffb2ef8 --- /dev/null +++ b/src/components/slides/html-images/index.astro @@ -0,0 +1,11 @@ +--- +import TitleSlide from './title.astro' +import Basics from './basics.astro' +import Responsiveness from './responsive.astro' +--- + +
+ + + +
\ No newline at end of file diff --git a/src/components/slides/html-images/responsive.astro b/src/components/slides/html-images/responsive.astro new file mode 100644 index 0000000..2cc5516 --- /dev/null +++ b/src/components/slides/html-images/responsive.astro @@ -0,0 +1,105 @@ +
+
+

Responsive Bilder

+
+ +
+

Seit dem Smartphone gibt es das Problem der Bildschirmbreiten und der Support derer.

+
+ +
+ +
+ +
+

srcset und sizes

+
+ +
+

Mithilfe der Attribute srcset und sizes kann der Browser anhand der Informationen vom Entwickler und des Gerätes verschiedene Bilder laden.

+

Zwischen verschiedenen Browser erlebt man aber verschiedene Erfahrungen...

+
+ +
+

Beispiel

+

+      <img
+        srcset="
+          /images/cat-w250.png 250w, // Erstes Bild - 250px
+          /images/cat-w600.png 600w, // Zweites Bild - 600px
+        "
+        sizes="
+          (max-width: 800px) 250px, // Bildschirme <= 800px
+          600px                     // Bildschirme >  800px
+        "
+        src="/images/cat-w250.png"  // Fallback
+        alt="Eine Katze"
+      />
+    
+
+ +
+ Eine Katze +
+ +
+

<picture> - Die Alternative

+
+ +
+

Bietet die gleichen Features, lässt das alles aber ein bisschen besser aussehen

+

Kann aber auch ein bisschen mehr!

+
+ +
+

+      <picuture>
+        <source /> <!-- Ein oder mehrere source-tags -->
+        <source />
+        <img />  <!-- Notwendig zum Anzeigen -->
+      </picture>
+    
+
+
+

+      <picuture>
+        <!-- Das kleine Bild definieren, zeige bis 799px an -->
+        <source
+        media="(max-width: 799px)"
+        srcset="/images/cat-w250.png"
+        />
+        <!-- Das große Bild definieren, zeige ab 800px an -->
+        <source
+          media="(min-width: 800px)"
+          srcset="/images/cat-w600.png"
+        />
+        <img
+          src="/images/cat-w600.png" alt="Eine Katze"
+        />
+      </picture>
+    
+
+ +
+ + + + Eine Katze + +
+
\ No newline at end of file diff --git a/src/components/slides/html-images/title.astro b/src/components/slides/html-images/title.astro new file mode 100644 index 0000000..5001d93 --- /dev/null +++ b/src/components/slides/html-images/title.astro @@ -0,0 +1,3 @@ +
+

Bilder in HTML

+
\ No newline at end of file diff --git a/src/pages/slides/images.astro b/src/pages/slides/images.astro new file mode 100644 index 0000000..cd8f87a --- /dev/null +++ b/src/pages/slides/images.astro @@ -0,0 +1,8 @@ +--- +import Reveal from '../../layouts/Reveal.astro'; +import Slides from '../../components/slides/html-images/index.astro' +--- + + + + \ No newline at end of file