<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Web einfach machen &#8211; Blog</title>
	<atom:link href="https://web-einfach-machen.de/Blog/feed/" rel="self" type="application/rss+xml" />
	<link>https://web-einfach-machen.de/Blog</link>
	<description>Wissenswertes für Web-Interessierte</description>
	<lastBuildDate>Sat, 11 Jul 2026 15:47:08 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://web-einfach-machen.de/Blog/wp-content/uploads/2024/04/cropped-LogoBlog-1-32x32.png</url>
	<title>Web einfach machen &#8211; Blog</title>
	<link>https://web-einfach-machen.de/Blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>HTML und CSS für Fortgeschrittene</title>
		<link>https://web-einfach-machen.de/Blog/css/html-und-css-fuer-fortgeschrittene/</link>
					<comments>https://web-einfach-machen.de/Blog/css/html-und-css-fuer-fortgeschrittene/#respond</comments>
		
		<dc:creator><![CDATA[Web einfach machen]]></dc:creator>
		<pubDate>Tue, 30 Jun 2026 14:20:54 +0000</pubDate>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Konzeption]]></category>
		<category><![CDATA[Webproduktion]]></category>
		<category><![CDATA[modernes CSS]]></category>
		<guid isPermaLink="false">https://web-einfach-machen.de/Blog/?p=1492</guid>

					<description><![CDATA[Welche Fähigkeiten sind in der Agentur für eine erfolgreiche Umsetzung von modernen Webauftritten erforderlich? Wer heute im Frontend arbeitet, sollte die neuen Möglichkeiten kennen und die Entwicklung gerade von CSS aufmerksam verfolgen. ]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Welche Fähigkeiten solltest du mitbringen, um erfolgreich Websites für Kunden zu erstellen? Bei der Entwicklung von Webprojekten unterscheidet man grundsätzlich zwischen Backend und Frontend. Backend-Entwicklerinnen und -Entwickler beschäftigen sich unter anderem mit Datenbanken, Serverkonfigurationen, Schnittstellen und der Geschäftslogik einer Anwendung und haben häufig einen Informatik-Hintergrund. Im <strong>Frontend </strong>hingegen geht es um alles, was Nutzerinnen und Nutzer später im Browser sehen und bedienen. Hier stehen HTML, CSS und zum Teil auch JavaScript im Mittelpunkt.&nbsp;In diesem Artikel geht es weniger um Skills in Konzeption oder um Gestaltung, um das Screendesign, sondern um die erfolgreiche <strong>Umsetzung </strong>von modernen Webauftritten.</p>





<h2 class="kt-adv-heading1492_970766-9a wp-block-kadence-advancedheading" data-kb-block="kb-adv-heading1492_970766-9a">Grundlagen</h2>



<p class="wp-block-paragraph">Zunächst zu den Basics. Ein <strong>solides Verständnis von HTML und CSS</strong> sowie Grundwissen in JavaScript sind die wichtigsten Voraussetzungen. Bei CSS solltest du insbesondere folgende Grundlagen sicher beherrschen:</p>



<ul class="wp-block-list">
<li>Das Box-Modell</li>



<li>Flexbox</li>



<li>CSS Grid</li>



<li>Responsive Design</li>
</ul>



<p class="wp-block-paragraph">Wer diese Grundlagen sicher beherrscht, kann <strong>moderne und responsive Webseiten</strong> entwickeln.<br>Darüber hinaus ist das Verständnis von <strong>Selektoren und Spezifität in CSS</strong> sinnvoll. Auch <strong>Barrierefreiheit</strong> (Accessibility) sollte zumindest in den Grundlagen bekannt sein. Du musst mit CSS <strong>Custom Properties</strong> (Variablen) vertraut sein. Und ein souveräner <strong>Einsatz von KI</strong> im Arbeitsalltag ist natürlich hilfreich. <strong>Browser-Entwicklertools</strong> (DevTools) zum Debugging und CSS-Analyse sind ebenfalls unverzichtbar. Und man sollte Probleme bei <strong>Performance</strong> oder <strong>SEO</strong> zumindest erkennen können. <br>Von Mediengestaltern für Digitalmedien sollte man diese Fähigkeiten am Ende des ersten Ausbildungsjahrs erwarten können.<br>Aber hier solltest du nicht stehen bleiben. Über diese Grundlagen hinaus gibt es interessante neue Entwicklungen in diesem Bereich …</p>



<h2 class="wp-block-heading">&#8230; Neue Entwicklungen in CSS</h2>



<p class="wp-block-paragraph">CSS hat sich in den vergangenen Jahren enorm weiterentwickelt. Während CSS früher hauptsächlich für das Aussehen einer Website zuständig war, übernimmt es heute auch Aufgaben, die früher ausschließlich mit JavaScript gelöst wurden. Dazu gehören beispielsweise bedingte Logik, komplexe Layouts, dynamische Positionierungen oder Animationen und interaktive Effekte. </p>



<p class="wp-block-paragraph">Zu den wichtigsten Neuerungen gehören zum Beispiel:</p>



<ul class="wp-block-list">
<li><strong>@scope</strong> – begrenzt CSS-Regeln gezielt auf bestimmte Bereiche einer Seite.</li>



<li><strong>@layer</strong> – hilft dabei, Stylesheets besser zu strukturieren und Konflikte durch Spezifität zu vermeiden.</li>



<li><strong>Container Queries</strong> – Komponenten reagieren auf die Größe ihres Containers statt nur auf die Größe des Browserfensters.</li>



<li>Neue <strong>Funktionen</strong> wie if() – ermöglichen flexiblere und dynamischere Stylesheets.</li>



<li><strong>Native CSS Carousels</strong> – erste browserseitige Lösungen für Slider ohne zusätzliches JavaScript.</li>



<li>Das neue, besser gestaltbare<strong> &lt;select&gt;-Element</strong>: Formulare lassen sich künftig einfacher an das Design anpassen.</li>



<li><strong>Moderne Farbräume wie </strong><strong>oklch</strong><strong> und </strong><strong>oklab</strong> – sorgen für bessere Farbverläufe.</li>



<li><strong>Scroll-driven Animations</strong> – Animationen können direkt an die Scrollposition gekoppelt werden, ohne JavaScript einzusetzen.</li>
</ul>



<p class="wp-block-paragraph">Außerdem sind einen Blick wert:</p>



<ul class="wp-block-list">
<li><strong>:has()</strong><strong>-Selektor:</strong> Der &#8222;Eltern-Selektor&#8220;. Erlaubt Styling basierend auf dem Zustand, der Anwesenheit oder der Anzahl von Kind-Elementen.</li>



<li><strong>Anchor Positioning:</strong> Positioniert Elemente (z. B. Tooltips oder Dropdowns) dynamisch und intelligent relativ zu anderen DOM-Elementen.</li>



<li><strong>View Transitions API:</strong> Ermöglicht native, flüssige Übergänge bei State-Changes (Same-Document) oder beim Seitenwechsel (Cross-Document).</li>



<li><strong>Relative Color Syntax &amp; </strong><strong>color-mix()</strong><strong>:</strong> Farben lassen sich dynamisch manipulieren, mischen oder aus bestehenden Variablen ableiten (z. B. oklch(from var(&#8211;c) l c h / 50%)).</li>



<li><strong>light-dark()</strong><strong>-Funktion:</strong> Vereinfacht Dark/Light-Mode massiv, indem sie automatisch den Wert basierend auf color-scheme zurückgibt.</li>



<li><strong>Typografie-Steuerung:</strong>&nbsp;text-wrap: balance (für gleichmäßige, mehrzeilige Überschriften) und text-wrap: pretty (vermeidet isolierte Wörter am Absatzende).</li>



<li><strong>@property</strong><strong>:</strong> Macht Custom Properties durch Typisierung erst richtig animierbar (z. B. für fließende Farbverläufe).</li>



<li><strong>@starting-style</strong><strong>:</strong> Definiert den Startzustand für Entry-Animationen (z. B. Fade-in beim Einblenden eines Elements).</li>



<li><strong>CSS Masonry Layout:</strong> (Aktuell noch experimentell/flagged) Natives „Mauerwerk“-Layout via grid-template-rows: masonry.</li>



<li><strong>Popover- &amp; Highlight-API-Integration:</strong> Native Styling-Möglichkeiten für die HTML-Popover-API (:popover-open, ::backdrop) und benutzerdefinierte Textmarkierungen.</li>
</ul>



<p class="wp-block-paragraph">Aber Achtung: Ob einer der genannten neuen CSS-Eigenschaften bereits eine <strong>ausreichende Browserunterstützung</strong> hat und für den produktiven Einsatz in realen Projekten geeignet ist, erfährst du unter <a href="https://caniuse.com/">https://caniuse.com/</a>. <br>Diese Entwicklungen zeigen jedenfalls deutlich, wohin die Reise geht: CSS entwickelt sich zunehmend zu einer leistungsfähigen Sprache für Layout, Gestaltung und Interaktion.  Lass uns dazu ein paar Beispiele anschauen.</p>



<h2 class="kt-adv-heading1492_7aa444-23 wp-block-kadence-advancedheading" data-kb-block="kb-adv-heading1492_7aa444-23">Beispiele </h2>



<h3 class="wp-block-heading">Container Queries — responsiv auf Komponentenebene</h3>



<p class="wp-block-paragraph">Container Queries sind von allen neuen Features am weitesten in der Praxis angekommen und verdienen deshalb den ersten Platz.</p>



<p class="wp-block-paragraph">Das Prinzip: Bisher reagierten Media Queries immer auf die Größe des Viewports — also des gesamten Browserfensters. Das Problem dabei ist, dass eine Komponente (z. B. eine Karte oder ein Teaser) gar nichts darüber weiß, wie viel Platz sie in ihrem jeweiligen Kontext hat. Container Queries lösen das: Eine Komponente kann sich auf Basis der Breite ihres Elterncontainers anpassen, nicht auf Basis des Viewports. Im folgenden Beispiel ist .card-container die Klasse für das Elternelement und .card für das Kindelement. </p>



<pre class="wp-block-code"><code>       .card-container {
            container-type: inline-size;
        }

        @container (min-width: 500px) {
            .card {
                display: grid;
                grid-template-columns: 1fr 1fr;
            }
        }</code></pre>



<p class="wp-block-paragraph">Dasselbe&nbsp;.card-Element funktioniert damit in einer schmalen Sidebar genauso wie in einem breiten Inhaltsbereich — ohne zusätzliche CSS-Klassen oder JavaScript. <br>Die Zeile „container-type: inline-size;“ macht das Element .card-container zu einem Container für Container Queries. „inline-size“ bedeutet, dass der Container auf Änderungen seiner Breite (in horizontaler Schreibrichtung) reagiert.  Ohne diese Zeile funktionieren die Container Queries nicht. Der Browser-Support ist inzwischen gut; Container Queries sind produktionstauglich.<br>Mehr dazu unter <a href="https://developer.mozilla.org/de/docs/Web/CSS/Guides/Containment/Container_queries">https://developer.mozilla.org/de/docs/Web/CSS/Guides/Containment/Container_queries</a>. </p>



<h3 class="wp-block-heading">CSS&nbsp;if()&nbsp;— Bedingungslogik im Stylesheet</h3>



<p class="wp-block-paragraph">Das ist ein konzeptioneller Wendepunkt der aktuellen CSS-Entwicklung: Mit der&nbsp;if()-Funktion lassen sich erstmals Inline-Bedingungen direkt im Stylesheet formulieren — ohne Umweg über SASS oder JavaScript.</p>



<pre class="wp-block-code"><code>  .button {
            width: if(style(--size: large): 200px; else: 100px);
        }</code></pre>



<p class="wp-block-paragraph">In Kombination mit Custom Properties entstehen damit Design-Systeme, die direkt auf Kontextbedingungen oder Systemeinstellungen reagieren — etwa auf den Dark Mode des Betriebssystems — vollständig in CSS, ohne eine einzige Zeile JavaScript.</p>



<p class="wp-block-paragraph"><strong>Browser-Support:</strong>&nbsp;Im Moment (Juni 2026) noch nicht produktionstauglich.&nbsp;if()&nbsp;ist in Chrome hinter einem experimentellen Flag verfügbar und wird gerade standardisiert. Wer das Prinzip heute verstehen will, kann es in Chrome Canary ausprobieren — für echte Projekte ist es noch zu früh.</p>



<h3 class="wp-block-heading">@function&nbsp;— eigene CSS-Funktionen definieren</h3>



<p class="wp-block-paragraph">Noch einen Schritt weiter geht&nbsp;@function: Damit lassen sich eigene, wiederverwendbare CSS-Funktionen definieren, die dann wie native CSS-Funktionen aufgerufen werden.</p>



<pre class="wp-block-code"><code>@function --spacing(--factor) {
            result: calc(var(--factor) * 8px);
        }

        .card {
            padding: --spacing(2);
            /* ergibt 16px */
            margin: --spacing(3);
            /* ergibt 24px */
        }</code></pre>



<p class="wp-block-paragraph">Das klingt nach einer Kleinigkeit, ist aber konzeptionell ein großer Schritt: Bisher konnte man über Custom Properties Werte wiederverwenden, aber keine Berechnungslogik kapseln.&nbsp;@function&nbsp;schließt diese Lücke. Besonders mächtig wird es in Kombination mit&nbsp;if(): Theming-Logik, die früher JavaScript oder einen Build-Prozess brauchte, lässt sich damit vollständig in CSS abbilden.<br><strong>Browser-Support:</strong>&nbsp;Aktuell nur als Prototyp in Chrome Canary mit aktiviertem „Experimental Web Platform Features“-Flag. Für den Produktionseinsatz mindestens ein bis zwei Jahre entfernt — aber als Ausblick schon interessant, weil es zeigt, wohin CSS sich entwickelt.</p>



<h3 class="wp-block-heading">Native Carousels ohne JavaScript</h3>



<p class="wp-block-paragraph">Wer schon mal einen Karussell-Slider gebaut hat, weiß wie mühsam das mit JavaScript ist. CSS löst das Problem jetzt nativ mit zwei neuen Pseudo-Elementen:</p>



<pre class="wp-block-code"><code>.slider {
            overflow-x: scroll;
            scroll-snap-type: x mandatory;
        }

        .slider::scroll-button(next) {
            content: "→";
        }

        .slider::scroll-marker-group {
            display: flex;
            gap: 8px;
        }</code></pre>



<p class="wp-block-paragraph">::scroll-button()&nbsp;erzeugt browser-native Scroll-Buttons,&nbsp;::scroll-marker()&nbsp;die Navigationspunkte darunter. Das Ergebnis ist ein zugänglicher, performanter Karussell — ohne JavaScript, ohne externe Bibliothek.</p>



<p class="wp-block-paragraph"><strong>Browser-Support:</strong>&nbsp;Chrome unterstützt den Großteil dieser Features, Firefox und Safari sind noch nicht vollständig dabei. Für Produktionsprojekte ist das also noch mit Vorsicht einzusetzen — als Progressive Enhancement aber bereits interessant.</p>



<h3 class="wp-block-heading">select-Element mit Gestaltungsmöglichkeiten</h3>



<p class="wp-block-paragraph">Das native&nbsp;&lt;select&gt;-Element ließ sich bislang kaum stylen. Wer einen angepassten Dropdown wollte, musste ihn komplett in JavaScript nachbauen — mit allem, was daran hängt: Accessibility, Keyboard-Navigation, Event-Handler. <br>Das ändert sich jetzt:</p>



<pre class="wp-block-code"><code>select {
            appearance: base-select;
        }

        select::picker(select) {
            border: 2px solid var(--farbe-akzent);
            border-radius: 8px;
        }</code></pre>



<p class="wp-block-paragraph">Mit&nbsp;appearance: base-select&nbsp;öffnet sich das Element für CSS-Styling, ohne die native Accessibility zu verlieren. Was früher 150 Zeilen JavaScript erforderte, geht jetzt mit wenigen CSS-Eigenschaften.</p>



<p class="wp-block-paragraph"><strong>Browser-Support:</strong>&nbsp;Chrome hat das Feature implementiert, browserübergreifende Unterstützung ist noch im Aufbau. Bis Ende 2026 sollte die Lage besser aussehen.</p>



<h3 class="wp-block-heading">Neue Farbräume:&nbsp;oklch&nbsp;und&nbsp;oklab</h3>



<p class="wp-block-paragraph">Mit&nbsp;oklch&nbsp;und&nbsp;oklab&nbsp;stehen zwei neue Farbformate zur Verfügung, die gegenüber dem klassischen&nbsp;rgb()&nbsp;oder&nbsp;hsl()&nbsp;einen entscheidenden Vorteil haben — sie sind „wahrnehmungslinear“. Das bedeutet: Farbverläufe sehen gleichmäßiger aus, und Helligkeitsabstufungen wirken konsistenter, weil das Modell näher an der menschlichen Farbwahrnehmung liegt.</p>



<pre class="wp-block-code"><code>/* klassisch */color: hsl(200, 80%, 50%);&nbsp; 
/* modern */color: oklch(65% 0.15 220);</code></pre>



<p class="wp-block-paragraph">oklch&nbsp;ist besonders nützlich für Design-Systeme, in denen Farbpaletten systematisch aufgebaut werden — etwa für Hover-Zustände, Abstufungen oder barrierefreie Kontrastkombinationen.</p>



<p class="wp-block-paragraph"><strong>Browser-Support:</strong>&nbsp;Ist OK.&nbsp;oklch&nbsp;und&nbsp;oklab&nbsp;funktionieren in allen modernen Browsern und sind produktionstauglich.</p>



<h3 class="wp-block-heading">@scope&nbsp;— gezieltes CSS ohne Spezifitätsprobleme</h3>



<p class="wp-block-paragraph">@scope&nbsp;löst ein klassisches CSS-Problem: Styles, die nur innerhalb einer bestimmten Komponente gelten sollen, ohne die Spezifität künstlich hochzutreiben oder auf Klassen-Namenskonventionen wie BEM angewiesen zu sein.</p>



<pre class="wp-block-code"><code>@scope (.card) {
            h2 {
                font-size: 1.25rem;
            }

            p {
                color: var(--farbe-text-sekundaer);
            }
        }</code></pre>



<p class="wp-block-paragraph">Die&nbsp;h2- und&nbsp;p-Regeln greifen hier nur innerhalb von&nbsp;.card&nbsp;— ohne dass man&nbsp;.card h2&nbsp;schreiben und damit die Spezifität erhöhen müsste. Für komponentenbasierte Projekte ist das ein echter Gewinn. <br><strong>Browser-Support:</strong>&nbsp;Chrome und Safari unterstützen&nbsp;@scope, Firefox ist im Moment (Juni 2026) noch dabei. Für viele Projekte ist es bereits einsetzbar, aber mit Fallback-Strategie.<br>Mehr dazu unter <a href="https://developer.mozilla.org/de/docs/Web/CSS/Reference/At-rules/@scope">https://developer.mozilla.org/de/docs/Web/CSS/Reference/At-rules/@scope</a>. </p>



<h3 class="wp-block-heading">@layer&nbsp;— Schluss mit Spezifitätskonflikten</h3>



<p class="wp-block-paragraph">@layer&nbsp;ist von allen Features in diesem Artikel das ausgereifteste und gleichzeitig das am meisten unterschätzte. Es ist seit 2022 in allen modernen Browsern verfügbar und löst ein Problem, das jeden trifft, der mit fremdem CSS arbeitet: unkontrollierbare Spezifität.</p>



<p class="wp-block-paragraph">Das Problem ist bekannt: Man bindet ein Framework oder Plugin ein, und plötzlich schlägt dessen CSS die eigenen Styles. Man schreibt&nbsp;!important, das Framework antwortet mit&nbsp;!important, und irgendwann hat man ein Stylesheet voller Hacks.&nbsp;@layer&nbsp;löst das strukturell, indem es eine explizite Prioritätsreihenfolge für CSS-Quellen definiert — unabhängig von Spezifität.</p>



<pre class="wp-block-code"><code> /* Reihenfolge festlegen: spätere Layer gewinnen */
        @layer reset, framework, komponenten, overrides;

        @layer framework {

            /* Styles eines eingebundenen Frameworks */
            .button {
                background: blue;
            }
        }

        @layer komponenten {

            /* Eigene Styles gewinnen immer — egal wie spezifisch das Framework ist */
            .button {
                background: var(--farbe-akzent);
            }
        }</code></pre>



<p class="wp-block-paragraph">Besonders relevant für die Arbeit mit WordPress und Page Buildern: Theme-Styles, Plugin-CSS und eigene Anpassungen lassen sich sauber in Layer trennen. <br>Was früher mit&nbsp;!important&nbsp;erzwungen wurde, funktioniert damit ohne Hacks. Styles außerhalb eines&nbsp;@layer&nbsp;gewinnen übrigens immer gegen layered Styles — das ist nützlich, um gezielt einzelne Überschreibungen ohne Layer-Logik zu platzieren.</p>



<p class="wp-block-paragraph"><strong>Browser-Support:</strong>&nbsp;Ausgezeichnet.&nbsp;@layer&nbsp;wird von Chrome 99+, Firefox 97+, Safari 15.4+ und Edge 99+ unterstützt — globale Abdeckung über 96 Prozent. Sofort produktionstauglich.</p>



<h3 class="wp-block-heading">Scroll-driven Animations — Animationen ohne JavaScript</h3>



<p class="wp-block-paragraph">Scroll-Animationen gehören zu den Effekten, die Websites lebendig machen: Elemente, die beim Scrollen einblenden, Fortschrittsbalken, Parallax-Effekte. Bisher war dafür JavaScript Pflicht —&nbsp;IntersectionObserver, GSAP oder ähnliche Bibliotheken. CSS kann das jetzt nativ.</p>



<p class="wp-block-paragraph">Das Prinzip: Eine normale&nbsp;@keyframes-Animation wird nicht zeitgesteuert abgespielt, sondern an den Scroll-Fortschritt gekoppelt.</p>



<pre class="wp-block-code"><code>@keyframes einblenden {
            from {
                opacity: 0;
                translate: 0 40px;
            }

            to {
                opacity: 1;
                translate: 0 0;
            }
        }

        .teaser {
            animation: einblenden linear both;
            animation-timeline: view();
            animation-range: entry 0% entry 100%;
        }</code></pre>



<p class="wp-block-paragraph">animation-timeline: view()&nbsp;koppelt die Animation an die Sichtbarkeit des Elements im Viewport — sobald&nbsp;.teaser&nbsp;ins Bild scrollt, läuft die Animation ab. Kein JavaScript, kein Event-Listener, kein externes Script.</p>



<p class="wp-block-paragraph">Es gibt zwei Varianten:&nbsp;scroll()&nbsp;koppelt die Animation an die Scroll-Position eines Containers — nützlich für Leseanzeigen oder Parallax.&nbsp;view()&nbsp;reagiert auf die Sichtbarkeit eines Elements — nützlich für Einblend-Effekte.</p>



<p class="wp-block-paragraph">Ein wichtiger Hinweis für barrierefreies Design: Scroll-Animationen sollten immer in eine&nbsp;@media (prefers-reduced-motion: no-preference)-Abfrage gewickelt werden, damit Nutzer, die Animationen systemweit deaktiviert haben, nicht beeinträchtigt werden.</p>



<pre class="wp-block-code"><code> .teaser {
            @media (prefers-reduced-motion: no-preference) {
                animation: einblenden linear both;
                animation-timeline: view();
                animation-range: entry 0% entry 100%;
            }
        }</code></pre>



<p class="wp-block-paragraph"><strong>Browser-Support:</strong>&nbsp;Chrome und Edge unterstützen Scroll-driven Animations vollständig. Safari hat das Feature mit Version 26 (2025) implementiert. Firefox hat es hinter einem Flag — vollständige Unterstützung steht kurz bevor. Für progressive Enhancement bereits einsetzbar; für kritische UI-Elemente noch mit Fallback arbeiten.<br>Siehe auch: „Snippets Code“&nbsp;<a href="https://www.youtube.com/watch?v=0TnO1GzKWPc"><u>https://www.youtube.com/watch?v=0TnO1GzKWPc</u></a>&nbsp;</p>



<h2 class="wp-block-heading">Auch HTML entwickelt sich weiter</h2>



<p class="wp-block-paragraph">In HTML überschlagen sich die Ereignisse nicht so, wie bei CSS. Aber auch hier tut sich was.<br>Zum Beispiel die <a href="https://css-tricks.com/popover-api-or-dialog-api-which-to-choose/">Popover-API</a>,  <a href="https://web-einfach-machen.de/Blog/webproduktion/modularer-aufbau-von-websites-mit-web-components/" data-type="post" data-id="1261">Web-Components</a> oder … <br><strong>HTML Invoker Commands</strong> (oft einfach <strong>Invoker Commands</strong> genannt) zum Beispiel sind ein relativ neues HTML-Feature, mit dem HTML-Elemente andere Elemente <strong>ohne JavaScript</strong> steuern können. Sie gehören zu den aktuellen Bemühungen, mehr Interaktivität direkt in HTML und CSS zu ermöglichen.</p>



<pre class="wp-block-code"><code>&lt;button command="show-modal" commandfor="dialog"&gt;
&nbsp;&nbsp;&nbsp; Dialog öffnen
&lt;/button&gt;
&lt;dialog id="dialog"&gt;
&nbsp;&nbsp;&nbsp; Hallo Welt!
&lt;/dialog&gt;</code></pre>



<p class="wp-block-paragraph">Die Idee ist ähnlich wie bei den bereits etablierten &lt;dialog&gt;-Elementen: Statt JavaScript zu schreiben, beschreibst du direkt im HTML, welche Aktion ausgelöst werden soll. <br>Invoker Commands sind ein sehr neues Feature und werden zur Zeit (Juni 2026) noch nicht von allen Browsern vollständig unterstützt. Sie sind aber ein gutes Beispiel dafür, wohin sich HTML entwickelt.<br>Siehe auch <a href="https://www.youtube.com/watch?v=vO6BQqflRsM"><u>https://www.youtube.com/watch?v=vO6BQqflRsM</u></a> von Coding2GO.</p>



<h2 class="kt-adv-heading1492_fd5bc2-90 wp-block-kadence-advancedheading" data-kb-block="kb-adv-heading1492_fd5bc2-90">Es lohnt sich</h2>



<p class="wp-block-paragraph">Soviel zum Thema CSS und fortgeschrittene Produktionstechniken im Webbereich.<br>Dieser Artikel richtet sich in erster Linie an diejenigen, die zwischen der Gestaltungs- und der Programmierungs-Abteilung in der Agentur sitzen. Auf Themen, wie Skills in Gestaltung oder Frontendentwicklung mit React bin ich hier deswegen nicht eingegangen. Die Grenze zu diesen Bereichen sollte man dabei kennen; nicht um sie nie zu überschreiten, sondern um zu wissen, wo das eigene Berufsbild endet und ein anderes beginnt.</p>



<p class="wp-block-paragraph">Also – auch wenn du mit Homepagebaukästen oder ContentManagementSystemen arbeiten solltest, hilft ein Grundverständnis von HTML und CSS immer. Wer heute im Frontend arbeitet, sollte die neuen Möglichkeiten kennen und die Entwicklung gerade von CSS aufmerksam verfolgen. Es lohnt sich hier also, auf jeden Fall am Ball zu bleiben.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://web-einfach-machen.de/Blog/css/html-und-css-fuer-fortgeschrittene/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Künstliche Intelligenz</title>
		<link>https://web-einfach-machen.de/Blog/edv/kuenstliche-intelligenz/</link>
					<comments>https://web-einfach-machen.de/Blog/edv/kuenstliche-intelligenz/#respond</comments>
		
		<dc:creator><![CDATA[Web einfach machen]]></dc:creator>
		<pubDate>Fri, 10 Apr 2026 12:09:47 +0000</pubDate>
				<category><![CDATA[EDV]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[ChatGPT]]></category>
		<category><![CDATA[Claude]]></category>
		<category><![CDATA[KI]]></category>
		<category><![CDATA[Large Language Model]]></category>
		<category><![CDATA[LLM]]></category>
		<guid isPermaLink="false">https://web-einfach-machen.de/Blog/?p=1348</guid>

					<description><![CDATA[Klaut mir die KI den Job? Und was steckt eigentlich hinter solchen Begriffen wie „Prompt“, „Large Language Model“ oder „ChatGPT“? Dieser Artikel hilft dir dabei, Informationen zum Thema künstliche Intelligenz richtig einzuordnen und den Durchblick zu behalten. Wie...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Klaut mir die KI den Job? Und was steckt eigentlich hinter solchen Begriffen wie „Prompt“,  „Large Language Model“ oder „ChatGPT“? <br>Dieser Artikel hilft dir dabei, Informationen zum Thema künstliche Intelligenz richtig einzuordnen und den Durchblick zu behalten.</p>





<h2 class="wp-block-heading">Wie funktioniert eigentlich KI?</h2>



<p class="wp-block-paragraph">Künstliche Intelligenz übernimmt komplexe Aufgaben wie Textgenerierung, Analyse oder Automatisierung. Ein gutes Beispiel dafür ist <strong>ChatGPT</strong>, eine der bekanntesten KI-Plattformen weltweit. Entwickelt und betrieben wird sie von OpenAI, einem US-amerikanischen Unternehmen, das 2015 gegründet wurde.</p>



<p class="wp-block-paragraph">Was viele nicht wissen: <strong>ChatGPT ist die Plattform – das Modell dahinter ist etwas anderes</strong>. OpenAI entwickelt unter der Bezeichnung GPT (Generative Pre-trained Transformer) verschiedene Modellgenerationen, die sich in Leistung, Geschwindigkeit und Einsatzbereich unterscheiden. GPT-5, im August 2025 veröffentlicht, ist dabei ein vereinheitlichtes System: Es entscheidet intern, wann es schnell antwortet und wann es länger „nachdenkt&#8220;, um präzisere Antworten zu liefern.<br>ChatGPT greift je nach Kontext und Abonnement auf unterschiedliche Varianten dieser Modelle zurück: Die kostenlose Version arbeitet mit einem abgespeckten Modell, während zahlende Nutzer Zugang zu leistungsstärkeren Varianten – inklusive erweiterter Reasoning-Modi – erhalten. <strong>Die Plattform ist also das Interface, das KI-Modell ist die eigentliche Intelligenz darunter</strong>.</p>



<p class="wp-block-paragraph"><strong>OpenAI</strong> als Unternehmen trainiert und hostet die Modelle und stellt sie über APIs (über Programmierschnittstellen) auch anderen Anbietern bereit. Dieses Prinzip – eine Plattform, mehrere Modelle – findet sich bei nahezu allen großen KI-Anbietern. Es ermöglicht, verschiedene Anforderungen mit demselben Produkt abzudecken: schnelle Antworten für einfache Anfragen, tiefere Verarbeitung für komplexe Aufgaben.</p>



<h2 class="wp-block-heading"><br>Anbieter und Plattformen</h2>



<p class="wp-block-paragraph">Natürlich ist ChatGPT der Firma <a href="https://de.wikipedia.org/wiki/OpenAI">OpenAI</a> nicht der einzige Anbieter in dem Bereich. Statt eines klaren Marktführers gibt es heute ein großes Feld verschiedener Akteure, die in unterschiedlichen Disziplinen die Nase vorn haben. Die Frage lautet also nicht „Welche KI ist die beste?&#8220;, sondern „Welche KI ist die beste für meinen Anwendungsfall?&#8220;.</p>



<p class="wp-block-paragraph">Bei <strong><a href="https://de.wikipedia.org/wiki/Anthropic">Anthropic</a></strong> steht aktuell die <strong>Claude</strong> 3-Modellreihe (Opus, Sonnet und Haiku) im Zentrum. Diese Modelle sind ebenfalls große Sprachmodelle, unterscheiden sich aber in Trainingsansatz und Zielsetzung: stärkerer Fokus auf Sicherheit, sauberen Antworten, Steuerbarkeit und konsistentes Verhalten über lange Kontexte hinweg. </p>



<p class="wp-block-paragraph"><strong><a href="https://chat.qwen.ai/">Qwen</a></strong> ist eine KI-Modellfamilie von Alibaba. Qwen gehört aktuell zu den günstigsten leistungsfähigen KI-Modellen am Markt — besonders im API-Bereich. Für viele Anwendungen kostet Qwen nur einen Bruchteil von OpenAI, Anthropic oder Google Gemini. <br>Die KI steht größtenteils unter der Apache 2.0 Lizenz zur Verfügung. Sie erlaubt kommerzielle Nutzung, Modifikation und Weiterverteilung. Qwen bietet eine interessante Kombination aus hoher Leistungsfähigkeit, vergleichsweise offener Verfügbarkeit und der Möglichkeit zum lokalen Betrieb. Mit dem lokalen Betrieb behältst du die Kontrolle über deine Daten oder kannst Modelle an eigene Workflows anpassen.</p>



<p class="wp-block-paragraph">Aus Europa kommt mit <strong><a href="https://de.wikipedia.org/wiki/Mistral_AI">Mistral AI</a></strong> ein weiterer Anbieter mit Modellen wie Mistral 7B oder Mixtral 8. Ziel ist es, leistungsfähige Alternativen mit stärkerer Offenheit und europäischer Datenhoheit zu etablieren. Die Modelle sind sowohl als Open-Source-Varianten, als auch über eine API für Unternehmen verfügbar.</p>



<p class="wp-block-paragraph">Google verfolgt mit <strong><a href="https://de.wikipedia.org/wiki/Google_Gemini">Gemini</a></strong> und den Gemini 1.5 Pro- und Flash-Modellen einen stärker integrierten Ansatz. Die Gemini-Modelle sind multimodal (ein multimodales System kann Text, Bilder und weitere Medien zusammen verarbeiten) und sie sind tief in Googles Produktlandschaft eingebunden (Google-Suche, Workspace, Android). Technisch liegt der Fokus auf Skalierbarkeit, Tool-Nutzung und der Kombination mit proprietären Datenquellen.</p>



<p class="wp-block-paragraph">Auch Microsoft spielt eine zentrale Rolle, weniger durch eigene Basismodelle als durch Integration. Über <strong><a href="https://www.informatik-aktuell.de/betrieb/kuenstliche-intelligenz/azure-ai-eine-plattform-fuer-kuenstliche-intelligenz.html">Azure AI</a></strong> werden Modelle von OpenAI und anderen Anbietern in Unternehmensumgebungen bereitgestellt, ergänzt durch <strong>Copilot</strong>-Funktionen in Office, GitHub und Windows. Der Fokus liegt auf Produktivitätsanwendungen und Enterprise-Integration.</p>



<p class="wp-block-paragraph">Die chinesische Plattform <strong><a href="https://de.wikipedia.org/wiki/DeepSeek">Deepseek</a></strong> nutzt eigene KI-Modelle wie Deepseek Coder (für Codegenerierung) und Deepseek Chat (für Sprachmodelle). Das Besondere an Deepseek ist der Fokus auf hoher Performance bei geringen Kosten.</p>



<p class="wp-block-paragraph"><strong><a href="https://www.meta.com/de-de/media-gallery/executives/mark-zuckerberg/">Meta</a></strong> setzt mit der Llama-Familie auf ein offenes Modell. Llama ist in verschiedenen Größen verfügbar und kann lokal oder in eigenen Infrastrukturen betrieben werden. Der strategische Unterschied liegt in der Verfügbarkeit: Meta fördert ein Ökosystem aus Forschung und Anpassung, statt primär geschlossene APIs zu kontrollieren.</p>



<p class="wp-block-paragraph"><strong><a href="https://de.wikipedia.org/wiki/Perplexity.ai">Perplexity</a></strong> ist eine Mischung aus Suchmaschine und KI-Assistent. Die Plattform nutzt große Sprachmodelle, um Fragen direkt zu beantworten, statt nur Links anzuzeigen – ähnlich wie ein Chatbot, aber mit stärkerem Fokus auf aktuelle Informationen und Quellenangaben. Die Plattform kombiniert dabei mehrere KI-Modelle verschiedener Anbieter und wählt je nach Anfrage das passende aus.</p>



<p class="wp-block-paragraph">Du findest am Ende dieses Artikels eine ausführliche Tabelle mit allen aktuell bedeutenden KI-Plattformen und den dazugehörigen Anbietern.</p>



<h2 class="wp-block-heading"><br>KI-Modelle – die Technik hinter den Plattformen</h2>



<p class="wp-block-paragraph">Was treibt nun ein KI-Modell im Inneren an? Ein Large Language Model (LLM) ist ein Programm, das darauf trainiert wurde, Text zu verstehen und zu erzeugen. Der Name ist wörtlich zu nehmen: Es handelt sich um ein Modell für Sprache – und zwar ein sehr großes.</p>



<p class="wp-block-paragraph">Das Training funktioniert folgendermaßen: Das Modell liest enorme Mengen an Text – Bücher, Webseiten, Artikel – und lernt dabei statistische Muster. Es lernt also nicht „was wahr ist&#8220;, sondern „welche Wörter und Sätze wahrscheinlich zusammenpassen&#8220;. Aus diesen Mustern kann es später selbst Texte erzeugen, die sinnvoll klingen.<br>Das Wort „Modell&#8220; kommt aus der Mathematik: Intern ist ein LLM eine riesige Sammlung von Zahlenwerten – sogenannte Parameter – die während des Trainings so justiert werden, dass das System immer bessere Antworten liefert. GPT-4 etwa soll über eine Billion solcher Parameter haben.<br>Was ein LLM nicht ist: eine Datenbank, die Fakten nachschlägt. Es gibt keine Suche im Hintergrund – das Modell generiert Antworten auf Basis seiner gelernten Muster. Das erklärt auch, warum KI-Modelle manchmal Dinge erfinden, die falsch sind – man nennt das „Halluzinieren&#8220;.</p>



<p class="wp-block-paragraph">Kurz zusammengefasst: Ein LLM ist ein sehr komplexes, mathematisch trainiertes System, das gelernt hat, wie menschliche Sprache funktioniert – und das dieses Wissen nutzt, um sinnvolle Texte zu produzieren.</p>



<div class="wp-block-kadence-spacer aligncenter kt-block-spacer-1348_6131ac-f5"><div class="kt-block-spacer kt-block-spacer-halign-center"><hr class="kt-divider"/></div></div>



<h2 class="wp-block-heading">FAQs</h2>



<p class="wp-block-paragraph">Und nun zu den wichtigsten Fragen rund um KI und ihren Antworten …</p>



<h3 class="wp-block-heading">Was ist ein Prompt?</h3>



<p class="wp-block-paragraph">Ein Prompt im Zusammenhang mit KI ist eine Eingabe oder Anweisung, die du an ein KI-System gibst, um eine bestimmte Antwort oder Aktion zu erhalten. Stell dir den Prompt wie eine Frage, eine Aufgabe oder eine Beschreibung vor, die der KI sagt, was sie tun soll.</p>



<h3 class="wp-block-heading">Was ist „Prompt-Engineering“ und wie schreibe ich einen guten Prompt?</h3>



<p class="wp-block-paragraph">Prompt-Engineering ist die Kunst, Anweisungen an ein KI-Modell so zu formulieren, dass man möglichst präzise und nützliche Ergebnisse bekommt. Ein paar Grundregeln für einen guten Prompt:<br><strong>Sei konkret und klar</strong><br>Statt „Schreib mir was über CSS“ lieber: „Erkläre CSS Grid in drei kurzen Absätzen für Einsteiger, ohne Fachbegriffe.“<br><strong>Gib Kontext</strong><br>Je mehr die KI über deinen Hintergrund und das Ziel weiß, desto besser die Antwort. Zum Beispiel: „Ich schreibe einen Blogartikel für Web-Entwickler mit Grundkenntnissen…“.<br><strong>Definiere das Format</strong><br>Sag der KI, wie die Antwort aussehen soll – als Liste, als Fließtext, in einer bestimmten Länge oder Sprache.<br><strong>Verwende Beispiele</strong><br>Wenn du einen bestimmten Stil oder eine Struktur willst, zeig ein Beispiel direkt im Prompt.<br><strong>Weise der KI eine Rolle zu</strong><br>„Agiere als erfahrener Frontend-Entwickler und erkläre…“ führt oft zu fokussierteren Antworten.<br><strong>Iteriere</strong><br>Selten ist der erste Prompt der beste. Verfeinere ihn schrittweise, bis das Ergebnis passt.<br><strong>Lass die KI den Prompt für dich schreiben.</strong><br>Du kannst die KI dafür nutzen deine Prompts zu verbessern oder von Grund auf zu erstellen. Zum Beispiel mit „Schreibe mir einen Prompt für ChatGPT, um einen Artikel zum Thema XYZ schreiben zu lassen“ oder „Schreibe mir einen Prompt für Midjourney, um ein Bild für XYZ zu erstellen“.<br>Für eine tiefere Einführung lohnt sich ein Blick in Anthropics offizielle Prompt-Engineering-Dokumentation unter <a href="https://docs.claude.com/en/docs/build-with-claude/prompt-engineering/overview">docs.claude.com</a>.</p>



<h3 class="wp-block-heading">Was ist ein Large Language Model?</h3>



<p class="wp-block-paragraph">Ein LLM (Large Language Model) ist ein KI-Modell, das auf riesigen Mengen an Textdaten trainiert wurde, um menschliche Sprache zu verstehen und zu generieren. Es kalkuliert kontextabhängig Wahrscheinlichkeiten um eine Antwort zu generieren und basiert technisch gesehen meist auf Transformer-Architekturen, um das nächste Wort in einer Sequenz vorherzusagen. <br>Die Transformer-Architektur ist ein Modell aus dem Bereich des Maschinellen Lernens, das Sequenzen (z. B. Text) mithilfe von Aufmerksamkeit („Self-Attention“) verarbeitet, statt sie Schritt für Schritt zu lesen. Sie bildet die Grundlage moderner Sprachmodelle und ermöglicht effizientes paralleles Verarbeiten sowie ein besseres Verständnis von Kontext.</p>



<p class="wp-block-paragraph">LLMs unterscheiden sich z. B. in:<br>· Größe (Parameteranzahl)<br>· Trainingsdaten<br>· Offenheit (Open Source vs. proprietär)<br>· Spezialisierung (z. B. Code, Dialog, Wissenschaft)</p>



<p class="wp-block-paragraph">Siehe auch „Large Language Modelle einfach erklärt“: <a href="https://www.youtube.com/watch?v=SLcAtQQ483Y">https://www.youtube.com/watch?v=SLcAtQQ483Y</a> und zur Transformer-Architektur: <a href="https://www.youtube.com/watch?v=LPZh9BOjkQs">https://www.youtube.com/watch?v=LPZh9BOjkQs</a> sowie <a href="https://de.wikipedia.org/wiki/Large_Language_Model">https://de.wikipedia.org/wiki/Large_Language_Model</a>. </p>



<h3 class="wp-block-heading">Was sind Tokens?</h3>



<p class="wp-block-paragraph">Tokens sind die kleinsten Einheiten, in die ein KI-Modell Text aufteilt – das können einzelne Wörter, Silben oder auch nur einzelne Zeichen sein. Sprachmodelle verarbeiten und generieren Text ausschließlich in Form dieser Tokens, weshalb Kosten und Limits bei KI-APIs meist in Token-Anzahl gemessen werden. </p>



<h3 class="wp-block-heading">Welche Fehler machen Anfänger gerne, wenn sie KI einsetzen?</h3>



<p class="wp-block-paragraph">Die häufigsten Anfängerfehler: KI-Outputs blind vertrauen, ohne Fakten gegenzuprüfen. Zu vage prompten – je konkreter die Anweisung, desto besser das Ergebnis. Und die erste Antwort als finale Antwort nehmen, statt den Dialog zu nutzen und nachzufassen.<br>Was viele außerdem unterschätzen: KI klingt immer selbstsicher, auch wenn sie falsch liegt. Und sie ist kein Ersatz für echtes Urteilsvermögen – bei aktuellen Daten, komplexen Berechnungen oder kontextsensiblen Entscheidungen stößt sie schnell an ihre Grenzen.<br>Zum Thema Programmieren lernen: Hier ist Vorsicht angebracht. Wer sich Code einfach generieren lässt, ohne ihn zu verstehen, lernt im Grunde nichts. KI kann beim Lernen aber sehr hilfreich sein – etwa um Fehlermeldungen zu erklären, Konzepte zu veranschaulichen oder eigenen Code Schritt für Schritt überprüfen zu lassen. Die sinnvollste Nutzung ist also: selbst schreiben, dann mit KI reflektieren – nicht umgekehrt. </p>



<h3 class="wp-block-heading">Was kann KI und was kann sie nicht?</h3>



<p class="wp-block-paragraph">KI kann mit Daten arbeiten: Muster erkennen, Texte zusammenfassen, übersetzen, Bilder erzeugen und Routineaufgaben automatisieren. Sie ist besonders stark bei klaren, wiederholbaren Aufgaben und bei allem, was sich gut aus Beispielen lernen lässt.<br>KI kann aber keine echten Gefühle haben, kein Bewusstsein entwickeln und keine moralische Verantwortung übernehmen. Sie versteht Situationen nicht wie ein Mensch und kann in unbekannten oder unklaren Fällen Fehler machen oder falsche Antworten liefern, deshalb muss man Ergebnisse prüfen.</p>



<h3 class="wp-block-heading">Klaut mir die KI den Job?</h3>



<p class="wp-block-paragraph">Kurz gesagt: <strong>Nein – aber sie verändert ihn spürbar.</strong><br>KI ersetzt selten ganze Berufe, sondern vor allem <strong>klar strukturierte, wiederholbare Teilaufgaben</strong>. Alles, was stark regelbasiert ist (Texterstellung nach Schema, einfache Analysen, Standard-Code), lässt sich gut automatisieren – genau hier sind Systeme wie ChatGPT, Gemini oder Claude besonders effizient.<br>Gleichzeitig entstehen neue Anforderungen:</p>



<ul class="wp-block-list">
<li><strong>Bewertung statt Erstellung</strong> (Output prüfen, einordnen, korrigieren)</li>



<li><strong>Steuerung statt Ausführung</strong> (Prompts, Workflows, Tool-Kombination)</li>



<li><strong>Kontext und Verantwortung</strong> (fachliche Einordnung, Entscheidungen)</li>
</ul>



<p class="wp-block-paragraph">Berufe mit hohem Anteil an <strong>kreativer, sozialer oder strategischer Arbeit</strong> sind deutlich robuster. Ebenso Tätigkeiten, die stark von Erfahrung geprägt sind. KI kann hier unterstützen, aber selten vollständig ersetzen.<br>Realistisch ist daher ein anderes Szenario: Menschen, die KI produktiv einsetzen, ersetzen nicht andere Menschen – sondern <strong>diejenigen, die sie nicht nutzen</strong>.<br>Die Frage ist weniger „Werde ich ersetzt?“, sondern „Wie verändert sich mein Arbeitsprofil?“. <br>Wer lernt, KI als Werkzeug einzusetzen, verschiebt sich typischerweise in Richtung <strong>höherwertiger, steuernder Tätigkeiten</strong>.<br>Was bleibt – und sogar wichtiger wird – ist die Fähigkeit, gute Fragen zu stellen, Ergebnisse zu beurteilen und Kontext zu liefern, den eine KI nicht hat. Wer KI-Tools gut einsetzen kann, erledigt in einer Stunde, wofür er früher einen Tag gebraucht hat.<br>Das klingt nach Bedrohung, ist aber auch eine echte Chance: Lerne KI nutzen (z. B. Tools integrieren), nicht bekämpfen – das schützt deinen Job.</p>



<h3 class="wp-block-heading">Was versteht man unter dem Begriff „Generative KI“?</h3>



<p class="wp-block-paragraph">„Generative KI“ bezeichnet KI-Systeme, die neue Inhalte erzeugen können, anstatt nur bestehende Daten zu analysieren. Dazu gehören z. B. Texte, Bilder, Musik oder Code. Bekannte Beispiele sind ChatGPT und Claude für Texte, Midjourney oder DALL·E für Bilder, und Suno für Musik</p>



<h3 class="wp-block-heading">Was versteht man unter „Mustererkennung“ in der KI?</h3>



<p class="wp-block-paragraph">Muster-Erkennung bedeutet, dass ein KI-Modell aus Daten bestimmte Regelmässigkeiten ableiten kann. D.h. es lernt aus den Beispielen heraus Vorhersagen zu treffen; zum Beispiel, welche Bilder ein bestimmtes Objekt zeigen oder welche Texte eine bestimmte Stimmung haben.</p>



<h3 class="wp-block-heading">Woher kommen die Trainingsdaten der KI?</h3>



<p class="wp-block-paragraph">Trainingsdaten von KIs kommen meist aus mehreren Quellen: öffentlich verfügbare Webseiten, Bücher, wissenschaftliche Texte, Foren, Nachrichten, Bilder, Audio, Videos sowie speziell zusammengestellte Datensätze. Oft werden sie zusätzlich von Menschen bereinigt, beschriftet und ergänzt; teils kommen auch synthetische, also künstlich erzeugte Daten dazu. <br>Nicht jede KI wird mit denselben Daten trainiert. Ein Bilderkennungsmodell braucht andere Trainingsdaten als ein Chatbot oder ein medizinisches Modell. </p>



<h3 class="wp-block-heading">Was sind Agents und KI-Workflows?</h3>



<p class="wp-block-paragraph">KI-Agents sind autonome KI-Systeme, die Ziele verfolgen, ihre Umgebung wahrnehmen, Entscheidungen treffen und Aktionen ausführen.<br>Siehe auch KI-Agents und Workflows von Jonas Keil: <a href="https://www.youtube.com/watch?v=yN2iYWbwFFs">https://www.youtube.com/watch?v=yN2iYWbwFFs</a> , So funktionieren KI Agenten in ChatGPT und Co.: <a href="https://www.youtube.com/watch?v=hiCthsCiJow">https://www.youtube.com/watch?v=hiCthsCiJow</a>, <br>Felicia Simon über die Entwicklungen bei KI-Agenten und KI generell: <a href="https://youtu.be/wRQUipPUQ3U?t=646">https://youtu.be/wRQUipPUQ3U?t=646</a></p>



<h3 class="wp-block-heading">Was ist das MCP-Protokoll?</h3>



<p class="wp-block-paragraph">Das Model Context Protocol (MCP) ist ein offener Standard von Anthropic (November 2024), der die Kommunikation zwischen KI-Modellen (z. B. LLMs oder Agents) und externen Tools, Datenquellen oder Systemen standardisiert. Es folgt einem Client-Server-Modell: Der Host (KI-Anwendung) nutzt Clients, um über JSON-RPC 2.0 Requests an Server zu senden, die Daten (z. B. Datenbanken, APIs) oder Funktionen bereitstellen – lokal via stdio oder remote via SSE. Siehe auch <a href="https://www.bigdata-insider.de/was-ist-das-model-context-protocol-mcp-a-0e33ecbbb78766be468420d2f8284ad5/">https://www.bigdata-insider.de/was-ist-das-model-context-protocol-mcp-a-0e33ecbbb78766be468420d2f8284ad5/</a><br>MCP löst das Problem individueller API-Adapter, indem es eine universelle &#8222;Sprache&#8220; schafft, ähnlich HTTP fürs Web. Dadurch können Agents dynamisch auf Echtzeitdaten zugreifen, Aktionen ausführen und Workflows automatisieren, ohne modell- oder tool-spezifische Anpassungen.<br>In der Praxis vereinfacht MCP die Interoperabilität in Agentic AI: Ein Agent kann z. B. eine Datenbank abfragen oder GitHub-APIs nutzen, ohne benutzerdefinierte Logik. Es wird in IDEs, Chatbots und Enterprise-Tools integriert, um skalierbare, sichere Verbindungen zu gewährleisten.</p>



<h3 class="wp-block-heading">Ist das MCP-Protokoll sicher?</h3>



<p class="wp-block-paragraph">Das Model Context Protocol (MCP) ist grundsätzlich kein unsicheres Protokoll, sondern ein Ansatz, um den Zugriff von KI-Modellen auf externe Daten und Tools strukturierter und kontrollierter zu gestalten. Es kann sogar helfen, Sicherheit zu verbessern, weil Zugriffe klar definiert und besser überprüfbar sind. Allerdings hängt die tatsächliche Sicherheit stark davon ab, wie MCP implementiert wird. Wo Risiken liegen:</p>



<ul class="wp-block-list">
<li><strong>Unsichere Tool-Implementierungen</strong><br>Wenn ein angebundenes Tool schlecht abgesichert ist (z. B. keine Authentifizierung), hilft auch MCP nicht viel.</li>



<li><strong>Prompt Injection / Tool Abuse</strong><br>Ein Modell kann durch manipulierte Eingaben dazu gebracht werden, unerwünschte Tool-Aufrufe zu machen (klassisches LLM-Risiko).</li>



<li><strong>Datenlecks durch falsche Konfiguration</strong><br>Wenn zu viele Rechte vergeben werden, kann das Modell auf sensible Daten zugreifen, die es eigentlich nicht sehen sollte.</li>



<li><strong>Transport-Sicherheit</strong><br>MCP selbst definiert nicht zwingend die Transportverschlüsselung – wenn kein TLS genutzt wird, kann Datenverkehr abgefangen werden.</li>
</ul>



<p class="wp-block-paragraph">Insgesamt gilt: MCP kann eine sichere Grundlage bieten, ersetzt aber keine saubere Sicherheitsarchitektur. Entscheidend ist, wie sorgfältig Zugriffskontrollen, Absicherung der Tools und Überwachung umgesetzt werden.</p>



<h3 class="wp-block-heading">Was ist OpenClaw und was kann das System?</h3>



<p class="wp-block-paragraph">OpenClaw ist eine Open-Source-Software, mit der sich ein KI-Agent auf dem eigenen Computer betreiben lässt. Gesteuert wird er über Messenger wie WhatsApp, Telegram oder Signal – Aufgaben werden einfach als Nachricht übermittelt, OpenClaw erledigt sie selbstständig. Das Projekt wurde 2025 vom österreichischen Entwickler Peter Steinberger gestartet und sorgte Anfang 2026 für großes Aufsehen in der KI-Community.<br>OpenClaw kann Dateien lesen und schreiben, Shell-Befehle ausführen, E-Mails senden, Websites aufrufen und Aufgaben über verschiedene Anwendungen hinweg automatisieren. Im Hintergrund nutzt es bestehende KI-Modelle wie Claude oder ChatGPT als „Gehirn&#8220;. Der entscheidende Unterschied zu einem normalen Chatbot: OpenClaw wartet nicht auf Eingaben, sondern kann auch eigenständig im Hintergrund aktiv werden.<br>Das birgt allerdings Risiken. Da die Software auf Betriebssystemebene arbeitet und auch ohne aktive Nutzung Aktionen ausführen kann, empfiehlt sich der Einsatz ausschließlich in kontrollierten Umgebungen – nicht auf Geräten mit Zugang zu sensiblen Daten.</p>



<h3 class="wp-block-heading">Kann ich eine KI lokal auf meinem PC laufen lassen?</h3>



<p class="wp-block-paragraph">Ja, du kannst KI-Modelle lokal auf deinem Rechner laufen lassen – das hängt aber stark von deiner Hardware ab. Moderne Tools wie Ollama oder LM Studio machen es relativ einfach, kleinere bis mittelgroße Modelle offline zu nutzen.<br>Für gute Ergebnisse brauchst du idealerweise eine starke CPU, viel RAM (mind. 16 GB, besser 32 GB) und – wenn möglich – eine GPU; ohne GPU laufen Modelle zwar auch, aber deutlich langsamer. Artikel von heise dazu: <a href="https://www.heise.de/news/Lokale-KI-Modelle-sind-jetzt-brauchbar-und-auf-dieser-Hardware-laufen-sie-10864518.html">https://www.heise.de/news/Lokale-KI-Modelle-sind-jetzt-brauchbar-und-auf-dieser-Hardware-laufen-sie-10864518.html</a>. </p>



<h3 class="wp-block-heading">Warum laufen KI-Modelle so gut auf Grafikkarten?</h3>



<p class="wp-block-paragraph">Grafikkarten (GPUs) wurden ursprünglich für 3D-Spiele entwickelt, sind aber zufällig perfekt für KI-Training geeignet – weil sie tausende einfache Rechenoperationen gleichzeitig ausführen können, statt wie eine CPU wenige komplexe nacheinander.</p>



<h3 class="wp-block-heading">Welche Hardware und was für ein Rechenzentrum brauche ich, um eine Plattform wie ChatGPT laufen zu lassen?</h3>



<p class="wp-block-paragraph">Kurz gesagt: unvorstellbar viel. Der Betrieb eines Modells in ChatGPT-Größenordnung erfordert tausende High-End-GPUs (meist NVIDIA H100 oder ähnliche), die jeweils 30.000–40.000 Dollar kosten – OpenAI betreibt geschätzt über 100.000 solcher Chips. Dazu kommen spezialisierte Netzwerkinfrastruktur mit extrem niedriger Latenz, riesige Mengen an Arbeitsspeicher, Stromanschlüsse im Megawatt-Bereich und aufwändige Kühlung. Das Training eines großen Modells kostet schnell Millionen bis Milliarden Euro und benötigt Wochen auf solchen Clustern. Der Betrieb (also das Beantworten von Anfragen) ist etwas weniger aufwändig, aber immer noch weit entfernt vom „Heim-PC-Niveau“. Für Einzelpersonen oder kleine Unternehmen ist das schlicht unrealistisch; realistischer ist es, kleinere Open-Source-Modelle lokal zu betreiben oder über Cloud-APIs auf bestehende Modelle zuzugreifen.</p>



<h3 class="wp-block-heading">Wie viel Strom benötigt so ein Rechenzentrum?</h3>



<p class="wp-block-paragraph">Ein einzelnes großes KI-Rechenzentrum verbraucht typischerweise zwischen 100 und 500 Megawatt – das entspricht dem Strombedarf einer mittleren Großstadt. Zum Vergleich: Eine einfache Google-Suche verbraucht etwa 0,3 Wattstunden, eine Anfrage an ChatGPT schätzungsweise das 10-fache davon. Der Stromhunger ist so enorm, dass große Tech-Konzerne wie Microsoft, Google und Amazon inzwischen massiv in eigene Kernkraftwerke oder Solarparks investieren – weil das öffentliche Stromnetz in vielen Regionen schlicht nicht mithalten kann.</p>



<h3 class="wp-block-heading">Macht uns die KI dümmer?</h3>



<p class="wp-block-paragraph">Das ist eine spannende Frage, die Wissenschaftler und Gesellschaft gerade intensiv diskutieren! Es gibt Argumente auf beiden Seiten: Einerseits besteht die Sorge, dass wir durch das ständige Auslagern von Denkaufgaben an KI unsere eigenen Fähigkeiten wie kritisches Denken, Problemlösen oder Schreiben verlernen könnten – ähnlich wie das Navi uns schlechter im Orientieren gemacht hat. Andererseits kann KI als Werkzeug uns entlasten und Kapazitäten für kreativeres und komplexeres Denken freimachen, wenn wir sie bewusst einsetzen.</p>



<p class="wp-block-paragraph">Die entscheidende Frage ist eigentlich: <em>Wie</em> nutzen wir KI? Wer sie unkritisch als Ersatz für eigenes Denken nutzt, riskiert tatsächlich einen Kompetenz-Verlust. Wer sie als Assistent einsetzt und die Ergebnisse hinterfragt, kann davon profitieren. </p>



<h3 class="wp-block-heading">Ist eine KI voreingenommen, hat sie Vorurteile?</h3>



<p class="wp-block-paragraph">Ja, definitiv – KI-Modelle spiegeln die Vorurteile wider, die in ihren Trainingsdaten stecken, und da das Internet nun mal von bestimmten Kulturen, Sprachen und Perspektiven dominiert wird, sind westliche, englischsprachige Sichtweisen in westlichen KIs deutlich überrepräsentiert. Dazu kommt Bias (Voreingenommenheit) durch menschliches Feedback beim Training: Die Menschen, die ein Modell bewerten und verfeinern, bringen ihre eigenen blinden Flecken mit. Hersteller wie Anthropic oder OpenAI arbeiten aktiv daran, diese Verzerrungen zu reduzieren – aber vollständig neutral ist kein Modell, und wer KI kritisch nutzt, sollte das im Hinterkopf behalten.</p>



<h3 class="wp-block-heading">Sind meine Daten bei einer KI sicher?</h3>



<p class="wp-block-paragraph">KI verarbeitet oft sensible Daten (Prompts, Dateien), die gespeichert, trainiert oder an Dritte weitergegeben werden können. Es gibt hier zwar europäische Datenschutzrichtlinien, aber die lassen sich nur in Europa durchsetzen. Außerhalb Europas (USA, China) muss man damit rechnen, dass staatliche Stellen Zugriff auf diese Informationen haben. Nur beim lokalen Betrieb eines Open-Source LLMs (Qwen, Llama, Mistral) auf dem eigenen Rechner bist du einigermaßen gegen diese Zugriffe geschützt.</p>



<h3 class="wp-block-heading">Welche <strong>rechtlichen Rahmenbedingungen</strong> zur KI gibt es?</h3>



<p class="wp-block-paragraph">Einen AI Act der EU gibt es seit 2024. Es ist das weltweit erste umfassende Gesetz zur Regulierung von KI. Er verfolgt einen risikobasierten Ansatz, bei dem die Anforderungen je nach Risikostufe des KI-Systems unterschiedlich streng ausfallen – von komplett verbotenen Anwendungen bis hin zu weitgehend unregulierten. Er könnte zum globalen Standard werden (ähnlich wie DSGVO).</p>



<h3 class="wp-block-heading">Kann ich mich dagegen wehren, wenn meine Fotos von anderen per KI modifiziert und publiziert werden?</h3>



<p class="wp-block-paragraph">Kann ich die weitere Verbreitung eines mittels Bild-zu-Bild-KI erstellten Folgewerks untersagen lassen? Im <strong>Urteil vom 2. April 2026 hat der 20. Zivilsenat des Oberlandesgerichts Düsseldorf</strong> eine entsprechende Beschwerde einer Fotografin <strong>zurückgewiesen</strong>. Demnach ist zu prüfen, ob exakt die kreativen Elemente übernommen wurden, welche die persönliche Leistung der Fotografin ausmachen. Das können etwa Kameraeinstellung, spezifische Beleuchtung, Schärfentiefe oder der gewählte Ausschnitt sein. Das abstrakte Motiv dagegen, also in dem konkreten Fall ein unter Wasser nach einem Spielzeug greifender Hund, ist eine bloße Idee und nicht schutzfähig. Ein KI-gestütztes Nachbauen bildlicher Einfälle muss sie also hinnehmen. Näheres dazu siehe <a href="https://www.heise.de/news/KI-Bilder-im-Urheberrecht-Wann-Prompting-schuetzt-und-warum-Kopieren-erlaubt-ist-11296517.html">https://www.heise.de/news/KI-Bilder-im-Urheberrecht-Wann-Prompting-schuetzt-und-warum-Kopieren-erlaubt-ist-11296517.html</a> und <a href="https://www.ferner-alsdorf.de/ki-bildgenerierung-und-lichtbildschutz-olg-duesseldorf-setzt-massstaebe/">https://www.ferner-alsdorf.de/ki-bildgenerierung-und-lichtbildschutz-olg-duesseldorf-setzt-massstaebe/</a>. </p>



<h3 class="wp-block-heading">Seit wann gibt es KI?</h3>



<p class="wp-block-paragraph">Die Idee der künstlichen Intelligenz ist nicht neu, es gibt sie schon seit vielen Jahrzehnten, so veröffentlichte Alan Turing zum Beispiel schon 1950 seinen <strong><a href="https://de.wikipedia.org/wiki/Turing-Test">Turing Test</a></strong>, ein Kriterium für maschinelle Intelligenz. Weitere Schritte in Richtung KI waren zum Beispiel in den sechziger Jahren das Programm Eliza, ein einfacher Chatbot. Oder IBM Deep Blue, das 1997 den Schachweltmeister Garri Kasparow geschlagen hat. &nbsp;Ein weiterer wichtiger Meilenstein war 2016, als Google <strong><a href="https://de.wikipedia.org/wiki/AlphaGo">AlphaGo</a> </strong>den Go Weltmeister Lee Sedol geschlagen hat.<br>Einen echten Durchbruch gab es dann mit <strong>ChatGPT</strong>, welches im <strong>November 2022</strong>&nbsp;der Öffentlichkeit vorgestellt wurde und die Möglichkeiten von KI einem breiten Publikum bekannt gemacht hat.</p>



<h3 class="wp-block-heading">Und die finale Frage: Wann werden die Maschinen, wann wird KI die Weltherrschaft übernehmen?</h3>



<p class="wp-block-paragraph">Vermutlich nie – das ist eher Hollywood als Realität. Aktuelle KI-Modelle sind beeindruckend in klar definierten Aufgaben, haben aber keinerlei eigene Ziele, Wünsche oder Bewusstsein. Eine KI „will&#8220; nichts – sie berechnet die wahrscheinlichste nächste Antwort. Die wirklich relevante Frage ist nicht, ob KI die Macht übernimmt, sondern wer die Menschen sind, die KI kontrollieren und welche Interessen sie dabei verfolgen (z. B. Regulierung, Missbrauch, Kontrolle durch Unternehmen oder Staaten).<br>Kleine Anmerkung des Autors: Diese Antwort wurde von einer KI generiert 😉 </p>



<div class="wp-block-kadence-spacer aligncenter kt-block-spacer-1348_688358-07"><div class="kt-block-spacer kt-block-spacer-halign-center"><hr class="kt-divider"/></div></div>



<h2 class="wp-block-heading">Details zu Technik und Plattformen</h2>



<p class="wp-block-paragraph">Wenn du es bis hier durchgehalten hast und es wirklich genauer wissen willst, habe ich im folgenden noch ein paar tiefergehende Informationen für dich …</p>



<h3 class="wp-block-heading"><a><strong>KI-Plattformen</strong></a></h3>



<p class="wp-block-paragraph">In der nachfolgenden Tabelle findest du einen detaillierten Überblick über die wichtigsten KI-Plattformen und den dazugehörigen KI-Modellen (<strong>Stand April 2026</strong>).</p>



<figure class="wp-block-table"><table><thead><tr><th class="has-text-align-left" data-align="left">Plattform</th><th class="has-text-align-left" data-align="left">Unternehmen</th><th class="has-text-align-left" data-align="left">KI-Modelle / LLMs</th></tr></thead><tbody><tr><td>ChatGPT</td><td>OpenAI<br>USA</td><td>GPT-5,&nbsp;GPT-4o,&nbsp;o3,&nbsp;o4-mini</td></tr><tr><td>Claude</td><td>Anthropic<br>USA</td><td>Claude Opus 4.6,&nbsp;Claude Sonnet 4.6,&nbsp;Claude Haiku 4.5</td></tr><tr><td>Gemini</td><td>Google DeepMind<br>USA</td><td>Gemini 2.5 Pro,&nbsp;Gemini 2.5, Flash,&nbsp;Gemini 2.0</td></tr><tr><td>Microsoft Copilot</td><td>Microsoft<br>USA</td><td>GPT-4o,&nbsp;o3 via OpenAI-Partnerschaft</td></tr><tr><td>Grok</td><td>xAI<br>USA</td><td>Grok 3,&nbsp;Grok 3 Mini</td></tr><tr><td>Meta AI</td><td>Meta<br>USA</td><td>Llama 4 Maverick,&nbsp;Llama 4 Scout</td></tr><tr><td>Perplexity</td><td>Perplexity AI<br>USA</td><td>Sonar,&nbsp;Sonar Pro + externe Modelle (GPT, Claude, …)</td></tr><tr><td>Le Chat</td><td>Mistral AI<br>Frankreich</td><td>Mistral Large, Mistral Medium, Mistral Small 4, Mixtral 8x7B, Mixtral 8x22B, Magistral, Mistral 7B</td></tr><tr><td>DeepSeek</td><td>DeepSeek AI<br>China</td><td>DeepSeek-V3,&nbsp;DeepSeek-R1,&nbsp;DeepSeek-VL2</td></tr><tr><td>PhariaAI</td><td>Aleph Alpha<br>Deutschland</td><td>Luminous. Fokus auf souveräne KI-Plattform für Unternehmen &amp; Behörden</td></tr><tr><td>Cohere</td><td>Cohere<br>Kanada</td><td>Command A,&nbsp;Command R+,&nbsp;Command A Reasoning,&nbsp;Command A Vision,&nbsp;Aya Expanse</td></tr><tr><td>Azure AI Foundry</td><td>Microsoft<br>USA</td><td>GPT-4o,&nbsp;o3,&nbsp;Llama 4,&nbsp;Mistral Large,&nbsp;Phi-4. Multi-Modell-Plattform (100+ Modelle von OpenAI, Meta, Mistral u.a.)</td></tr><tr><td>AWS Bedrock</td><td>Amazon Web Services<br>USA</td><td>Amazon Nova,&nbsp;Claude (Anthropic),&nbsp;Llama 4 (Meta),&nbsp;Mistral,&nbsp;DeepSeek-R1,&nbsp;Cohere Command. Multi-Modell-Marktplatz mit 100+ Modellen von führenden Anbietern</td></tr><tr><td>Hugging Face</td><td>Hugging Face<br>USA/Frankreich</td><td>Llama 4, &nbsp;Mistral,&nbsp;Falcon,&nbsp;Gemma,&nbsp;FLUX.  Größtes Open-Source-Modell-Repository (500.000+ Modelle)</td></tr><tr><td>IBM Watsonx</td><td>IBM<br>USA</td><td>Granite 3.3,&nbsp;Llama 3.3,&nbsp;Mistral Large,&nbsp;DeepSeek-R1. mit Enterprise-Fokus </td></tr><tr><td class="has-text-align-left" data-align="left">Ernie Bot </td><td class="has-text-align-left" data-align="left">Baidu<br>China </td><td class="has-text-align-left" data-align="left">Ernie 4.5,&nbsp;Ernie X1. Open-Source seit Juni 2025; in Baidus Suchökosystem integriert</td></tr><tr><td class="has-text-align-left" data-align="left">Qwen / Tongyi </td><td class="has-text-align-left" data-align="left">Alibaba<br>China</td><td class="has-text-align-left" data-align="left">Qwen3-Max,&nbsp;Qwen3,&nbsp;Qwen2.5,&nbsp;Qwen-VL. Meistgenutztes Open-Source-KI-Ökosystem weltweit (700M+ Downloads)</td></tr><tr><td class="has-text-align-left" data-align="left">Yuanbao</td><td class="has-text-align-left" data-align="left">Tencent<br>China</td><td class="has-text-align-left" data-align="left">Hunyuan 2.5,&nbsp;Hunyuan 3.0,&nbsp;Hunyuan 3D. Tief in WeChat &amp; QQ integriert (1,4 Mrd. Nutzer)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><br>Bei mehreren Plattformen wechselt das zugrunde liegende Modell regelmäßig oder es werden mehrere Modelle parallel eingesetzt, deshalb sind die Modellangaben immer eine Momentaufnahme. Besonders bei Copilot, Perplexity und den Cloud-Plattformen ist die „KI im Inneren“ oft ein Orchestrator aus mehreren Modellen statt nur ein einziges LLM.</p>



<p class="wp-block-paragraph">Um die Sache jetzt noch etwas komplizierter zu machen, hier der Hinweis, dass viele KI-Modelle ihre <strong>Fähigkeiten per API (Application Programming Interface) zur Verfügung stellen</strong>. So lässt sich zum Beispiel das KI-Modell des Bildgenerators Nano Banana von Google auch auf anderen Plattformen als Google Gemini nutzen. <br>Auch Azure AI und AWS Bedrock sind keine eigenständigen KI-Modelle, sondern Cloud-Marktplätze. AWS Bedrock bietet Zugang zu Modellen von Anbietern wie Anthropic, Cohere, DeepSeek, Meta, Mistral oder OpenAI über eine einheitliche API. Azure AI Foundry funktioniert nach demselben Prinzip, primär mit OpenAI-Modellen plus weiteren Drittanbietern. </p>



<h4 class="wp-block-heading">Einordnung der wichtigsten Plattformen</h4>



<p class="wp-block-paragraph">Für viele Nutzer sind <strong>ChatGPT</strong>, <strong>Claude</strong>, <strong>Gemini</strong> und <strong>Perplexity</strong> im Moment die relevantesten Alltagsplattformen, weil sie direkt für Schreiben, Recherche, Analyse und Assistenz optimiert sind. <strong>ChatGPT </strong>ist am breitesten als <strong>Allrounder </strong>aufgestellt für Schreiben, Recherche, Ideen, Zusammenfassungen und flexible Wissensarbeit. <strong>Claude </strong>punktet besonders bei langen, anspruchsvollen <strong>Text- und Codeaufgaben</strong>, <strong>Gemini</strong> ist stark in Multimodalität (es kann mehrere Arten von Eingaben, wie Text, Bild, Sprache etc. verarbeiten) und bietet eine gute <strong>Google-Integration</strong>. <strong>Perplexity </strong>ist am besten für <strong>recherchestarke, quellennahe Antworten</strong>&nbsp;und faktenorientierte Antworten geeignet. Für <strong>Produktivität im Büroalltag</strong> ist oft <strong>Microsoft Copilot</strong> die beste Wahl, wenn du viel mit Outlook, Word, Excel, Teams und Team-Workflows in Microsoft 365 arbeitest.</p>



<h4 class="wp-block-heading">Kosten einiger ausgewählter Plattformen</h4>



<p class="wp-block-paragraph">Hier eine Übersicht mit den im Moment wichtigsten KI-Plattformen samt typischer Kosten und Kernmodell vom April 2026. Die Preise sind als typische Monatskosten angegeben und können je nach Region und Geschäftskontext variieren.</p>



<!-- KI-Plattformen Kostenübersicht – WordPress HTML-Block -->
<style>
.ki-table-wrap {
  overflow-x: auto;
  margin: 1.5em 0;
}
.ki-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
  font-family: inherit;
}
.ki-table thead th {
  background-color: #f5f5f5;
  color: #555;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 10px 16px;
  text-align: left;
  border-bottom: 2px solid #e0e0e0;
}
.ki-table tbody td {
  padding: 12px 16px;
  border-bottom: 1px solid #ebebeb;
  vertical-align: top;
  color: #222;
  line-height: 1.6;
}
.ki-table tbody tr:last-child td {
  border-bottom: none;
}
.ki-table tbody tr:hover td {
  background-color: #fafafa;
}
.ki-platform {
  font-weight: 600;
  color: #111;
}
.ki-model {
  font-family: monospace;
  font-size: 13px;
  color: #555;
}
.ki-tier {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 3px 0;
  align-items: baseline;
}
.ki-tier-label {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  min-width: 58px;
  color: #888;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding-top: 1px;
}
.ki-price {
  font-size: 14px;
  color: #222;
}
.ki-free  { color: #166534; font-weight: 600; }
.ki-mid   { color: #1e40af; font-weight: 600; }
.ki-pro   { color: #7c3aed; font-weight: 600; }
.ki-api   { color: #854d0e; font-weight: 600; }
.ki-note {
  font-size: 12px;
  color: #888;
  margin-top: 4px;
  display: block;
}
.ki-section-header td {
  background-color: #f0f4ff;
  color: #3730a3;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 7px 16px;
  border-bottom: 1px solid #c7d2fe;
}
</style>
 
<div class="ki-table-wrap">
  <table class="ki-table">
    <thead>
      <tr>
        <th style="width:18%">Plattform</th>
        <th style="width:22%">Modell</th>
        <th>Typische Kosten</th>
      </tr>
    </thead>
    <tbody>
 
      <!-- Allzweck-Chatbots -->
      <tr class="ki-section-header">
        <td colspan="3">Allzweck-Chatbots (Consumer)</td>
      </tr>
 
      <tr>
        <td><span class="ki-platform">ChatGPT</span></td>
        <td><span class="ki-model">GPT-5, GPT-4o, o3</span></td>
        <td>
          <div class="ki-tier"><span class="ki-tier-label">Free</span><span class="ki-price ki-free">Kostenlos</span></div>
          <div class="ki-tier"><span class="ki-tier-label">Plus</span><span class="ki-price ki-mid">$20 / Monat</span></div>
          <div class="ki-tier"><span class="ki-tier-label">Pro</span><span class="ki-price ki-pro">$200 / Monat</span></div>
          <span class="ki-note">Team ab $25/User/Monat · Enterprise auf Anfrage</span>
        </td>
      </tr>
 
      <tr>
        <td><span class="ki-platform">Claude</span></td>
        <td><span class="ki-model">Opus 4.6, Sonnet 4.6, Haiku 4.5</span></td>
        <td>
          <div class="ki-tier"><span class="ki-tier-label">Free</span><span class="ki-price ki-free">Kostenlos</span></div>
          <div class="ki-tier"><span class="ki-tier-label">Pro</span><span class="ki-price ki-mid">$20 / Monat</span></div>
          <div class="ki-tier"><span class="ki-tier-label">Max</span><span class="ki-price ki-pro">$100–200 / Monat</span></div>
          <span class="ki-note">Team ab $25/User/Monat · Enterprise auf Anfrage</span>
        </td>
      </tr>
 
      <tr>
        <td><span class="ki-platform">Gemini</span></td>
        <td><span class="ki-model">Gemini 2.5 Pro, 2.5 Flash</span></td>
        <td>
          <div class="ki-tier"><span class="ki-tier-label">Free</span><span class="ki-price ki-free">Kostenlos</span></div>
          <div class="ki-tier"><span class="ki-tier-label">AI Pro</span><span class="ki-price ki-mid">$19,99 / Monat</span></div>
          <div class="ki-tier"><span class="ki-tier-label">AI Ultra</span><span class="ki-price ki-pro">$249,99 / Monat</span></div>
          <span class="ki-note">Inkl. Google One Speicher &amp; Workspace-Integration</span>
        </td>
      </tr>
 
      <tr>
        <td><span class="ki-platform">Microsoft Copilot</span></td>
        <td><span class="ki-model">GPT-4o, o3 (via OpenAI)</span></td>
        <td>
          <div class="ki-tier"><span class="ki-tier-label">Free</span><span class="ki-price ki-free">Kostenlos</span></div>
          <div class="ki-tier"><span class="ki-tier-label">M365</span><span class="ki-price ki-mid">ab $6,99 / Monat</span></div>
          <div class="ki-tier"><span class="ki-tier-label">Business</span><span class="ki-price ki-pro">$30 / User / Monat</span></div>
          <span class="ki-note">Copilot in Word, Excel, Teams etc. je nach M365-Plan</span>
        </td>
      </tr>
 
      <tr>
        <td><span class="ki-platform">Grok</span></td>
        <td><span class="ki-model">Grok 3, Grok 3 Mini</span></td>
        <td>
          <div class="ki-tier"><span class="ki-tier-label">Free</span><span class="ki-price ki-free">Kostenlos (begrenzt)</span></div>
          <div class="ki-tier"><span class="ki-tier-label">SuperGrok</span><span class="ki-price ki-mid">$30 / Monat</span></div>
          <div class="ki-tier"><span class="ki-tier-label">X Premium+</span><span class="ki-price ki-mid">$40 / Monat</span></div>
          <span class="ki-note">SuperGrok Heavy (max. Leistung): $300 / Monat</span>
        </td>
      </tr>
 
      <tr>
        <td><span class="ki-platform">Le Chat</span></td>
        <td><span class="ki-model">Mistral Large, Small 4, Mixtral</span></td>
        <td>
          <div class="ki-tier"><span class="ki-tier-label">Free</span><span class="ki-price ki-free">Kostenlos</span></div>
          <div class="ki-tier"><span class="ki-tier-label">Pro</span><span class="ki-price ki-mid">$14,99 / Monat</span></div>
          <span class="ki-note">Günstigstes Premiumabo unter den großen Anbietern · Student-Rabatt: –53 %</span>
        </td>
      </tr>
 
      <tr>
        <td><span class="ki-platform">Perplexity</span></td>
        <td><span class="ki-model">Sonar, Sonar Pro (+ GPT, Claude, Gemini)</span></td>
        <td>
          <div class="ki-tier"><span class="ki-tier-label">Free</span><span class="ki-price ki-free">Kostenlos</span></div>
          <div class="ki-tier"><span class="ki-tier-label">Pro</span><span class="ki-price ki-mid">$20 / Monat</span></div>
          <span class="ki-note">Jährlich: $200 / Jahr ($16,67 / Monat)</span>
        </td>
      </tr>
 
      <tr>
        <td><span class="ki-platform">DeepSeek</span></td>
        <td><span class="ki-model">DeepSeek-V3, R1, VL2</span></td>
        <td>
          <div class="ki-tier"><span class="ki-tier-label">Chat</span><span class="ki-price ki-free">Kostenlos</span></div>
          <div class="ki-tier"><span class="ki-tier-label">API V4</span><span class="ki-price ki-api">$0,30 / Mio. Input-Token</span></div>
          <div class="ki-tier"><span class="ki-tier-label">API V4</span><span class="ki-price ki-api">$0,50 / Mio. Output-Token</span></div>
          <span class="ki-note">Einer der günstigsten Frontier-APIs weltweit · Lokal ausführbar (Open Source)</span>
        </td>
      </tr>
 
      <!-- Chinesische Plattformen -->
      <tr class="ki-section-header">
        <td colspan="3">Weitere chinesische Plattformen</td>
      </tr>
 
      <tr>
        <td><span class="ki-platform">Ernie Bot</span></td>
        <td><span class="ki-model">Ernie 4.5, Ernie X1</span></td>
        <td>
          <div class="ki-tier"><span class="ki-tier-label">Free</span><span class="ki-price ki-free">Kostenlos (in China)</span></div>
          <div class="ki-tier"><span class="ki-tier-label">API</span><span class="ki-price ki-api">Ernie 4.5: ca. $0,42 / Mio. Token</span></div>
          <span class="ki-note">Hauptsächlich für den chinesischen Markt</span>
        </td>
      </tr>
 
      <tr>
        <td><span class="ki-platform">Qwen / Tongyi</span></td>
        <td><span class="ki-model">Qwen3-Max, Qwen3, Qwen2.5</span></td>
        <td>
          <div class="ki-tier"><span class="ki-tier-label">Free</span><span class="ki-price ki-free">Kostenlos (App)</span></div>
          <div class="ki-tier"><span class="ki-tier-label">API</span><span class="ki-price ki-api">Qwen3: ab $0,40 / Mio. Token</span></div>
          <span class="ki-note">Open-Source-Modelle kostenlos herunterladbar</span>
        </td>
      </tr>
 
      <tr>
        <td><span class="ki-platform">Yuanbao</span></td>
        <td><span class="ki-model">Hunyuan 2.5, 3.0</span></td>
        <td>
          <div class="ki-tier"><span class="ki-tier-label">Free</span><span class="ki-price ki-free">Kostenlos (App)</span></div>
          <div class="ki-tier"><span class="ki-tier-label">API</span><span class="ki-price ki-api">Hunyuan Pro: ca. $2,00 / Mio. Token</span></div>
          <span class="ki-note">Tief in WeChat integriert · primär chinesischer Markt</span>
        </td>
      </tr>
 
      <!-- Enterprise & Cloud-Plattformen -->
      <tr class="ki-section-header">
        <td colspan="3">Enterprise- &amp; Cloud-Plattformen (API / Pay-per-use)</td>
      </tr>
 
      <tr>
        <td><span class="ki-platform">Azure AI Foundry</span></td>
        <td><span class="ki-model">GPT-4o, o3, Phi-4, Llama 4 u.a.</span></td>
        <td>
          <div class="ki-tier"><span class="ki-tier-label">API</span><span class="ki-price ki-api">Pay-per-use (je nach Modell)</span></div>
          <div class="ki-tier"><span class="ki-tier-label">Enterprise</span><span class="ki-price ki-pro">$30 / User / Monat (Gemini Enterprise-äquivalent)</span></div>
          <span class="ki-note">GPT-4o: ca. $2,50 / Mio. Input-Token · Preise variieren stark je Modell</span>
        </td>
      </tr>
 
      <tr>
        <td><span class="ki-platform">AWS Bedrock</span></td>
        <td><span class="ki-model">Amazon Nova, Claude, Llama, Mistral u.a.</span></td>
        <td>
          <div class="ki-tier"><span class="ki-tier-label">API</span><span class="ki-price ki-api">Pay-per-use (je nach Modell)</span></div>
          <span class="ki-note">Claude Sonnet: ca. $3 / Mio. Token · Nova Lite: ab $0,06 / Mio. Token · Kein Abo, nur Verbrauch</span>
        </td>
      </tr>
 
      <tr>
        <td><span class="ki-platform">Hugging Face</span></td>
        <td><span class="ki-model">Llama 4, Mistral, Falcon, Gemma u.a.</span></td>
        <td>
          <div class="ki-tier"><span class="ki-tier-label">Free</span><span class="ki-price ki-free">Kostenlos (Community)</span></div>
          <div class="ki-tier"><span class="ki-tier-label">Pro</span><span class="ki-price ki-mid">$9 / Monat</span></div>
          <div class="ki-tier"><span class="ki-tier-label">Enterprise</span><span class="ki-price ki-pro">ab $20 / User / Monat</span></div>
          <span class="ki-note">Open-Source-Modelle kostenlos · Inference Endpoints: ab ca. $0,06 / Std.</span>
        </td>
      </tr>
 
      <tr>
        <td><span class="ki-platform">Cohere</span></td>
        <td><span class="ki-model">Command A, Command R+, Aya Expanse</span></td>
        <td>
          <div class="ki-tier"><span class="ki-tier-label">Trial</span><span class="ki-price ki-free">Kostenlos (Rate-limitiert)</span></div>
          <div class="ki-tier"><span class="ki-tier-label">API</span><span class="ki-price ki-api">Command A: ca. $2,50 / Mio. Input-Token</span></div>
          <div class="ki-tier"><span class="ki-tier-label">API</span><span class="ki-price ki-api">Command R7B: $0,04 / Mio. Input-Token</span></div>
          <span class="ki-note">Enterprise-Fokus · Private Deployment verfügbar</span>
        </td>
      </tr>
 
      <tr>
        <td><span class="ki-platform">IBM Watsonx</span></td>
        <td><span class="ki-model">Granite 3.3, Llama 3.3, Mistral Large</span></td>
        <td>
          <div class="ki-tier"><span class="ki-tier-label">Lite</span><span class="ki-price ki-free">Kostenlos (50k Token/Monat)</span></div>
          <div class="ki-tier"><span class="ki-tier-label">Essentials</span><span class="ki-price ki-mid">ab $25 / Monat</span></div>
          <div class="ki-tier"><span class="ki-tier-label">Standard</span><span class="ki-price ki-pro">ab $120 / Monat</span></div>
          <span class="ki-note">Enterprise-Preise auf Anfrage · On-Premise-Deployment möglich</span>
        </td>
      </tr>
 
    </tbody>
  </table>
</div>
<p style="font-size:12px;color:#999;margin-top:8px;">Stand: April 2026 · Alle Preise in USD · API-Preise je Mio. Tokens (Input/Output) · Preise können sich ändern.</p>
<!-- Ende KI-Kosten-Tabelle -->



<p class="wp-block-paragraph">Die günstigsten Einstiege liegen bei den meisten Consumer-Tools bei etwa 10 bis 20 USD pro Monat. Die teureren Stufen lohnen sich vor allem dann, wenn du hohe Nutzung, Teamfunktionen, mehr Limits oder Enterprise-Governance brauchst.</p>



<div class="wp-block-kadence-spacer aligncenter kt-block-spacer-1348_2692e9-de"><div class="kt-block-spacer kt-block-spacer-halign-center"><hr class="kt-divider"/></div></div>



<h2 class="wp-block-heading">Literaturhinweise und weiterführende Links</h2>



<p class="wp-block-paragraph">Wie Maschinen Sprache verstehen | Terra X: <a href="https://www.youtube.com/watch?v=MsqL9fzOzXU"><u>https://www.youtube.com/watch?v=MsqL9fzOzXU</u></a>&nbsp;<br>Die Maus erklärt KI: <a href="https://www.youtube.com/watch?v=_80pKGuyKWc"><u>https://www.youtube.com/watch?v=_80pKGuyKWc</u></a>&nbsp;<br>KI-Update kompakt von Heise: <a href="https://www.youtube.com/watch?v=0hpwFCE6Qjk&amp;list=PLYdUuFJNX_Z6od8asata18r0BtW5qeN-R">https://www.youtube.com/watch?v=0hpwFCE6Qjk&amp;list=PLYdUuFJNX_Z6od8asata18r0BtW5qeN-R</a> <br>KI Playlist von Felicia Simon: <a href="https://www.youtube.com/watch?v=2NwpetiyJpc&amp;list=PLAp0rrcjobW7ych82_jDFDGzsYZazuEqA">https://www.youtube.com/watch?v=2NwpetiyJpc&amp;list=PLAp0rrcjobW7ych82_jDFDGzsYZazuEqA</a> <br>Plattform-Kosten: <a href="https://brainyboss.ai/the-10-best-ai-platforms-in-2026-pros-cons-and-pricing/">https://brainyboss.ai/the-10-best-ai-platforms-in-2026-pros-cons-and-pricing/</a><br>Tools für KI-Nutzung: <a href="https://text-to-speech.online/">https://text-to-speech.online/</a>, <a href="https://elevenlabs.io/de">https://elevenlabs.io/de</a>, <a href="https://elevenlabs.io/de">https://elevenlabs.io/de</a>, <a href="https://bestofai.com/">https://bestofai.com/</a></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://web-einfach-machen.de/Blog/edv/kuenstliche-intelligenz/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WordPress kennenlernen</title>
		<link>https://web-einfach-machen.de/Blog/wordpress/wordpress-grundlagen/</link>
					<comments>https://web-einfach-machen.de/Blog/wordpress/wordpress-grundlagen/#respond</comments>
		
		<dc:creator><![CDATA[Web einfach machen]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 19:58:35 +0000</pubDate>
				<category><![CDATA[Konzeption]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://web-einfach-machen.de/Blog/?p=1327</guid>

					<description><![CDATA[Was ist WordPress? WordPress ist ein Content Management System (CMS), mit dem du Webauftritte und Blogs ohne Programmierkenntnisse erstellen und verwalten kannst. Es ist kostenlos, quelloffen, also Open Source und das CMS mit dem weltweit größten Marktanteil. WordPress...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">Was ist WordPress?</h2>



<p class="wp-block-paragraph">WordPress ist ein Content Management System (CMS), mit dem du Webauftritte und Blogs ohne Programmierkenntnisse erstellen und verwalten kannst. Es ist kostenlos, quelloffen, also Open Source und das CMS mit dem weltweit größten Marktanteil. WordPress war ursprünglich für Blogs gedacht, wird aber mittlerweile auch häufig für normale Webauftritte eingesetzt.</p>



<p class="wp-block-paragraph">Die Bedienung von WordPress ist relativ einfach, Inhalte lassen sich über eine grafische Benutzeroberfläche bearbeiten. Es ist sehr flexibel und bietet durch eine große Auswahl von so genannten Themes und Plugins eine breite Palette an Lösungsmöglichkeiten für unterschiedlichste Anforderungen bei der Websiteentwicklung.</p>



<h2 class="wp-block-heading">Wie funktioniert WordPress?</h2>



<figure class="wp-block-kadence-image kb-image1327_cf235d-2f size-large"><picture fetchpriority="high" decoding="async" class="kb-img wp-image-1331"><source type="image/webp" srcset="https://web-einfach-machen.de/Blog/wp-content/compressx-nextgen/uploads/2026/03/WordPress-Architektur-Flowchart-1024x683.png.webp 1024w, https://web-einfach-machen.de/Blog/wp-content/compressx-nextgen/uploads/2026/03/WordPress-Architektur-Flowchart-300x200.png.webp 300w, https://web-einfach-machen.de/Blog/wp-content/compressx-nextgen/uploads/2026/03/WordPress-Architektur-Flowchart-768x512.png.webp 768w, https://web-einfach-machen.de/Blog/wp-content/compressx-nextgen/uploads/2026/03/WordPress-Architektur-Flowchart.png.webp 1536w" sizes="(max-width: 1024px) 100vw, 1024px"/><img fetchpriority="high" decoding="async" width="1024" height="683" src="https://web-einfach-machen.de/Blog/wp-content/uploads/2026/03/WordPress-Architektur-Flowchart-1024x683.png" alt="Wordpress Architektur" class="kb-img wp-image-1331" srcset="https://web-einfach-machen.de/Blog/wp-content/uploads/2026/03/WordPress-Architektur-Flowchart-1024x683.png 1024w, https://web-einfach-machen.de/Blog/wp-content/uploads/2026/03/WordPress-Architektur-Flowchart-300x200.png 300w, https://web-einfach-machen.de/Blog/wp-content/uploads/2026/03/WordPress-Architektur-Flowchart-768x512.png 768w, https://web-einfach-machen.de/Blog/wp-content/uploads/2026/03/WordPress-Architektur-Flowchart.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px"/></picture></figure>



<p class="wp-block-paragraph">Damit eine WordPress Website funktioniert, braucht es ein Zusammenspiel aus drei verschiedenen Komponenten: da ist zunächst der <strong>Web Server</strong> selber zum Beispiel ein Apache oder NginX; du benötigst zweitens eine <strong>Datenbank</strong> (zum Beispiel MySQL oder Maria DB); und dann hast du natürlich <strong>WordPress</strong> selber (das in PHP geschriebene Content Management System), das zusammen mit den Themes und Plugins (welche zusätzliche Funktionen für WordPress bieten) die Logik für den Aufbau der Webseiten zur Verfügung stellt.</p>



<p class="wp-block-paragraph">Der Besucher deiner Website stellt eine Anfrage an den Webserver, und in dem Moment wird die benötigte Seite dynamisch aus den verschiedenen Komponenten zusammengesetzt. Die Inhalte werden dabei von der Datenbank geliefert und mit den in WordPress vorgesehenen Templates zusammengeführt. Danach kann die Seite an den Client (den Webbrowser) ausgeliefert werden.</p>



<h2 class="wp-block-heading">Wie startet man jetzt seinen eigenen Webauftritt?</h2>



<p class="wp-block-paragraph">Du brauchst dafür ein Hosting bei einem Anbieter wie beispielsweise LimaCity, Hetzner, Netcup oder ähnlichen Providern und kannst, wenn du einen solchen Web Server zur Verfügung hast, dort WordPress installieren. Zu dem Thema WordPressinstallation kann ich dir drei verschiedene YouTube Videos empfehlen, du findest die Links dazu unten auf dieser Seite. Hier geht es in dem ersten Video um eine Installation bei LimaCity, das wäre ein Provider, der auch ein kostenloses Angebot im Portfolio hat. Im zweiten Video zeige ich dir wie WordPress bei einem kommerziellen Anbieter wie zum Beispiel Netcup manuell installiert wird und im dritten Video geht es darum, WordPress auf einem eigenen Computer lokal zu installieren (was aber nur für besondere Spezialfälle interessant ist und etwas mehr EDV-Kentnisse erfordert).</p>



<p class="wp-block-paragraph">Alternativ könntest du auch auf ein bereits fertig gehostetes WordPress gehen, zum Beispiel auf wordpress.com und dort deinen Web-Auftritt veröffentlichen. Hier könntest du im Prinzip auch mit einer kostenfreien Lösung eine Website erstellen, hast aber relativ große Einschränkungen.  Die Möglichkeiten, die dir auf wordpress.com zur Verfügung stehen, sind nicht mit einem selbst gehosteten WordPress zu vergleichen.</p>



<h2 class="wp-block-heading">Links</h2>



<p class="wp-block-paragraph">WordPress installieren bei einem kostenlosen Webhoster: <a href="https://www.youtube.com/watch?v=H7VkMe_7MLM&amp;list=PL-ct8huC3tV83Z-xyaxCfp6I3Q4xv2DwE&amp;index=3">https://www.youtube.com/watch?v=H7VkMe_7MLM</a> </p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Wordpress installieren bei einem kostenlosen Webhoster" width="720" height="405" src="https://www.youtube.com/embed/H7VkMe_7MLM?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph"><br>WordPress auf eigenem Webserver / eigener Domain installieren: <a href="https://www.youtube.com/watch?v=dzR8l61h4MQ">https://www.youtube.com/watch?v=dzR8l61h4MQ</a></p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Wordpress-Tutorial für Einsteiger 01: WordPress auf eigenem Webserver / eigener Domain installieren" width="720" height="405" src="https://www.youtube.com/embed/dzR8l61h4MQ?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph"><br>WordPress lokal auf Deinem Computer installieren: <a href="https://www.youtube.com/watch?v=KLnSLT3Jj5g">https://www.youtube.com/watch?v=KLnSLT3Jj5g</a> </p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Wordpress lokal auf Deinem Computer installieren" width="720" height="405" src="https://www.youtube.com/embed/KLnSLT3Jj5g?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Meine Playlist zum Thema WordPress mit dem Theme Kadence findest du unter <a href="https://www.youtube.com/watch?v=KLnSLT3Jj5g&amp;list=PL-ct8huC3tV83Z-xyaxCfp6I3Q4xv2DwE">https://www.youtube.com/watch?v=KLnSLT3Jj5g&amp;list=PL-ct8huC3tV83Z-xyaxCfp6I3Q4xv2DwE</a>. </p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://web-einfach-machen.de/Blog/wordpress/wordpress-grundlagen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Buttons im Webdesign: Gestaltung, Zustände und Best Practices</title>
		<link>https://web-einfach-machen.de/Blog/css/buttons-im-webdesign-gestaltung-zustaende-und-best-practices/</link>
					<comments>https://web-einfach-machen.de/Blog/css/buttons-im-webdesign-gestaltung-zustaende-und-best-practices/#respond</comments>
		
		<dc:creator><![CDATA[Web einfach machen]]></dc:creator>
		<pubDate>Mon, 15 Dec 2025 10:03:03 +0000</pubDate>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Webproduktion]]></category>
		<guid isPermaLink="false">https://web-einfach-machen.de/Blog/?p=1280</guid>

					<description><![CDATA[Ein Element auf Webseiten, was manchmal etwas zu wenig Beachtung findet, sind Buttons. Sie sollen den Besuchern helfen, sich auf einer Seite zurechtzufinden, wichtige Schritte schnell zu erkennen und diese mit wenig Aufwand auszuführen.&#160;Neben der Benutzerfreundlichkeit, wird man...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ein Element auf Webseiten, was manchmal etwas zu wenig Beachtung findet, sind Buttons. Sie sollen den Besuchern helfen, sich auf einer Seite zurechtzufinden, wichtige Schritte schnell zu erkennen und diese mit wenig Aufwand auszuführen.&nbsp;Neben der Benutzerfreundlichkeit, wird man bei einigen Projekten evtl. auch mehr Wert auf eine mehr Aufmerksamkeit erheischende Gestaltung legen.<br>In diesem Artikel gehe ich auch darauf ein, wie man Buttons benutzerfreundlich und barrierefrei gestaltet und wie man mithilfe von Mikro-Interaktionen und responsivem Design das Nutzererlebnis optimiert.</p>



<h2 class="wp-block-heading">Benutzerfreundliches Design</h2>



<p class="wp-block-paragraph">Ein benutzerfreundlicher Button zeichnet sich durch klare, gut lesbare Beschriftungen aus. Auch der Kontrast zwischen Text und Hintergrund ist entscheidend, damit der Button leicht erkennbar ist. Außerdem sorgt ausreichend Padding für eine großzügige Klickfläche, die besonders auf Touch-Geräten wichtig ist. Bei der grundlegenden Gestaltung von einfachen und benutzerfreundlichen Buttons sollte man ein paar zentrale Aspekte beachten:</p>



<ol class="wp-block-list">
<li><strong>Klarheit und Einfachheit</strong>: Gib Buttons klare und aussagekräftige Beschriftungen, damit Nutzer sofort verstehen, welche Aktion hinter dem Button steckt.<br></li>



<li><strong>Kontrast und Lesbarkeit</strong>: Achte darauf, dass der Button sich durch ausreichenden Farbkontrast vom Hintergrund abhebt.<br></li>



<li><strong>Größe und Klickfläche</strong>: Der Button sollte groß genug sein, damit er leicht angeklickt werden kann, besonders auf Touch-Geräten. Eine großzügige Klickfläche sorgt für bessere Benutzerfreundlichkeit.<br>Im Allgemeinen empfiehlt es sich, dass die Klickfläche mindestens etwa 44 mal 44 Pixel groß ist, um eine bequeme Bedienung auf Touch-Geräten zu gewährleisten. In der Praxis empfiehlt man oft sogar etwas größere Klickflächen, also um die 48 mal 48 Pixel oder sogar 50 mal 50 Pixel, damit auch dickere Finger oder schnelle Berührungen problemlos funktionieren. Wichtig ist also, dass der Button bequem erreichbar ist, ohne dass man daneben tippt.<br></li>



<li><strong>Feedback und Zustände</strong>: Der Button sollte visuelles Feedback geben, zum Beispiel durch Farbänderungen beim Hover oder beim Klicken, damit die Nutzer wissen, dass ihre Aktion angenommen wurde.<br></li>



<li><strong>Runde Ecken und Form</strong>: Ein sanfter, abgerundeter Stil wirkt oft freundlicher und einladender, aber auch die Form sollte zum Gesamtdesign passen.</li>
</ol>



<h2 class="wp-block-heading">Semantik und Barrierefreiheit</h2>



<p class="wp-block-paragraph">Ein gut gestalteter Button beginnt mit der richtigen Semantik. Das bedeutet, dass man immer das &lt;button&gt;-Element verwendet, um sicherzustellen, dass der Button von Screenreadern erkannt wird. Dadurch wird die Zugänglichkeit für alle Nutzer gewährleistet, auch für Menschen mit Einschränkungen.<br>Es ist nicht nur semantisch korrekt, sondern sorgt auch für eine bessere Zugänglichkeit, zum Beispiel durch Unterstützung der Tastaturbedienung. Verwendet man stattdessen ein &lt;div&gt; oder ein anderes Element, muss man selbst dafür sorgen, dass alle Interaktionen und die Barrierefreiheit gegeben sind.&nbsp;&nbsp;Für eine barrierefreie Gestaltung von Buttons ist es wichtig, auf folgende Punkte zu achten:</p>



<ol class="wp-block-list">
<li><strong>Semantik</strong>: Nutze immer das &lt;button&gt;-Element, damit Screenreader den Button korrekt erkennen.</li>



<li><strong>ARIA-Attribute für zusätzliche Informationen</strong>:<br>Falls ein Button eine spezielle Funktion hat, kann man ARIA-Attribute nutzen, zum Beispiel:<br>&lt;button aria-label=&#8220;Schließen&#8220;&gt;X&lt;/button&gt;</li>



<li><strong>Fokus-Management</strong>: Achte darauf, dass Buttons per Tastatur erreichbar sind und einen sichtbaren Fokus-Stil haben.<br>Du kannst den Fokus mit CSS sichtbar machen:<br>button:focus {<br>&nbsp; outline: 2px solid #005fcc;<br>}</li>



<li><strong>Kontraste</strong>: Stelle sicher, dass die Farbkontraste hoch genug sind, damit auch Menschen mit Sehschwäche den Button gut erkennen können.</li>
</ol>



<h2 class="wp-block-heading">Gestaltung von Buttons in verschiedenen Zuständen</h2>



<p class="wp-block-paragraph">Buttons gewinnen an Benutzerfreundlichkeit, wenn sie auf unterschiedliche Zustände reagieren. Beim <strong>Hover-Zustand</strong> verändert sich oft die Hintergrundfarbe oder der Schatten, um visuelles Feedback zu geben. Der <strong>Focus-Zustand</strong> zeigt an, dass der Button aktuell ausgewählt ist, beispielsweise durch eine Bedienung mit der Tastatur. Der <strong>Active-Zustand</strong> wiederum zeigt, dass der Button gerade gedrückt wird, oft durch eine leichte Einfärbung oder eine Veränderung der Größe. Solche Mikro-Interaktionen sorgen für eine angenehmere und intuitive Benutzererfahrung.</p>



<p class="wp-block-paragraph">Hier drei <strong>Beispiele</strong> für unterschiedlich gestaltete Buttons. Du findest die Dateien auf meinem Server web-einfach-machen.de und kannst dir dort den Quellcode anschauen. </p>



<iframe src="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/Buttons/simple-button.html" width="100%" style="height:300px;" allowfullscreen title="Beispiel für einfachen Button"></iframe>



<p class="wp-block-paragraph">Ein Beispiel für einen einfachen Button. Ein hover-Effekt ändert lediglich die border des buttons. Den Quellcode dazu findest du unter <a href="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/Buttons/simple-button.html">https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/Buttons/simple-button.html</a>.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<iframe src="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/Buttons/button_box-shadow.html" width="100%" style="height:300px;" allowfullscreen title="Beispiel für Button mit box-shadow"></iframe>



<p class="wp-block-paragraph">Ein weiteres Beispiel für einen Button mit box-shadow. Schau dir den Quellcode an unter <a href="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/Buttons/button_box-shadow.html">https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/Buttons/button_box-shadow.html</a>. </p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<iframe src="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/Buttons/fancy-button.html" width="100%" style="height:300px;" allowfullscreen title="Beispiel für einen eher außergewöhnlichen Button"></iframe>



<p class="wp-block-paragraph">Ein Beispiel für einen auffällig gestalteten Button mit animiertem Glüh-Effekt beim hover- bzw. active-Zustand. Schau dir den Quellcode unter <a href="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/Buttons/fancy-button.html">https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/Buttons/fancy-button.html</a> an.</p>



<hr style="margin:20px 0px">



<h2 class="wp-block-heading">Links</h2>



<p class="wp-block-paragraph">Beispiele und <strong>Inspirationen auf Codepen</strong>: <a href="https://codepen.io/search/pens?q=buttons">https://codepen.io/search/pens?q=buttons</a>, <a href="https://codepen.io/musab-boaidani/pen/EaVBwRr">https://codepen.io/musab-boaidani/pen/EaVBwRr</a>, <a href="https://codepen.io/Yvonne-Angelica/pen/MYywLbJ">https://codepen.io/Yvonne-Angelica/pen/MYywLbJ</a>, <br>sehr auffälliger Button: <a href="https://codepen.io/bhadupranjal/pen/vYLZYqQ">https://codepen.io/bhadupranjal/pen/vYLZYqQ</a>, <br>diverse Buttons: <a href="https://codepen.io/derekmorash/pen/XddZJY">https://codepen.io/derekmorash/pen/XddZJY</a>, Bubbly Button: <a href="https://codepen.io/nourabusoud/pen/ypZzMM">https://codepen.io/nourabusoud/pen/ypZzMM</a>, Wibbly button: <a href="https://codepen.io/cassie-codes/pen/LYxBZEG">https://codepen.io/cassie-codes/pen/LYxBZEG</a>, Realistic Red Switch (Pure CSS): <a href="https://codepen.io/ykadosh/pen/ExNOmZx">https://codepen.io/ykadosh/pen/ExNOmZx</a>. <br>CSS buttons examples &#8211; <strong>CSS Scan</strong>: <a href="https://getcssscan.com/css-buttons-examples">https://getcssscan.com/css-buttons-examples</a> <br>Create an <strong>animated, glowing, gradient border</strong> (Kevin Powell): <a href="https://www.youtube.com/watch?v=-VOUK-xFAyk">https://www.youtube.com/watch?v=-VOUK-xFAyk </a> und <a href="https://codepen.io/gayane-gasparyan/pen/jOmaBQK">https://codepen.io/gayane-gasparyan/pen/jOmaBQK</a>.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://web-einfach-machen.de/Blog/css/buttons-im-webdesign-gestaltung-zustaende-und-best-practices/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Modularer Aufbau von Websites mit Web-Components</title>
		<link>https://web-einfach-machen.de/Blog/webproduktion/modularer-aufbau-von-websites-mit-web-components/</link>
					<comments>https://web-einfach-machen.de/Blog/webproduktion/modularer-aufbau-von-websites-mit-web-components/#respond</comments>
		
		<dc:creator><![CDATA[Web einfach machen]]></dc:creator>
		<pubDate>Sun, 07 Dec 2025 12:07:21 +0000</pubDate>
				<category><![CDATA[Konzeption]]></category>
		<category><![CDATA[Webproduktion]]></category>
		<category><![CDATA[Moule]]></category>
		<category><![CDATA[Web Components]]></category>
		<guid isPermaLink="false">https://web-einfach-machen.de/Blog/?p=1261</guid>

					<description><![CDATA[Web Components ermöglichen einen modularen Aufbau von Websites, bei dem du UI-Elemente als unabhängige Bausteine erstellst – für maximale Wiederverwendbarkeit, Wartbarkeit und Design-Kontrolle ohne zusätzliche Frameworks wie beispielsweise React oder Vue. Du erstellst dir hierbei ein eigenes HTML-Element,...]]></description>
										<content:encoded><![CDATA[


<p class="wp-block-paragraph">Web Components ermöglichen einen modularen Aufbau von Websites, bei dem du UI-Elemente als unabhängige Bausteine erstellst – für maximale Wiederverwendbarkeit, Wartbarkeit und Design-Kontrolle ohne zusätzliche Frameworks wie beispielsweise React oder Vue. Du erstellst dir hierbei ein eigenes HTML-Element, das von einer JavaScript-Datei gesteuert wird.&nbsp;Auch individuelle Inhalte an Web Components zu übergeben ist dabei standardmäßig möglich über Attribute, Properties, Slots oder JSON-Props.</p>



<h2 class="wp-block-heading">Vorteile des modularen Designs</h2>



<p class="wp-block-paragraph">Der modulare Aufbau mit Web Components zerlegt Websites in eigenständige Teile: <strong>Custom Elements</strong> wie &lt;mein-button> oder &lt;site-footer> werden zentral entwickelt und per einfachem selbst definierten Tag in HTML eingebunden.<br>Ein sogenanntes <strong>Shadow DOM</strong> kann jeden Baustein komplett abkapseln – CSS-Stile und Inhalt bleiben isoliert, dadurch ergeben sich keine Konflikte mit anderen Modulen. </p>



<h2 class="wp-block-heading"><strong>Dadurch hast du</strong> …</h2>



<ul class="wp-block-list">
<li><strong>Schnelle Anpassung</strong> der kompletten Website: Footer, Header, Cards oder ähnliche Elemente kannst du einmal erstellen und überall einsetzen – Änderungen sind zentral und sofort site-weit sichtbar.</li>



<li><strong>Design-Systeme</strong>: Du hast einheitliche Module für Agentur-Projekte zur Verfügung.</li>



<li><strong>Effizienz-Steigerung</strong>: Weniger Copy-Paste, kürzere Ladezeiten durch kleine, fokussierte Komponenten.</li>



<li>Allerdings bedeutet das <strong>externe Kapseln des CSS</strong> im Shadow DOM auch, dass du mit CSS Custom Properties arbeiten musst, um ein globales Theming (z.B. bei dark-mode) zu erreichen.</li>
</ul>



<h2 class="wp-block-heading"><strong>Vergleich: Web Components vs. React vs. PHP</strong></h2>



<p class="wp-block-paragraph">Web Components stehen bei ihrer modularen Arbeitsweise in Konkurrenz zu vergleichbaren Techniken wie <strong>PHP-Includes</strong> oder <strong>React</strong>. Web Components laufen nativ im Webbrowser <strong>ohne Framework-Abhängigkeit</strong>. React glänzt eher bei komplexen UIs, und PHP mit vorgefertigten serverseitigen Funktionen. Wenn du über weniger Frontenderfahrung oder Wissen über das DOM verfügst, ist evtl. React die bessere Lösung für dich. Wenn du Framework-übergreifende Komponenten brauchst, solltest du zu Web-Components greifen. </p>



<figure class="wp-block-table"><table><tbody><tr><td><strong>Technik</strong></td><td><strong>Modularität</strong></td><td><strong>Vorteile</strong></td><td><strong>Nachteile</strong></td><td><strong>Wann sinnvoll?</strong></td></tr><tr><td><strong>Web Components</strong></td><td>Native Bausteine, framework-frei</td><td>Kapselung per Shadow DOM, leicht wiederverwendbar über Projekte. Hohe Langzeitstabilität.</td><td>Komplex für dynamische Apps. Läuft in sehr alten Browsern nur mit Polyfills</td><td>Statische Sites, Design-Systeme, kleine Teams </td></tr><tr><td><strong>React</strong></td><td>Komponenten mit Virtual DOM</td><td>Weit verbreitet, effizient bei Updates</td><td>Framework-Abhängigkeit, höherer Overhead</td><td>Dynamisches Nachladen von Inhalten, große Apps</td></tr><tr><td><strong>PHP Includes</strong></td><td>Serverseitige Partial-Templates</td><td>Einfach, kein JS, fertiges HTML</td><td>Keine Client-Kapselung</td><td>Nutzen von vorgefertigten PHP-Funktionen</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Einen schönen <strong>Vergleich von React, Vue.js, Angular &amp; Co</strong> findest du auf <a href="https://www.youtube.com/watch?v=xsxNzKvpBIk">https://www.youtube.com/watch?v=xsxNzKvpBIk</a>. Oder auch auf <a href="https://www.uxpin.com/studio/blog/react-vs-web-components/">https://www.uxpin.com/studio/blog/react-vs-web-components/</a>,  <a href="https://blog.logrocket.com/web-components-vs-react/">https://blog.logrocket.com/web-components-vs-react/</a> und <a href="https://www.zealousys.com/blog/why-react-and-php-are-a-perfect-pair-for-web-development/">https://www.zealousys.com/blog/why-react-and-php-are-a-perfect-pair-for-web-development/</a>. </p>



<h2 class="wp-block-heading">Browserunterstützung</h2>



<p class="wp-block-paragraph">Web-Components haben eine ausgezeichnete Unterstützung in allen modernen Browsern (Chrome 54+, Firefox 63+, Safari 10.1+, Edge 79+), die über 98% der globalen Nutzer abdecken.</p>



<h2 class="wp-block-heading"><strong>Live </strong>Demos</h2>



<p class="wp-block-paragraph">Schau dir dazu ein einfaches Beispiel unter <a href="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/Webcomponent-01.html">https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/Webcomponent-01.html</a>&nbsp; an. Hier habe ich einen Footer als Web-Component mit dem Element<code>&nbsp;&lt;site-footer&gt;&lt;/site-footer&gt;</code> in zwei HTML-Seiten eingebaut. Die Inhalte und Funktionen dieses Elements werden in der Datei footer-component.js festgelegt.<br>Falls der Kunde Änderungswünsche während oder nach der Projekterstellung hat, lassen sich die Inhalte des Footers auf der gesamten Website schnell aktualisieren, indem ich lediglich die zuständige Javascript Datei anpasse.</p>



<p class="wp-block-paragraph">Ein etwas umfangreicheres Beispiel findest du unter <a href="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/Leihinstrumente.html">https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/Leihinstrumente.html</a>. Ziel bei diesem Beispiel ist es, eine Liste mit Leihinstrumenten auf diversen Seiten einer Musikschule anzeigen zu lassen. Die Liste lässt sich mit der Web-Component <code>&lt;instrumenten-liste data-src="./js/instrumente.json">&lt;/instrumenten-liste></code> an beliebigen Stellen des Webauftritts einbauen. Die Leihinstrumente werden in einer externen JSON-Datei gespeichert.</p>



<h2 class="wp-block-heading">Literaturhinweise</h2>



<ol class="wp-block-list">
<li>Gutes englischsprachiges Tutorial von Web Dev Simplified: „Learn Web Components In 25 Minutes“ auf <a href="https://www.youtube.com/watch?v=2I7uX8m0Ta0">https://www.youtube.com/watch?v=2I7uX8m0Ta0</a></li>



<li>Tutorial von Traversy Media: <a href="https://www.youtube.com/watch?v=PCWaFLy3VUo">https://www.youtube.com/watch?v=PCWaFLy3VUo</a></li>



<li>Einführung auf CSS-Tricks: <a href="https://css-tricks.com/an-introduction-to-web-components/">https://css-tricks.com/an-introduction-to-web-components/</a> </li>



<li>Weitere Infos unter <a href="https://www.ionos.de/digitalguide/websites/web-entwicklung/web-components/">https://www.ionos.de/digitalguide/websites/web-entwicklung/web-components/</a> oder <a href="https://kinsta.com/de/blog/web-komponenten/">https://kinsta.com/de/blog/web-komponenten/</a></li>
</ol>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://web-einfach-machen.de/Blog/webproduktion/modularer-aufbau-von-websites-mit-web-components/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Typografische Illustrationen mit CSS-Masken</title>
		<link>https://web-einfach-machen.de/Blog/css/css-masken/</link>
					<comments>https://web-einfach-machen.de/Blog/css/css-masken/#respond</comments>
		
		<dc:creator><![CDATA[Web einfach machen]]></dc:creator>
		<pubDate>Wed, 29 Oct 2025 13:53:47 +0000</pubDate>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Gestaltung]]></category>
		<category><![CDATA[Maskierung]]></category>
		<category><![CDATA[Typo]]></category>
		<guid isPermaLink="false">https://web-einfach-machen.de/Blog/?p=1187</guid>

					<description><![CDATA[Mit CSS kann man Text mit Verläufen oder Bildern füllen. Dazu kannst du CSS Eigenschaften wie background-clip oder mix-blend-mode nutzen.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Du kannst Typo auf Webseiten sehr schön als illustratives Element einsetzen, zum Beispiel mit CSS- oder SVG-Masken. Mit CSS lässt sich Text nicht nur einfärben, sondern auch mit Verläufen oder Bildern füllen.<br>Dazu kannst du dem Text (zum Beispiel einer Überschrift erster Ordnung) ein Hintergrundbild zuweisen. Allerdings hast du dann zunächst nur einen schwarzen Text und das Bild ist komplett im Hintergrund deiner Überschrift zu sehen.<br>Wenn du nun die CSS Eigenschaft <strong>background-clip</strong> einsetzt (<code>background-clip: text;</code>) und der Überschrift als Farbe <code>transparent</code> mit auf den Weg gibst, dann ist der Hintergrund nur innerhalb des Textes zu sehen. Im folgenden Beispiel ist der <strong>Text mit einem Verlauf</strong> gefüllt.</p>



<iframe src="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/background-clip-Verlauf.html" width="100%" style="height:380px;" allowfullscreen title="Beispiel einer CSS Hintergrund-Clip-Demonstration"></iframe>



<p class="wp-block-paragraph">Du findest das oben stehende Beispiel unter&nbsp; <a href="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/background-clip-Verlauf.html">https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/background-clip-Verlauf.html</a>. Schau dir den gut kommentierten Quellcode in der Datei an, wenn du mit diesem Effekt in deinen Projekten arbeiten möchtest.</p>



<p class="wp-block-paragraph">Statt eines Verlaufs kannst du auch <strong>ein Bild </strong>oder ein Video in den Hintergrund des Textes legen.</p>



<iframe src="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/background-clip-Bild.html" width="100%" style="height:380px;" allowfullscreen title="Beispiel einer CSS Hintergrund-Clip-Demonstration"></iframe>



<p class="wp-block-paragraph">Auch hier findest du den Quellcode in der Datei <a href="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/background-clip-Bild.html">https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/background-clip-Bild.html</a>. </p>



<p class="wp-block-paragraph">Das <strong>Hintergrundbild lässt sich auch animieren … </strong><br>wie du in der Datei unter <a href="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/background-clip-animiert.html">https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/background-clip-animiert.html</a> sehen kannst. </p>



<iframe src="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/background-clip-animiert.html" width="100%" style="height:380px;" allowfullscreen title="Beispiel einer animierten Hintergrund-Clip-Demonstration"></iframe>



<hr style="margin:20px 0px">



<p class="wp-block-paragraph">Einen weiteren interessanten Effekt kannst du mit der CSS-Eigenschaft <strong>mix-blend-mode</strong> erzeugen.<br><code>mix-blend-mode</code> ist eine CSS-Eigenschaft, mit der du steuerst, wie ein Element farblich mit dem Hintergrund verschmolzen wird.<br>Du kannst dieser CSS-Eigenschaft verschiedene Werte zuweisen. Zum Beispiel multiply, was dazu führt, dass ein Element abgedunkelt wird. Screen hat den gegenteiligen Effekt und hellt auf. Und overlay ist eine Mischung aus screen und multiply, es sorgt für eine kontrastreiche Mischung. Weitere Werte wären difference oder lighten siehe<br><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode">https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode</a>. </p>



<iframe src="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/mix-blend-mode.html" width="100%" style="height:380px;" allowfullscreen title="Beispiel einer mix-blend-mode-Demonstration"></iframe>



<p class="wp-block-paragraph">Unter <a href="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/mix-blend-mode.html">https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/mix-blend-mode.html</a> findest du den entsprechenden Quellcode.</p>



<p class="wp-block-paragraph">An der Stelle soll nicht unerwähnt bleiben, dass du auch <strong>Masken mit SVG</strong> erstellen kannst. SVG (Scalable Vector Graphics) unterstützt die Eigenschaften <code>mask</code> oder <code>clipPath</code>. Eine Maske definiert, welche Bereiche sichtbar und welche transparent sind. Siehe mein Beispiel unter <a href="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/SVG-Maske.html">https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/SVG-Maske.html</a>.</p>



<iframe src="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/SVG-Maske.html" width="100%" style="height:380px; border:none; overflow:hidden;" allowfullscreen title="Beispiel einer SVG-Masken-Demonstration"></iframe>



<p class="wp-block-paragraph">Generell kommst du mit reinem CSS etwas schneller und einfacher als mit SVG-Masken zum Ziel, du hast eine bessere Browserkompatibilität  und Performance. Nur in einem Punkt haben SVG-Masken etwas die Nase vorn, nämlich, wenn es um komplexe Animationen geht. Du findest unter anderem auf CodePen viele weitere interessante Beispiele zu diesem Thema.<br>SVG gradient animation: <a href="https://codepen.io/k-ivan/pen/XVzEZb">https://codepen.io/k-ivan/pen/XVzEZb</a><br>SVG-Animation: <a href="https://codepen.io/theadhocracy/pen/qBjNeOb">https://codepen.io/theadhocracy/pen/qBjNeOb</a><br>Oder <a href="https://codepen.io/collection/LPZWGv?cursor=eyJwYWdlIjoxfQ==">https://codepen.io/collection/LPZWGv?cursor=eyJwYWdlIjoxfQ==</a></p>



<hr style="margin:20px 0px">



<h2 class="wp-block-heading">Literaturhinweise</h2>



<p class="wp-block-paragraph">CSS mask-image Eigenschaft: <a href="https://www.w3schools.com/css/css3_masking.asp">https://www.w3schools.com/css/css3_masking.asp</a> und <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/mask-image">https://developer.mozilla.org/en-US/docs/Web/CSS/mask-image</a><br>Mein Youtube&#8211;Tutorial zu diesem Thema: <a href="https://www.youtube.com/watch?v=F3VjLaEdDmE">https://www.youtube.com/watch?v=F3VjLaEdDmE</a> <br>Per Maske animierte Illustration: <a href="https://www.youtube.com/watch?v=dldpud1PuL8">https://www.youtube.com/watch?v=dldpud1PuL8</a></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://web-einfach-machen.de/Blog/css/css-masken/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Barrierefreie Dropdown-Navigationen</title>
		<link>https://web-einfach-machen.de/Blog/webproduktion/barrierefreie-website-navigation/</link>
					<comments>https://web-einfach-machen.de/Blog/webproduktion/barrierefreie-website-navigation/#respond</comments>
		
		<dc:creator><![CDATA[Web einfach machen]]></dc:creator>
		<pubDate>Fri, 01 Aug 2025 09:20:20 +0000</pubDate>
				<category><![CDATA[Konzeption]]></category>
		<category><![CDATA[Webproduktion]]></category>
		<category><![CDATA[Barrierefreiheit]]></category>
		<category><![CDATA[Navigation]]></category>
		<guid isPermaLink="false">https://web-einfach-machen.de/Blog/?p=1088</guid>

					<description><![CDATA[Eine Navigation mit Dropdown-Menüs kann für die Barrierefreiheit eine echte Herausforderung sein. In diesem Artikel zeige ich dir anhand eines konkreten Beispiels, wie eine solche Navigation gestaltet werden kann. Ziel ist es, eine Navigation mit einem ausklappenden Untermenü,...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Eine Navigation mit Dropdown-Menüs kann für die Barrierefreiheit eine echte Herausforderung sein. In diesem Artikel zeige ich dir anhand eines konkreten Beispiels, wie eine solche Navigation gestaltet werden kann. Ziel ist es, eine Navigation mit einem ausklappenden Untermenü, einem so genannten Dropdown so zu erstellen, dass es mit der Tastatur bedienbar ist und von einem Screenreader vorgelesen werden kann.</p>



<p class="wp-block-paragraph">Schau dir dazu mein <strong>Beispiel unter <a href="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/barrierearme-Dropdown-Navigation.html">https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/barrierearme-Dropdown-Navigation.html</a></strong> an. Du findest im Quellcode dieser Demodatei ausführliche Kommentare zu den einzelnen Code-Bestandteilen, in denen ich vor allen Dingen die Funktionen der aria-Attribute erläutere.&nbsp;</p>



<p class="wp-block-paragraph">Wenn du diese Seite auf unterschiedlichen Viewports betrachtest, siehst du, dass diese Navigation responsiv ist, d.h. die Menüpunkte werden auf Smartphones in einem Toggle-Menü / Hamburger-Menü untereinander und auf größeren Desktop-PC-Monitoren nebeneinander angezeigt.<br>Die Navigationselemente sind, wie üblich, in einer ungeordneten Liste &lt;ul&gt; organisiert. Für Dropdown-Menüs verwende ich allerdings <strong>&lt;button&gt;-Elemente</strong>, was für Tastatur- und Screenreader-Nutzer besser geeignet ist, als Hyperlinks mit JavaScript in Schaltflächen zu verwandeln.</p>



<p class="wp-block-paragraph">Die Navigation ist vollständig per Tastatur bedienbar. Mithilfe der Enter- oder der Leertaste öffnet man das Dropdown-Menü. Mit den Pfeiltasten kannst du Elemente innerhalb des Dropdown-menüs auswählen und mit der Escape-Taste ein Dropdown schließen.</p>



<p class="wp-block-paragraph">Ein blinder Nutzer, der sich die Seite von einem Screenreader vorlesen lässt, sollte hier die Information bekommen, dass er einen Dropdown Button mit entsprechendem ausklappenden Menü vor sich hat. Und die Information, ob dieses Untermenü aktuell ein- oder ausgeklappt ist.<br>An dieser Stelle arbeiten wir mit so genannten Aria Attributen.</p>



<p class="wp-block-paragraph">Die wichtigsten <strong>aria-Attribute</strong>, die ich in meiner Demodatei nutze, sind</p>



<ul class="wp-block-list">
<li>aria-haspopup: Weist Screenreader darauf hin, dass ein Element ein Kontextmenü, Untermenü oder ein Pop-up-Element öffnet, wenn es aktiviert wird.</li>



<li>aria-expanded: Gibt an, ob ein Element ausgeklappt (true) oder eingeklappt (false) ist.</li>



<li>aria-hidden: Versteckt Text vor Screenreadern. Nutze ich, damit das Sonderzeichen für die Darstellung des Burger-Icons vom Screenreader nicht vorgelesen wird.</li>
</ul>



<p class="wp-block-paragraph">Eine <strong>Übersicht über alle aria-Attribute</strong> findest du unter <a href="https://developer.mozilla.org/de/docs/Web/Accessibility/ARIA/Reference/Attributes">https://developer.mozilla.org/de/docs/Web/Accessibility/ARIA/Reference/Attributes</a>.</p>



<p class="wp-block-paragraph">Das Öffnen und Schließen der Navigation und der Dropdowns geht per Javascript. Du findest einen gut kommentierten Quellcode in meiner Beispieldatei unter <a href="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/barrierearme-Dropdown-Navigation.html">https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/barrierearme-Dropdown-Navigation.html</a> in dem das Zusammenspiel von aria-Attributen, JS und CSS erklärt wird.</p>



<p class="wp-block-paragraph">Um die Wirkungsweise der aria-Attribute wirklich zu verstehen, solltest du das <strong>Beispiel mit einem Screenreader testen</strong>. Ich verwende dafür VoiceOver auf dem Mac. Hinweise zur Bedienung von VoiceOver findest du unter <a href="https://dequeuniversity.com/screenreaders/voiceover-keyboard-shortcuts">https://dequeuniversity.com/screenreaders/voiceover-keyboard-shortcuts</a>.</p>



<p class="wp-block-paragraph">Soweit zur Einführung in grundlegende Techniken für die barrierearme Navigation. Jetzt ist es an der Zeit, dass du dir den gut kommentierten Quellcode in meiner Beispieldatei unter <a href="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/barrierearme-Dropdown-Navigation.html">https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/barrierearme-Dropdown-Navigation.html</a> anschaust, analysierst und für eigene Webprojekte adaptierst.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://web-einfach-machen.de/Blog/webproduktion/barrierefreie-website-navigation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Webseiten-Navigation</title>
		<link>https://web-einfach-machen.de/Blog/webproduktion/webseiten-navigation/</link>
					<comments>https://web-einfach-machen.de/Blog/webproduktion/webseiten-navigation/#respond</comments>
		
		<dc:creator><![CDATA[Web einfach machen]]></dc:creator>
		<pubDate>Thu, 10 Jul 2025 09:41:44 +0000</pubDate>
				<category><![CDATA[Konzeption]]></category>
		<category><![CDATA[Webproduktion]]></category>
		<category><![CDATA[Barrierefreiheit]]></category>
		<category><![CDATA[Usability]]></category>
		<guid isPermaLink="false">https://web-einfach-machen.de/Blog/?p=1065</guid>

					<description><![CDATA[Praxistipps für eine nutzerfreundliche, responsive und barrierefreie Navigation Die Navigation gehört zu den wichtigsten Elementen jeder Website. Sie leitet Besucher, schafft Orientierung und wirkt sich maßgeblich auf User Experience, Conversion und SEO aus.In diesem Artikel zeige ich dir,...]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">Praxistipps für eine nutzerfreundliche, responsive und barrierefreie Navigation</h1>



<p class="wp-block-paragraph">Die Navigation gehört zu den wichtigsten Elementen jeder Website. Sie leitet Besucher, schafft Orientierung und wirkt sich maßgeblich auf User Experience, Conversion und SEO aus.<br>In diesem Artikel zeige ich dir, wie du eine moderne Webseiten-Navigation erstellst, die nicht nur gut aussieht, sondern auch funktioniert – auf jedem Gerät und für jeden Nutzer.</p>



<hr>



<h2 class="wp-block-heading">1. Klarheit vor Kreativität: Struktur schlägt Spielerei</h2>



<p class="wp-block-paragraph">Auch wenn kreative Menüs optisch beeindrucken können, ist <strong>eine klare, logisch aufgebaute Navigationsstruktur</strong> immer die bessere Wahl. Nutzer erwarten bestimmte Konventionen – z. B. dass das Hauptmenü oben oder links zu finden ist und dass die Begriffe eindeutig sind („Leistungen“ statt „Was wir tun“).</p>



<h3 class="wp-block-heading">Praxistipp:</h3>



<ul class="wp-block-list">
<li>Verwende <strong>sprechende, selbsterklärende Bezeichnungen</strong>.</li>



<li>Begrenze die Hauptnavigation auf <strong>5–7 Hauptpunkte</strong> – je weniger, desto besser.</li>



<li>Nutze <strong>Dropdowns oder Megamenüs</strong> nur bei echten Informationshierarchien – nicht als Platzhalter für schlechte Planung.</li>



<li>Zeige den Nutzern, auf welcher Seite sie sich aktuell befinden, indem du den entsprechenden <strong>Menüpunkt hervorhebst</strong>.</li>



<li>Ein <strong>Klick auf das Logo</strong> sollte zur Startseite des Webauftritts führen.</li>
</ul>



<hr>



<h2 class="wp-block-heading">2. Mobile Navigation: Nutzerführung auf kleinen Bildschirmen</h2>



<p class="wp-block-paragraph">Mobile Menüs haben sich stark weiterentwickelt. Klassische Hamburger-Menüs sind weit verbreitet, aber nicht immer die beste Lösung. Je nach Zielgruppe und Inhalt kann auch ein direkt ausgeklapptes Menü sinnvoller sein, hier siehst du alle Menüpunkte direkt ohne langes Suchen.</p>



<h3 class="wp-block-heading">Praxistipp:</h3>



<ul class="wp-block-list">
<li><strong>Priorisiere Inhalte</strong>: Was muss sofort sichtbar sein, was darf hinter ein Icon?</li>



<li>Nutze <strong>Off-Canvas-Menüs</strong>, um Platz zu sparen.</li>



<li><strong>Vermeide mehrstufige Dropdowns</strong> auf Mobilgeräten – sie sind oft schwer bedienbar.</li>



<li>Achte auf <strong>große Touch-Elemente</strong> (mind. 48px Höhe/Breite) und ausreichend Abstand zwischen den Buttons.</li>
</ul>



<hr>



<h2 class="wp-block-heading">3. Megamenüs: Große Seiten, klare Ordnung</h2>



<p class="wp-block-paragraph">Für Websites mit vielen Kategorien (z. B. Onlineshops oder große Organisationen) sind <strong>Megamenüs</strong> eine sinnvolle Option – wenn sie gut umgesetzt sind.</p>



<h3 class="wp-block-heading">Praxistipp:</h3>



<ul class="wp-block-list">
<li>Gruppiere Inhalte visuell durch <strong>Spalten und Überschriften</strong>.</li>



<li>Verwende <strong>Icons oder kurze Beschreibungen</strong>, um Inhalte besser erfassbar zu machen.</li>



<li>Zeige das Megamenü <strong>bei Hover (Desktop)</strong> und <strong>per Tap/Klick (mobil)</strong> – vermeide Menüs, die ausschließlich beim Mouseover funktionieren.</li>



<li><strong>Teste die Darstellung auf Touchgeräten mit Hover-Ersatz</strong>, z. B. per Doppelklick oder ARIA-Attribute.</li>
</ul>



<hr>



<h2 class="wp-block-heading">4. Barrierefreiheit: Navigation für alle</h2>



<p class="wp-block-paragraph">Eine zugängliche Navigation ist nicht nur Pflicht im Sinne der WCAG-Richtlinien, sondern verbessert auch die Usability für alle.</p>



<h3 class="wp-block-heading">Praxistipp:</h3>



<ul class="wp-block-list">
<li>Nutze <strong>semantisches HTML</strong> (<code>&lt;nav&gt;</code>, <code>&lt;ul&gt;</code>, <code>&lt;li&gt;</code>, <code>&lt;a&gt;</code>) statt <code>div</code>-Spaghetti.</li>



<li>Verwende <strong>ARIA-Rollen und -Attribute</strong> für komplexe Menüs (z. B. <code>aria-haspopup</code>, <code>aria-expanded</code>, <code>aria-label</code>). Oder mit dem ARIA-Attribut aria-current=&#8220;page&#8220; kennzeichnest du den Menüpunkt der aktuellen Seite. </li>



<li>Stelle sicher, dass <strong>alle Menüpunkte per Tastatur</strong> erreichbar und bedienbar sind.</li>



<li>Bau einen <strong>Skip-Link</strong> zu Anfang der Seite ein. Damit ermöglichst du es Nutzern, die Navigation zu überspringen und direkt zum Inhalt zu gehen.</li>



<li>Verwende <strong>sichtbare Fokuszustände</strong> – vermeide <code>outline: none</code> ohne Ersatz.</li>



<li>Achte auf <strong>ausreichende Farbkontraste</strong> der Bedienelemente.</li>



<li>Teste dein Menü mit einem <strong>Screenreader</strong> wie NVDA oder VoiceOver.</li>
</ul>



<p class="wp-block-paragraph">Aber nutze ARIA-Attribute nur, wenn sie wirklich nötig sind und versuche statt dessen Zugänglichkeitsprobleme zunächst mit semantisch korrektem HTML zu lösen.</p>



<p class="wp-block-paragraph">Zum Thema barrierearme Dropdownnavigationen findet du einen interessanten Artikel unter <a href="https://web-einfach-machen.de/Blog/webproduktion/barrierefreie-website-navigation/">https://web-einfach-machen.de/Blog/webproduktion/barrierefreie-website-navigation/</a>.</p>



<hr>



<h2 class="wp-block-heading">5. Konsistenz und Wiedererkennbarkeit</h2>



<p class="wp-block-paragraph">Gute Navigation ist wie ein roter Faden durch die Seite. Wer auf einer Unterseite plötzlich ein anderes Menü sieht oder das Design springt, verliert schnell die Orientierung.</p>



<h3 class="wp-block-heading">Praxistipp:</h3>



<ul class="wp-block-list">
<li>Halte Navigation <strong>auf allen Seiten konsistent</strong> – sowohl optisch als auch strukturell.</li>



<li><strong>Markiere die aktive Seite</strong> klar sichtbar.</li>



<li>Zeige bei Bedarf eine Brotkrumen-Navigation, engl. <strong>Breadcrumbs</strong> für zusätzliche Orientierung, vor allem bei tiefen Hierarchien.</li>
</ul>



<hr>



<h2 class="wp-block-heading">6. Technische Umsetzung: Flexibel und performant</h2>



<p class="wp-block-paragraph">Moderne Menüs müssen nicht nur nutzerfreundlich, sondern auch technisch sauber sein – besonders im Hinblick auf Performance und Wartbarkeit.</p>



<h3 class="wp-block-heading">Praxistipp:</h3>



<ul class="wp-block-list">
<li>Setze auf <strong>CSS Flexbox oder Grid</strong>, um Menüs responsiv zu gestalten.</li>



<li>Nutze <strong>Container Queries</strong>, um Menüs abhängig vom tatsächlichen Platz umzubauen – nicht nur vom Viewport.</li>



<li>Vermeide unnötiges JavaScript – und wenn nötig, dann so <strong>modular und barrierefrei wie möglich</strong>.</li>



<li><strong>Mikro-Interaktionen</strong> (wie eine dezente Animation beim hovern eines Links) verbessern die UX.</li>
</ul>



<hr>



<div style="height:70px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">Biete deinen Besucherinnen und Besuchern auch gerne weitere Möglichkeiten der Navigation an, wenn du sehr umfangreiche Inhalte hast. Zum Beispiel eine <strong>Suchen-Funktion</strong> oder eine <strong>Sitemap</strong>. Falls du hingegen ein eher übersichtliches Informationsangebot hast, kann ein Onepager eine gute Idee sein.</p>



<p class="wp-block-paragraph">Navigation ist weit mehr als nur ein Menü. Sie ist Wegweiser, Orientierungshilfe und strukturelles Rückgrat deiner Website. Wer sich Zeit für eine durchdachte, barrierefreie und mobilfreundliche Navigation nimmt, verbessert die User Experience spürbar – und tut gleichzeitig etwas für SEO, Conversion und Vertrauen.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://web-einfach-machen.de/Blog/webproduktion/webseiten-navigation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Visual Studio Code: Tipps für das produktive Arbeiten</title>
		<link>https://web-einfach-machen.de/Blog/webproduktion/visual-studio-code-tipps-fuer-das-produktive-arbeiten/</link>
					<comments>https://web-einfach-machen.de/Blog/webproduktion/visual-studio-code-tipps-fuer-das-produktive-arbeiten/#respond</comments>
		
		<dc:creator><![CDATA[Web einfach machen]]></dc:creator>
		<pubDate>Fri, 20 Jun 2025 08:07:56 +0000</pubDate>
				<category><![CDATA[EDV]]></category>
		<category><![CDATA[Webproduktion]]></category>
		<category><![CDATA[VS Code]]></category>
		<guid isPermaLink="false">https://web-einfach-machen.de/Blog/?p=1036</guid>

					<description><![CDATA[Visual Studio Code – kurz VS Code ist ein quelloffener, kostenloser und plattformübergreifender Code-Editor, der sich aktuell bei Entwicklern großer Beliebtheit erfreut. &#160;In diesem Artikel zeige ich dir praxisnahe Tipps, mit denen du noch produktiver arbeitest.&#160; Sinnvolle Einstellungen&#160;...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Visual Studio Code – kurz VS Code ist ein quelloffener, kostenloser und plattformübergreifender Code-Editor, der sich aktuell bei Entwicklern großer Beliebtheit erfreut. &nbsp;In diesem Artikel zeige ich dir praxisnahe Tipps, mit denen du noch produktiver arbeitest.&nbsp;</p>



<hr>



<h2 class="wp-block-heading"><strong>Sinnvolle Einstellungen&nbsp;</strong></h2>



<p class="wp-block-paragraph">VS Code lässt sich unter <em><strong>Datei → Einstellungen</strong></em> (bzw. Strg+,) umfangreich konfigurieren. Generell würde ich dir folgende Einstellungen empfehlen:</p>



<p class="wp-block-paragraph"><strong>wordWrap</strong>: true – Suche in den Einstellungen nach dem Stichwort <em>Word Wrap</em> und schalte es ein, damit lange Zeilen in deinem Code automatisch umbrechen. Ansonsten müsstest du horizontal scrollen, um das Ende einer langen Zeile sehen zu können.</p>



<p class="wp-block-paragraph">editor.<strong>formatOnSave</strong>: true – Aktiviert die automatische Formatierung des Codes beim Speichern der Datei.</p>



<p class="wp-block-paragraph"><strong>explorer.sortOrder</strong>: auf den Wert „modified“ setzen, um die Darstellung in der Explorer-Seitenleiste nicht nach Namen, sondern nach Änderungsdatum zu sortieren.</p>



<p class="wp-block-paragraph">editor.<strong>bracketPairColorization</strong>.enabled: true – um zusammengehörige Klammern farblich zu markieren</p>



<p class="wp-block-paragraph">Bei den Einstellungen unterscheidet man zwischen&nbsp;<strong>Benutzereinstellungen bzw. Workspace-Einstellungen:</strong>&nbsp; Du kannst unter dem Menüpunkt <em>Datei → Einstellungen</em> entweder generelle Einstellungen für alle Projekte (Benutzer) oder solche nur für das aktuelle Projekt (Arbeitsbereich) wählen. Ersteres gilt global für alle Projekte, letzteres nur für das aktuelle. Sehr praktisch, wenn du z. B. für ein Projekt andere Formatierungsregeln brauchst.<br><br></p>



<h2 class="wp-block-heading"><strong>Oberfläche einrichten</strong></h2>



<ul class="wp-block-list">
<li><strong>Wenn du mehr Platz auf deinem Monitor benötigst, kannst du die linke Seitenleiste einklappen:</strong> Drücke <em>Cmd+B</em> (Mac) bzw. <em>Ctrl+B</em> (Windows/Linux), um mehr Platz für den Code zu schaffen.<br></li>



<li><strong>Mir persönlich ist die voreingestellte Schriftgröße des Editors ein bisschen zu klein, aber sie lässt sich anpassen:</strong> <em>Cmd + / Ctrl +</em> vergrößert schrittweise die Schrift.<br></li>



<li><strong>Minimap ein-/ausblenden:</strong> Mit der Minimap kannst du in umfangreichen Dateien ein bisschen einfacher scrollen. Die Minimap, die oben rechts im Programmfenster einen Überblick über den Inhalt deiner aktuellen Datei gibt, kannst du an- oder ausschalten, indem du (in Version 1.101) auf <em>Anzeigen → Darstellung</em> und dann <em>Minimap</em> gehst.&nbsp;Alternativ kannst du auch einen Rechtsklick auf der rechten Scroll-Leiste ausführen und die Minimap ein- oder ausblenden. Das Aussehen der Minimap selber kannst du über <em>Datei →&nbsp; Einstellungen →&nbsp; Einstellungen</em> konfigurieren.<br></li>
</ul>



<h2 class="wp-block-heading"><strong>Effizienter Code-Workflow</strong></h2>



<h3 class="wp-block-heading"><strong>Tabs und Splitscreen nutzen</strong></h3>



<p class="wp-block-paragraph">Wenn du an mehreren Dateien gleichzeitig arbeitest (z. B. HTML, CSS und JavaScript), kannst du durch Tabs oben schnell wechseln oder mit einem Klick auf das Icon <strong>„Editor rechts teilen“</strong> (Doppelfenster-Symbol oben rechts) zwei oder mehr Dateien parallel anzeigen. Alternativ: Rechtsklick auf eine Datei im Explorer von VS Code → <em>An der Seite öffnen</em>.</p>



<h3 class="wp-block-heading">Mehrere gleichzeitige Cursor&nbsp;</h3>



<p class="wp-block-paragraph">Ein echtes Power-Feature: Markiere Text in deinem Code und drücke <em>Ctrl+D</em> (Windows/Linux) oder <em>Cmd+D</em> (Mac), um weitere Vorkommen auszuwählen und gleichzeitig zu bearbeiten – ideal für schnelle Massenänderungen.</p>



<h3 class="wp-block-heading">Tastenkombinationen&nbsp;</h3>



<p class="wp-block-paragraph">Mach dich gerne mit den Tastenkombinationen in VS Code vertraut. Du kannst zum Beispiel mit <em>Command + Shift + 7</em> Kommentare in deinen Quellcode einsetzen. Eine Übersicht über alle Tastenkombinationen findest du, wenn du unten links auf das Verwalten-Icon (das Zahnrad) klickst und dann auf <em>Tastenkombination</em>en gehst.</p>



<h2 class="wp-block-heading">Nutze die <strong>Befehlspalette</strong> von Visual Studio Code</h2>



<p class="wp-block-paragraph">Die Befehlspalette ist ein zentrales Werkzeug, mit dem du schnell auf viele Funktionen, Befehle und Einstellungen zugreifen kannst, ohne dass du durch Menüs oder die Benutzeroberfläche navigieren musst. Du kannst sie dir mit <em>Cmd+Shift+P</em> (Mac) oder <em>Ctrl+Shift+P</em> (Linux/Windows) anzeigen lassen.&nbsp;<br>Um zum Beispiel einem Bild die Attribute für Breite und Höhe zuzuweisen, lasse ich mir die Befehlspalette anzeigen und gebe den Befehl „size“ ein, um einem Bild die entsprechenden Größen-Attribute automatisch zuzuweisen.&nbsp;</p>



<h2 class="wp-block-heading"><strong>Schneller Coden mit IntelliSense, Emmet und Snippets</strong></h2>



<p class="wp-block-paragraph"><strong>IntelliSense bietet</strong> dir beim Schreiben automatisch passende Code-Vervollständigungen an. Das ist in VS Code bereits voreingestellt, hier musst du nichts ändern. Ein weiteres super hilfreiches Hilfsmittel zum schnellen Schreiben von Code ist <strong>Emmet</strong>, ein leistungsstarkes Snippet-Tool für HTML und CSS. Ein einfaches ! + Tab erzeugt z. B. ein vollständiges HTML-Grundgerüst. Für eine tiefergehende Einführung lohnt sich ein Blick auf<a href="https://emmet.io"> </a><a href="https://emmet.io/">https://emmet.io/</a> oder das Youtube-Tutorial „Optimiere Emmet in VSCode“ auf <a href="https://www.youtube.com/watch?v=GX81t3pdLDI">https://www.youtube.com/watch?v=GX81t3pdLDI</a>.&nbsp;</p>



<p class="wp-block-paragraph">Und wenn du ganze Codeschnipsel schnell in dein Projekt einfügen möchtest, dann sind die so genannten <strong>Codes Snippets</strong> empfehlenswert.<br>Um eigene Snippets anzulegen, kannst du die Befehlspalette öffnen und „Snippets“ eingeben.&nbsp; Wenn du das auswählst, findest du eine Übersicht über vorhandene Snippets oder kannst neue erstellen.<br>Ein gut gemachtes Video zum Thema „Eigene Code Snippets in Visual Studio Code anlegen“ findest du unter: <a href="https://www.youtube.com/watch?v=tPvaQBdIBLU">https://www.youtube.com/watch?v=tPvaQBdIBLU</a>, hier wird dir die Syntax anhand konkreter Beispiele erklärt.&nbsp;</p>



<h2 class="wp-block-heading"><strong>Erweiterungen, die du ausprobieren solltest</strong></h2>



<p class="wp-block-paragraph">VS Code ist mithilfe von Extensions umfangreich erweiterbar. Hier hat jeder Entwickler seine eigenen Lieblingserweiterungen. Was ich dir empfehlen kann, sind die folgenden Erweiterungen:</p>



<ul class="wp-block-list">
<li><strong>Live Server:</strong> Gibt dir eine Vorschau deiner Webseite in Echtzeit direkt im Browser. Besonders praktisch, wenn du auf einem sehr großen oder besser zwei Monitoren arbeitest.&nbsp;</li>



<li><strong>MinifyAll</strong>: Ermöglicht das automatische Minifizieren und Komprimieren von gängigen Webdateien wie CSS, HTML, JavaScript oder JSON.</li>



<li><strong>Auto Rename Tag:</strong> Ändert automatisch den schließenden oder öffnenden Tag beim Editieren (was du allerdings mit F2  auch ohne die Erweiterung erreichen kannst).</li>



<li><strong>Prettier:</strong> VS Code hat bereits gute Formatierer eingebaut, aber mit dieser Erweiterung hast du noch ein paar mehr Einstellungsmöglichkeiten. Aktiviere <em>Format on Save</em> in den Einstellungen (settings.json) für ein automatisches Formatieren deines Quellcodes.</li>



<li><strong>Icon Themes:</strong> Du kannst dir die Oberfläche des Programms mit verschiedenen so genannten Themes und Icon Themes anpassen.&nbsp; Hier wäre zum Beispiel das „Material Icon Theme“ oder die Erweiterung „VS Code-icons&#8220; bei vielen Entwicklern beliebt. Es macht die Dateiansicht mit passenden Icons etwas übersichtlicher.</li>



<li>Aber die wichtigste Extension von allen ist sicherlich <strong>„vscode-pets</strong>“ 🙂</li>
</ul>



<p class="wp-block-paragraph">Ein guter Einstieg in die Extension-Welt ist „The Best VSCode Extensions 2024“ auf <a href="https://www.youtube.com/watch?v=YjhkcvS1xKU">https://www.youtube.com/watch?v=YjhkcvS1xKU</a>.&nbsp;</p>



<h2 class="wp-block-heading"><strong>Arbeiten mit dem integrierten Terminal</strong></h2>



<p class="wp-block-paragraph">VS Code bietet ein vollwertiges Terminal direkt im Editor. Wenn du also mit einer Software arbeiten möchtest, die keine grafische Benutzeroberfläche hat, dann kannst du das direkt aus VS Code steuern. Hier kannst du beispielsweise Bildkonvertierungen, npm-Befehle, Git-Kommandos oder Build-Skripte direkt ausführen, über: <em>Terminal → Neues Terminal</em>.<br>Wenn du dich mit dem Thema Terminal vertraut machen möchtest, empfehle ich einen Blick auf „Command Line Crash Course For Beginners“ &#8211; <a href="https://www.youtube.com/watch?v=uwAqEzhyjtw">https://www.youtube.com/watch?v=uwAqEzhyjtw</a> und meinen Artikel zum Thema Bilder für Websites aufbereiten unter <a href="https://web-einfach-machen.de/Blog/webproduktion/bilder-optimal-fuer-website-aufbereiten/">https://web-einfach-machen.de/Blog/webproduktion/bilder-optimal-fuer-website-aufbereiten/</a>.  &nbsp;</p>



<h2 class="wp-block-heading">Versionskontrolle mit <strong>Git und GitHub</strong></h2>



<p class="wp-block-paragraph">Mit <strong>Git</strong> kannst du Quellcode verwalten. Es wurde entwickelt, um Änderungen an Dateien (meistens Quellcode) zu verfolgen und Zusammenarbeit zu ermöglichen. Während <strong>Github</strong> eine Kopie deines Codes und die dazugehörigen Repositories online zur Verfügung stellt. Github bietet:</p>



<ul class="wp-block-list">
<li>Online-Speicherplatz und BackUps für deine Git-Projekte (<strong>„Repositories</strong>“)</li>



<li>Werkzeuge für <strong>Zusammenarbeit</strong> (z. B. Pull Requests, etc.)</li>



<li><strong>Versionsübersicht</strong> und Code-Vergleiche im Browser</li>
</ul>



<p class="wp-block-paragraph">Die Versionskontrolle ist nahtlos in VS Code integriert. Zunächst musst du Git auf deinem Rechner installieren. Du kannst Git unter anderem von <a href="https://git-scm.com/downloads">https://git-scm.com/downloads</a> runterladen oder unter Linux mit <em>sudo apt install git</em> installieren.<br>Mehr zum Installieren und den Grundlagen von Git findest du auf <a href="https://lerneprogrammieren.de/git/">https://lerneprogrammieren.de/git/</a>, <a href="https://www.ionos.de/digitalguide/websites/web-entwicklung/git-tutorial/">https://www.ionos.de/digitalguide/websites/web-entwicklung/git-tutorial/</a> oder <a href="https://www.youtube.com/watch?v=mJ-qvsxPHpY">https://www.youtube.com/watch?v=mJ-qvsxPHpY</a>.&nbsp;&nbsp;</p>



<ol class="wp-block-list">
<li>Wenn Git auf deinem Rechner installiert ist und du in Github angemeldet bist, kannst du in VS Code den Projektordner öffnen.</li>



<li>In der linken Seitenleiste auf das Quellcodeverwaltung-Icon klicken → <em>Initialize Repository</em>.</li>



<li>Neue Dateien sind dem Repository zunächst noch nicht hinzugefügt und mit U (untracked) markiert. Mit Klick auf + werden sie zum Repository hinzugefügt (A = added).</li>



<li>Den Branch (Zweig) umbenennen? Öffne die Befehlspalette (<em>Cmd+Shift+P</em>) und gib <em>Rename</em> ein.</li>
</ol>



<p class="wp-block-paragraph">Mehr zum Arbeiten mit Git in VS Code findest du unter anderem auf „Using Git with Visual Studio Code (Official Beginner Tutorial)“: <a href="https://www.youtube.com/watch?v=i_23KUAEtUM">https://www.youtube.com/watch?v=i_23KUAEtUM</a>&nbsp;</p>



<p class="wp-block-paragraph">Zum Thema Versionskontrolle gibt es in VS Code übrigens auch eine so genannte <strong>Zeitachse</strong>. Sie ist eine integrierte Funktion, die eine lokale Versionshistorie für jede Datei bereitstellt und es erlaubt, die Änderungen in einzelnen Dateien detailliert nachzuvollziehen &#8211; und das ganz ohne externe Plugins oder ein Git-Repository.&nbsp;</p>



<h2 class="wp-block-heading"><strong>KI-Unterstützung: GitHub Copilot und Agent Mode</strong></h2>



<p class="wp-block-paragraph">Es gibt zahlreiche Tools, die dir mit Hilfe von künstlicher Intelligenz das Arbeiten erleichtern, auch in Visual Studio Code kannst du dir mit Co-Pilot helfen lassen. Mit GitHub Copilot und dem <strong>Agent Mode</strong> kannst du künstliche Intelligenz direkt aus VS Code nutzen. Dazu musst du mit deinem GitHub-Konto angemeldet sein. Du kannst CoPilot in drei Modi nutzen:&nbsp;</p>



<ul class="wp-block-list">
<li><strong>Ask-Mode:</strong> Stelle Fragen zur Codebasis.</li>



<li><strong>Edit-Mode:</strong> Lass Code direkt von der KI bearbeiten.</li>



<li><strong>Agent-Mode:</strong> Copilot arbeitet wie ein Entwickler und fragt dich bei jedem Schritt nach Bestätigung.<br></li>
</ul>



<p class="wp-block-paragraph">Mit #fetch kannst du Copilot sogar gezielt Hinweise liefern, um spezifische Inhalte (z.B. von Webseiten oder Dokumentationen) in den Kontext einzubinden.</p>



<p class="wp-block-paragraph">Schau dir dazu auch die Dokumentation unter <a href="https://code.visualstudio.com/docs/copilot/overview">https://code.visualstudio.com/docs/copilot/overview</a> an. Zwei empfehlenswerte Videos hierzu: Copilot und Agent Mode in VS Code: <a href="https://www.youtube.com/watch?v=sYepbevm8TY">https://www.youtube.com/watch?v=sYepbevm8TY</a> und <a href="https://www.youtube.com/watch?v=dutyOc_cAEU">https://www.youtube.com/watch?v=dutyOc_cAEU</a>.&nbsp;&nbsp;</p>



<h2 class="wp-block-heading"><strong>Fazit</strong></h2>



<p class="wp-block-paragraph">Visual Studio Code ist weit mehr als ein Code-Editor – es ist ein mächtiges, flexibles Werkzeug, das sich gut an deine individuellen Arbeitsgewohnheiten anpassen lässt. Wer die vielen Möglichkeiten kennt und gezielt nutzt, kann damit effizienter entwickeln.</p>



<hr>



<h2 class="wp-block-heading">Literaturhinweise</h2>



<p class="wp-block-paragraph">Du kannst VS Code von <a href="https://code.visualstudio.com/Download">https://code.visualstudio.com/Download</a> herunterladen.Weitere Tipps zu VS Code: <a href="https://code.visualstudio.com/docs/getstarted/tips-and-tricks">https://code.visualstudio.com/docs/getstarted/tips-and-tricks</a><br>Und mein Video zu VS Code findest du unter: <a href="https://www.youtube.com/watch?v=NZ8XUWdBqzw">https://www.youtube.com/watch?v=NZ8XUWdBqzw</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://web-einfach-machen.de/Blog/webproduktion/visual-studio-code-tipps-fuer-das-produktive-arbeiten/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Bilder optimal für performante Websites aufbereiten</title>
		<link>https://web-einfach-machen.de/Blog/webproduktion/bilder-optimal-fuer-website-aufbereiten/</link>
					<comments>https://web-einfach-machen.de/Blog/webproduktion/bilder-optimal-fuer-website-aufbereiten/#respond</comments>
		
		<dc:creator><![CDATA[Web einfach machen]]></dc:creator>
		<pubDate>Mon, 10 Feb 2025 13:01:09 +0000</pubDate>
				<category><![CDATA[EDV]]></category>
		<category><![CDATA[Webproduktion]]></category>
		<category><![CDATA[AVIF]]></category>
		<category><![CDATA[Geschwindigkeitsoptimierung]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[responsive Website]]></category>
		<guid isPermaLink="false">https://web-einfach-machen.de/Blog/?p=757</guid>

					<description><![CDATA[Bilder sind ein zentraler Bestandteil jeder Webseite und entscheiden mit darüber, ob ein Webauftritt als benutzerfreundlich und professionell wahrgenommen wird – oder eben nicht. Um sicherzustellen, dass deine Bilder schnell laden und auf allen Geräten gut aussehen, solltest...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Bilder sind ein zentraler Bestandteil jeder Webseite und entscheiden mit darüber, ob ein Webauftritt als benutzerfreundlich und professionell wahrgenommen wird – oder eben nicht. Um sicherzustellen, dass deine Bilder schnell laden und auf allen Geräten gut aussehen, solltest du einige Best Practices befolgen. <br>In diesem Artikel erfährst du, was sich hinter dem AVIF-Dateiformat verbirgt, wie du das <code>&lt;picture&gt;</code>-Element mit <code>srcset</code> und <code>sizes</code> richtig nutzt, wie du dir die Arbeit in Visual Studio Code erleichtern kannst, oder mit einem Batch-Skript die Erstellung optimierter Bildversionen vereinfachst.</p>





<h2 class="wp-block-heading">Dateiformate für Webauftritte</h2>



<p class="wp-block-paragraph">Die Wahl des richtigen Dateiformats ist entscheidend für die Performance deiner Webseite. Hier sind die gängigsten Formate und ihre Vor- bzw. Nachteile:</p>



<ul class="wp-block-list">
<li><strong>AVIF</strong>: Ein modernes Format, das die besten Komprimierungsraten bei hoher Bildqualität bietet. AVIF unterstützt sowohl verlustbehaftete als auch verlustfreie Komprimierung und ist ideal für Fotos und Grafiken. Es unterstützt kein progressives Rendering, sodass Dateien vollständig heruntergeladen werden müssen, bevor sie angezeigt werden können, was aber in der Praxis kaum auffällt. Die Browserunterstützung liegt zur Zeit (im Februar 2025) bei ca. 95 %.</li>



<li><strong>WebP</strong>: Ein weiteres modernes Format. WebP bietet in der Regel bessere Komprimierungsraten als JPEG und PNG. Die Browserunterstützung ist mit ca. 97 % mittlerweile sehr gut.</li>



<li><strong>JPEG, PNG und Gif</strong>: Diese Dateiformate sind nur noch in Ausnahmefällen sinnvoll. JPEG und PNG bieten im Vergleich zu AVIF und WebP eine eher mäßige Komprimierung bei akzeptabler Qualität, sind aber inzwischen nicht mehr die ideale Lösung für Webauftritte. JPEG wird von allen Webbrowsern unterstützt und du kannst es gegebenenfalls noch als Fallback für veraltete Browser nutzen. Im Gegensatz zu den anderen hier vorgestellten Dateiformaten unterstützt JPEG keine Transparenz.<br>Bei PNG hast du die Möglichkeit, mit transparenten Hintergründen und verlustfreier Komprimierung zu arbeiten. Und wenn du eine animierte Pixelgrafik zeigen möchtest, um etwas 90er-Jahre Charme in deinen Webauftritt zu bringen, könntest du mit Gif-Dateien arbeiten 😉 Gifs haben mit maximal 256 Farben im Vergleich zur Abbildungsqualität allerdings eine sehr hohe Dateigröße.<br><a href="https://caniuse.com/?search=JPEG%20XL">JPEG XL</a> hat eine ähnlich gute Kompression wie AVIF, wird aber zurzeit nur von 14 % aller Webbrowser unterstützt.</li>



<li><strong>SVG</strong>: Für Vektorgrafiken wie Logos und Icons. SVG-Dateien sind skalierbar und behalten ihre Qualität bei jeder Größe. Mehr zu diesem Dateiformat findest du in meinem Artikel unter <a href="https://web-einfach-machen.de/Blog/edv/svg-vektorgrafik-im-webbrowser/">https://web-einfach-machen.de/Blog/edv/svg-vektorgrafik-im-webbrowser/</a>.</li>
</ul>



<p class="wp-block-paragraph">Weitere detaillierte Informationen zu den Dateiformaten findest du unter <a href="https://developer.mozilla.org/de/docs/Web/Media/Guides/Formats/Image_types">https://developer.mozilla.org/de/docs/Web/Media/Guides/Formats/Image_types</a>.</p>



<h2 class="wp-block-heading">AVIF-Konvertierung mit avifenc</h2>



<p class="wp-block-paragraph">In diesem Artikel geht es vor allem um das zukunftsweisende AVIF Format.<br>Es wird zwar von einem kleinen Teil der Webbrowser nicht unterstützt, aber das ist kein Problem. Mithilfe des Picture-Elements hast du für solche Uralt-Browser eine ausgezeichnete Fallback-Lösung zur Verfügung. Mehr dazu weiter unten in diesem Artikel.<br>Um die erstaunliche Qualität der AVIF-Komprimierung einschätzen zu können, schaust du dir am besten die verschiedenen Beispielbilder auf meiner Demo-Seite unter <a href="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/Vergleich-Kompression-Qualitaet.html">https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/Vergleich-Kompression-Qualitaet.html</a> an. Hier siehst du verschiedene Komprimierungs-Varianten im direkten Vergleich.</p>



<p class="wp-block-paragraph">Die einzelnen Bilder habe ich größtenteils mit dem Programm <code>avifenc</code> erstellt, das ist ein sogenanntes Kommandozeilen-Programm. Um damit zu arbeiten, muss man in seinem Betriebssystem ein Terminal öffnen. Zum Arbeiten mit dem Terminal auf deinem Betriebssystem habe ich dir in den Literaturhinweisen ein paar Tutorials verlinkt. Du kannst AVIF-Dateien auch mit Programmen wie Gimp oder Adobe Photoshop (im Februar 2025 nur Windows und mit kostenpflichtigen PlugIn) abspeichern. Du hast aber im Terminal mehr Möglichkeiten für das Feintuning, deswegen erkläre ich die einzelnen Optionen bei der AVIF-Komprimierung anhand des Kommandozeilenprogramms „avifenc“. Lass uns also einen beispielhaften Befehl näher betrachten: Zunächst ein Beispiel für <strong>eine Konvertierung mit ausgewogener Balance zwischen Kompression und Qualität</strong>: <br><code>avifenc -j all -s 3 --min 0 --max 63 -a tune=ssim --ignore-icc</code> <code>input.jpg output.avif</code></p>



<p class="wp-block-paragraph">Hier wird zunächst mit <code>avifenc</code> der Encoder (das Programm) avifenc im Terminal aufgerufen. Danach folgen verschiedene Parameter.</p>



<p class="wp-block-paragraph">Als erster Parameter steht in diesem Beispiel mit <code>-j all</code>  die Anzahl der Jobs (Threads), hier wird die CPU aufgefordert, alle vorhandenen Kerne für die einzelnen Threads des Prozesses zu nutzen, was die Verarbeitungsgeschwindigkeit erhöht.<br>Der Parameter <code>-s 3</code> beeinflusst die Geschwindigkeit der Kodierung. Die Skala reicht hier von 0 (am langsamsten) bis 10 (am schnellsten). Wenn du einen niedrigen Wert festlegst, dauert das Erstellen der komprimierten Datei ein wenig länger, dafür wirst du mit einer etwas kleineren Dateigröße belohnt.</p>



<p class="wp-block-paragraph">Die Parameter <code>--min 0 --max 63</code> beziehen sich auf die Quantisierungsparameter (QP) für die Bildkompression.<br>„- -min 0“ setzt den minimalen Quantisierungswert auf 0, was der höchsten Qualität entspricht. <br>„- -max 63“ setzt den maximalen Quantisierungswert auf 63, was der niedrigsten Qualität entspricht. Diese Einstellung erlaubt dem Encoder, für jeden Block im Bild den optimalen QP-Wert zwischen 0 und 63 zu wählen. Dies ermöglicht eine effizientere Kodierung und bessere psychovisuelle Qualität, da der Encoder die Kompression an die Anforderungen verschiedener Bildbereiche flexibel anpassen kann. Im Gegensatz dazu würde eine Einstellung wie „&#8211;min 20 &#8211;max 20“ den Encoder zwingen, für jeden Block denselben QP-Wert zu verwenden, was in der Regel zu einem weniger optimalen Ergebnis führt.</p>



<p class="wp-block-paragraph">Weitere Parameter sind <code>-a tune=ssim</code>: „-a tune=ssim“ (Structural Similarity Index Measure) sorgt für eine größere visuelle Ähnlichkeit zwischen dem Original und dem komprimierten Bild.<br>Diese Einstellung kann die Dateigröße leicht reduzieren.<br>Und „<code>--ignore-icc</code>“ Dieser Parameter ignoriert eingebettete ICC-Farbprofile im Eingabebild.</p>



<p class="wp-block-paragraph">Und am Ende des Befehls gibst du mit „<code>input.jpg output.avif</code>“ die Ausgangsdatei und den Namen der komprimierten Ausgabe-Datei an.</p>



<p class="wp-block-paragraph">Wenn du <code>avifenc -h</code> im Terminal eingibst, bekommst du die Hilfe mit den kompletten Optionen des Encoders angezeigt. Hier habe ich auf meiner Demoseite beispielsweise <code>film-grain-test=1</code> für die Kodierungen mit problematischen Verläufen genutzt.</p>



<p class="wp-block-paragraph">Um mit mit dem Kommandozeilenprogramm avifenc zu arbeiten zu, musst du es auf deinem Betriebssystem erstmal installieren. Das geht unter Linux zum Beispiel mit apt. Und unter MacOS mit dem Paketmanager Homebrew (<code>brew install joedrago/repo/avifenc</code> ), der wiederum die Xcode Command Line Tools erfordert. Im Videotutorial „How to Install Homebrew on Mac“: <a href="https://www.youtube.com/watch?v=IWJKRmFLn-g">https://www.youtube.com/watch?v=IWJKRmFLn-g</a> findest du dazu eine Anleitung. </p>



<h2 class="wp-block-heading">Arbeiten mit dem Terminal?</h2>



<p class="wp-block-paragraph">Das Abspeichern eines Bildes als AVIF-Datei lässt sich auch mit Programmen wie Gimp oder <a href="https://squoosh.app/">https://squoosh.app/</a> realisieren, aber mit den hier beschriebenen Techniken bist du flexibler, kannst mit Stapelverarbeitungen arbeiten und holst das Beste aus deinen Bildern raus. Tatsächlich ist das Arbeiten mit dem Terminal kein Hexenwerk und in einigen Situationen ein echter Rettungsanker. <br>Zum Arbeiten mit dem Terminal kann ich dir folgende Literatur empfehlen: <br>Beginners tutorial: <a href="https://ubuntu.com/tutorials/command-line-for-beginners#3-opening-a-terminal">https://ubuntu.com/tutorials/command-line-for-beginners#3-opening-a-terminal</a> <br>Die 15 wichtigsten Linux-Befehle im Terminal: <a href="https://www.giga.de/extra/linux/specials/linux-befehle/">https://www.giga.de/extra/linux/specials/linux-befehle/</a> <br>Die 20 wichtigsten Kommandos: <a href="https://www.heise.de/tipps-tricks/Linux-Befehle-Die-20-wichtigsten-Kommandos-3843388.html">https://www.heise.de/tipps-tricks/Linux-Befehle-Die-20-wichtigsten-Kommandos-3843388.html</a><br>Video &#8211; 20 Terminal Befehle in 6 Minuten: <a href="https://www.youtube.com/watch?v=J2SXhVzVJbM">https://www.youtube.com/watch?v=J2SXhVzVJbM</a></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Bilder für responsive Webseiten</h2>



<p class="kt-adv-heading757_65a776-b9 wp-block-kadence-advancedheading" data-kb-block="kb-adv-heading757_65a776-b9">Verwende in deinen Webprojekten keine Bilder mit unnötig hohen Auflösungen. Um Bilder responsiv in die Webseite einzubinden, kannst du mit den Attributen <code>scrset</code> und <code>sizes</code> arbeiten.<br>Srcset ist eine Liste von unterschiedlich aufgelösten Versionen deines Bildes mit der Angabe, für welche Breite das Bild geeignet ist.<br>Mit dem Attribut sizes legst du die Bedingungen fest, wie groß das Bild im Seiten-Layout dargestellt werden soll. Ohne die Angabe von sizes würde der Browser ein Bild immer auf der Grundlage der kompletten Fensterbreite raussuchen, auch wenn beispielsweise in einem zweispaltigen Layout das Bild nur 50 % des kompletten Viewport einnimmt. <strong>Der Viewport</strong> ist der sichtbare Teil des Browserfensters, also ohne Elemente wie Scrollbalken oder Adressleiste.<br>Du kannst den Einsatz von sizes gut anhand meines Beispiels unter der Adresse <a href="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/srcset.html">https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/srcset.html</a> nachvollziehen.</p>



<p class="wp-block-paragraph">In diesem Beispiel sollen Bilder auf größeren Monitoren (bei einer Viewportbreite ab 920 Pixel) zwei- beziehungsweise drei-spaltig angezeigt werden. Auf Smartphones unterhalb von 921 Pixel Viewportbreite hingegen sollen sie formatfüllend über die gesamte Breite des Browserfensters angezeigt werden.<br>Da ist zunächst ein Bild, was oben auf der Seite als Aufmacherbild auf Displays über 920 Pixel Auflösung eine Breite von 100% des Elternelementes hat.<br>Da drunter siehst du auf meiner Beispielseite ein zwei- bzw. drei-spaltiges Layout.<br>In allen Fällen soll jeweils eine Version des Bildes geladen werden, die nicht unnötig groß ist, aber eine ausreichende Auflösung hat, um zum einen in das Layout zu passen und zum anderen auch bei Bildschirmen mit einer höheren DPR (device-pixel-ratio) nicht unscharf aussieht.</p>



<p class="wp-block-paragraph">Die <strong>Device Pixel Ratio</strong> eines Displays gibt an, wie viele Hardwarepixel des Displays zu einem logischen CSS Pixel zusammengefasst werden. So hat zum Beispiel das Retina Displays eines iPhone 16 Pro eine DPR von 3, was dazu führt, dass seine physische Bildschirmauflösung von 1320 x 2868 Pixeln in 440 × 956 CSS-Pixel resultiert.</p>



<p class="wp-block-paragraph">Hier der dazugehörige HTML Code, um die Bilder responsiv einzubinden; zunächst das Aufmacherbild mit 50% Breite auf Ausgabegeräten über 920px Viewportbreite:</p>



<pre class="wp-block-code"><code>&lt;img srcset="Bilder/dummy-400.webp 400w,
    Bilder/dummy-800.webp 800w,
    Bilder/dummy-1024.webp 1024w,
    Bilder/dummy-1600.webp 1600w,
    Bilder/dummy-2048.webp 2048w,
    Bilder/dummy-3840.webp 3840w" 
sizes="(max-width:920px) 100vw, 50vw" 
src="Bilder/dummy-1024.webp" alt="Ein sehr schönes Bild" width="1024" height="512"></code></pre>



<p class="kt-adv-heading757_c3f1c5-d7 wp-block-kadence-advancedheading" data-kb-block="kb-adv-heading757_c3f1c5-d7">Mit dem Attribut srcset lege ich zunächst mehrere Bildquellen fest, aus denen der Browser je nach Bildschirmgröße und Auflösung das passende auswählt.<br>Mit dem Attribut sizes, sage ich dem Webbrowser durch die Angabe<code> (max-width: 920px) 100vw</code>, dass das Bild bis zu einer Viewportbreite von 920 Pixel <strong>die komplette Breite des Viewports einnehmen soll</strong>. Denn auf Smartphones bevorzuge ich eine ein-spaltige Darstellung. Ab einer Größe von 921 Pixel hingegen ändert sich mein Seitenlayout auf zwei-spaltig und <strong>hier sorgt die Angabe von <code>50vw</code> dafür, dass das Bild nur noch 50 % der Viewportbreite benötigt </strong>und eine entsprechend kleinere Datei geladen werden kann.<br>Falls ein sehr veralteter Browser das Attribut srcset nicht kennen sollte, wird ein Fallback-Bild mithilfe der Angabe <code>src="Bilder/dummy-1024.jpg"</code> angezeigt.</p>



<p class="wp-block-paragraph">Und nun zu den drei Bildern, welche auf Smartphones bis 920 Pixeln vollformatig über die komplette Breite, auf Desktop-PC Monitoren hingegen in einem dreispaltigen Layout angezeigt werden sollen.</p>



<pre class="wp-block-code"><code>img srcset="Bilder/dummy-400.webp 400w,
    Bilder/dummy-800.webp 800w,
    Bilder/dummy-1024.webp 1024w,
    Bilder/dummy-1600.webp 1600w,
    Bilder/dummy-2048.webp 2048w,
    Bilder/dummy-3840.webp 3840w" 
sizes="(max-width:920px) 100vw, 33vw" 
src="Bilder/dummy-1024.webp" alt="Ein sehr schönes Bild" width="1024" height="512"></code></pre>



<p class="wp-block-paragraph"><strong>Hier sorgt die Angabe von <code>33vw</code> ab einer Breite von 921 Pixeln dafür, dass die Bezugsbreite für das srcset nur noch ein Drittel der Viewportbreite betragen soll.</strong> Unterhalb von 921px wird 100vw als Bezugsgröße genommen, wobei die Annahme von 100vw ohnehin der Standard ist, falls keine andere Angabe gemacht wird. <br>Am besten schaust du dir das wie gesagt direkt an meinem Beispiel auf <a href="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/srcset.html">https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/srcset.html</a> an und veränderst die Breite deines Browserfenster. Hier siehst du, welche Bilder bei welcher Fensterbreite vom Browser geladen werden. Hier wird auch automatisch die DPR des Displays in die Berechnung einbezogen.<br>Du hast übrigens in den Entwicklertools von Browsern wie Firefox oder Chrome auch die Möglichkeit, eine individuelle device-pixel-ratio zu simulieren. Wenn du die DPR auf zwei oder drei erhöhst, werden dir entsprechend höher aufgelöste Bilder angezeigt.</p>



<h2 class="wp-block-heading">Das picture-Element</h2>



<p class="wp-block-paragraph">Eine einfache Möglichkeit, Bilder in Webseiten einzubinden, ist das img-Element. Wenn du Bilder aber responsiv für verschiedene Ausgabegeräte optimiert anzeigen willst, dann empfehle ich dir stattdessen das <code>&lt;picture&gt;</code>-Element . Das <code>&lt;picture&gt;</code>-Element ermöglicht es dir, nicht nur verschiedene Bildversionen für unterschiedliche Bildschirmgrößen und Auflösungen bereitzustellen, sondern auch das Bild im optimalen Dateiformat bereitzustellen.</p>



<p class="wp-block-paragraph">Das Picture-Element kann mehrere source-Elemente enthalten, wobei der Webbrowser die erste source, also die erste Quelle, die er verarbeiten kann, anzeigt. Damit der Browser die optimale Datei finden kann, kannst du im Picture Element mit Media Queries und Attributen wie zum Beispiel sizes arbeiten.</p>



<p class="wp-block-paragraph">Hier ist ein Beispiel, wie du das <code>&lt;picture&gt;</code>-Element mit <code>srcset</code> und <code>sizes</code> verwenden kannst:</p>



<pre class="wp-block-code"><code>&lt;picture>
                    &lt;!-- AVIF -->
                    &lt;source type="image/avif" srcset="
                 Bilder/dummy-400.avif 400w,
    Bilder/dummy-800.avif 800w,
    Bilder/dummy-1024.avif 1024w,
    Bilder/dummy-1600.avif 1600w,
    Bilder/dummy-2048.avif 2048w,
    Bilder/dummy-3840.avif 3840w" sizes="(max-width:920px) 100vw, 50vw">

                    &lt;!-- Webp -->
                    &lt;source type="image/webp" srcset="
                 Bilder/dummy-400.webp 400w,
    Bilder/dummy-800.webp 800w,
    Bilder/dummy-1024.webp 1024w,
    Bilder/dummy-1600.webp 1600w,
    Bilder/dummy-2048.webp 2048w,
    Bilder/dummy-3840.webp 3840w" sizes="(max-width:920px) 100vw, 50vw">
                    &lt;!-- Fallback mit JPEG -->
                    &lt;img src="Bilder/dummy-3840.jpg" alt="Ein sehr schönes Bild" width="3840" height="1920" loading="lazy" srcset="
                 Bilder/dummy-400.jpg 400w,
    Bilder/dummy-800.jpg 800w,
    Bilder/dummy-1024.jpg 1024w,
    Bilder/dummy-1600.jpg 1600w,
    Bilder/dummy-2048.jpg 2048w,
    Bilder/dummy-3840.jpg 3840w" sizes="(max-width:920px) 100vw, 50vw">
 &lt;/picture></code></pre>



<p class="wp-block-paragraph">In diesem Beispiel passiert folgendes: Mit dem source-Element kannst du mehrere Bildquellen angeben, die der Browser je nach Bildschirmgröße und Auflösung auswählt. Die Dateiformate, die er nicht unterstützt, überspringt der Browser. Ein Safari 16.0 würde beispielsweise eine AVIF Datei nicht verarbeiten können und zu WebP springen. Auch die für die Anzeige benötigte Mindestbreite des Bildes kann der Browser anhand von srcset und sizes aus der Liste auswählen. Die erste Datei, deren Medienabfrage einen Treffer ergibt, wird im Webbrowser angezeigt.<br>Welche Datei hier vom Webbrowser genommen wird, ist also davon abhängig, ob er einen bestimmten Dateityp verarbeiten kann, in welcher Größe die Datei abgebildet wird und welche Device Pixel Ratio das Display besitzt.</p>



<p class="wp-block-paragraph">Im picture-Element lassen sich übrigens auch Media-Abfragen wie beispielsweise orientation: landscape oder oder prefers-color-scheme: dark und ähnliche einsetzen, um die richtige Bildquelle zu wählen. Siehe den folgenden Code-Schnipsel von <a href="https://www.mediaevent.de/html/picture.html">https://www.mediaevent.de/html/picture.html</a>. </p>


<pre class="wp-block-code"><code>  &lt;picture&gt;
	&lt;source media="(min-width: 300px) and (orientation:portrait) and (prefers-color-scheme: dark)"  srcset="nacht-800.webp"&gt;
	&lt;source media="(min-width: 300px) and (orientation:landscape) and (prefers-color-scheme: dark)"  srcset="nacht-1000.webp"&gt;
	&lt;source media="(min-width: 300px) and (orientation:portrait)"  srcset="tag-800.webp"&gt;
	&lt;source media="(min-width: 300px) and (orientation:landscape)"  srcset="tag-1000.webp"&gt;
	&lt;img loading="lazy" src="tag-1000.webp" width="1108" height="458" alt="tag-1000"&gt;
&lt;/picture&gt;
</code></pre>


<h2 class="wp-block-heading">Automatisierung in Visual Studio Code</h2>



<p class="wp-block-paragraph">Das manuelle Schreiben des Codes für das <code>&lt;picture&gt;</code>-Element kann etwas mühsam sein, insbesondere wenn du viele Bilder auf deiner Website hast. Zum Glück kannst du dir die Arbeit in Visual Studio Code erleichtern, indem du Snippets und Erweiterungen verwendest.</p>



<h3 class="wp-block-heading">Snippets in Visual Studio Code</h3>



<p class="wp-block-paragraph">Snippets sind vorgefertigte Codeblöcke, die du in VS Code schnell einfügen kannst. Und so erstellst du ein Snippet für das <code>&lt;picture&gt;</code>-Element:</p>



<ul class="wp-block-list">
<li>Öffne in Visual Studio Code die Kommando-Palette mit <code>Strg+Shift+P</code> (Windows/Linux) oder <code>Cmd+Shift+P</code> (Mac).</li>



<li>Suche nach „Konfigurieren von Codeausschnitten“ oder „Configure User Snippets“ und wähle „New Snippets“ aus.</li>



<li>Wähle ggf. die Sprache aus, für die du das Snippet erstellen möchtest (z.B. HTML).</li>



<li>Füge den folgenden Code in die Snippet-Datei ein:</li>
</ul>



<pre class="wp-block-code"><code>{
	// Place your global snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and 
	// description. Add comma separated ids of the languages where the snippet is applicable in the scope field. 
	// picture-Elemente 
	"Bild (Vollständig über die gesamte Breite)": {
		"prefix": "bildvoll", // Das Kürzel, um das Snippet auszulösen.
		"body": &#91;
			"&lt;picture&gt;",
			"  &lt;!-- AVIF --&gt;",
			"  &lt;source",
			"    type=\"image/avif\"",
			"    srcset=\"",
			"      ${1:Bild}-400.avif 400w,",
			"      ${1:Bild}-800.avif 800w,",
			"      ${1:Bild}-1024.avif 1024w,",
			"      ${1:Bild}-1600.avif 1600w,",
			"      ${1:Bild}-2048.avif 2048w,",
			"      ${1:Bild}-3840.avif 3840w\"",
			"    sizes=\"100vw\"&gt;",
			"",
			"  &lt;!-- WebP --&gt;",
			"  &lt;source",
			"    type=\"image/webp\"",
			"    srcset=\"",
			"      ${1:Bild}-400.webp 400w,",
			"      ${1:Bild}-800.webp 800w,",
			"      ${1:Bild}-1024.webp 1024w,",
			"      ${1:Bild}-1600.webp 1600w,",
			"      ${1:Bild}-2048.webp 2048w,",
			"      ${1:Bild}-3840.webp 3840w\"",
			"    sizes=\"100vw\"&gt;",
			"",
			"  &lt;!-- Fallback JPG mit fetchpriority --&gt;",
			"  &lt;img",
			"    src=\"${1:Bild}-3840.jpg\"",
			"    srcset=\"",
			"      ${1:Bild}-400.jpg 400w,",
			"      ${1:Bild}-800.jpg 800w,",
			"      ${1:Bild}-1024.jpg 1024w,",
			"      ${1:Bild}-1600.jpg 1600w,",
			"      ${1:Bild}-2048.jpg 2048w,",
			"      ${1:Bild}-3840.jpg 3840w\"",
			"    sizes=\"100vw\"",
			"    alt=\"${2:Bildbeschreibung}\"",
			"    fetchpriority=\"high\"",
			"    width=\"20\"",
			"    height=\"20\"&gt;",
			"  &lt;!-- Preload bei Aufmacherbildern above the fold manuell in den head setzen. Ggf. für Bilder, die nicht als Aufmacherbild dienen, ein lazy-loading hinzufügen und fetchpriority entfernen. width und height per Emmet-sizes anpassen.  --&gt;",
			"&lt;/picture&gt;"
		],
		"description": "Fügt ein Bild ein, das immer die gesamte Breite der Seite einnimmt"
	},
	"Bild (Responsiv, 2 Breakpoints, Lazy Loading)": {
		"prefix": "bild2bp", // Das Kürzel, mit dem du das Snippet auslösen kannst
		"body": &#91;
			"&lt;picture&gt;",
			"  &lt;!-- AVIF --&gt;",
			"  &lt;source",
			"    type=\"image/avif\"",
			"    srcset=\"",
			"      ${1:Bild}-400.avif 400w,",
			"      ${1:Bild}-800.avif 800w,",
			"      ${1:Bild}-1024.avif 1024w,",
			"      ${1:Bild}-1600.avif 1600w,",
			"      ${1:Bild}-2048.avif 2048w,",
			"      ${1:Bild}-3840.avif 3840w\"",
			"    sizes=\"(max-width: 920px) 100vw, 50vw\"&gt;",
			"",
			"  &lt;!-- WebP --&gt;",
			"  &lt;source",
			"    type=\"image/webp\"",
			"    srcset=\"",
			"      ${1:Bild}-400.webp 400w,",
			"      ${1:Bild}-800.webp 800w,",
			"      ${1:Bild}-1024.webp 1024w,",
			"      ${1:Bild}-1600.webp 1600w,",
			"      ${1:Bild}-2048.webp 2048w,",
			"      ${1:Bild}-3840.webp 3840w\"",
			"    sizes=\"(max-width: 920px) 100vw, 50vw\"&gt;",
			"",
			"  &lt;!-- Fallback JPG mit Lazy Loading --&gt;",
			"  &lt;img",
			"    src=\"${1:Bild}-2048.jpg\"",
			"    srcset=\"",
			"      ${1:Bild}-400.jpg 400w,",
			"      ${1:Bild}-800.jpg 800w,",
			"      ${1:Bild}-1024.jpg 1024w,",
			"      ${1:Bild}-1600.jpg 1600w,",
			"      ${1:Bild}-2048.jpg 2048w,",
			"      ${1:Bild}-3840.jpg 3840w\"",
			"    sizes=\"(max-width: 920px) 100vw, 50vw\"",
			"    alt=\"${2:Bildbeschreibung}\"",
			"    loading=\"lazy\"",
			"    width=\"20\"",
			"    height=\"20\"&gt;",
			"  &lt;!-- Ggf. große srcsets bei gering aufgelösten Bildern löschen und „Bild-original.jpg“ für Fallback nutzen; width und height per Emmet-sizes anpassen.  --&gt;",
			"&lt;/picture&gt;"
		],
		"description": "Fügt ein responsives Bild mit 2 Breakpoints und Lazy Loading ein"
	},
	"Bild (Responsiv, 3 Breakpoints, Lazy Loading)": {
		"prefix": "bild3bp", // Das Kürzel, mit dem du das Snippet auslösen kannst
		"body": &#91;
			"&lt;picture&gt;",
			"  &lt;!-- AVIF --&gt;",
			"  &lt;source",
			"    type=\"image/avif\"",
			"    srcset=\"",
			"      ${1:Bild}-400.avif 400w,",
			"      ${1:Bild}-800.avif 800w,",
			"      ${1:Bild}-1024.avif 1024w,",
			"      ${1:Bild}-1600.avif 1600w,",
			"      ${1:Bild}-2048.avif 2048w,",
			"      ${1:Bild}-3840.avif 3840w\"",
			"    sizes=\"(max-width: 920px) 100vw, (max-width: 1600px) 50vw, 33.33vw\"&gt;",
			"",
			"  &lt;!-- WebP --&gt;",
			"  &lt;source",
			"    type=\"image/webp\"",
			"    srcset=\"",
			"      ${1:Bild}-400.webp 400w,",
			"      ${1:Bild}-800.webp 800w,",
			"      ${1:Bild}-1024.webp 1024w,",
			"      ${1:Bild}-1600.webp 1600w,",
			"      ${1:Bild}-2048.webp 2048w,",
			"      ${1:Bild}-3840.webp 3840w\"",
			"    sizes=\"(max-width: 920px) 100vw, (max-width: 1600px) 50vw, 33.33vw\"&gt;",
			"",
			"  &lt;!-- Fallback JPG mit Lazy Loading --&gt;",
			"  &lt;img",
			"    src=\"${1:Bild}-2048.jpg\"",
			"    srcset=\"",
			"      ${1:Bild}-400.jpg 400w,",
			"      ${1:Bild}-800.jpg 800w,",
			"      ${1:Bild}-1024.jpg 1024w,",
			"      ${1:Bild}-1600.jpg 1600w,",
			"      ${1:Bild}-2048.jpg 2048w,",
			"      ${1:Bild}-3840.jpg 3840w\"",
			"    sizes=\"(max-width: 920px) 100vw, (max-width: 1600px) 50vw, 33.33vw\"",
			"    alt=\"${2:Bildbeschreibung}\"",
			"    loading=\"lazy\"",
			"    width=\"20\"",
			"    height=\"20\"&gt;",
			"  &lt;!-- Ggf. große srcsets bei gering aufgelösten Bildern löschen und „Bild-original.jpg“ für Fallback nutzen; width und height per Emmet-sizes anpassen.  --&gt;",
			"&lt;/picture&gt;"
		],
		"description": "Fügt ein responsives Bild mit 3 Breakpoints und Lazy Loading ein"
	}
}</code></pre>



<ul class="wp-block-list">
<li>Speichere die Datei.</li>
</ul>



<p class="wp-block-paragraph">Jetzt kannst du das Snippet verwenden, indem du ein Prefix wie z.B. „bild2bp“ eingibst und mit Tab die Autovervollständigung nutzt. Danach musst du nur noch die Platzhalter, also Dateiname und Alt-Text sowie height- und width-Attribute des Bildes manuell anpassen. Aber das geht bei dieser Arbeitsweise sehr zügig, die Platzhalter für die Dateinamen sind bereits alle ausgewählt.</p>



<h3 class="kt-adv-heading757_da00f3-1b wp-block-kadence-advancedheading" data-kb-block="kb-adv-heading757_da00f3-1b">Die Attribute height und width </h3>



<p class="wp-block-paragraph">In meinen Beispielen gebe ich für die Bilder übrigens immer die Attribute width und height an. Durch die Information zum Seitenverhältnis von Höhe zu Breite ermöglichst du es Webbrowsern, den Platz für das Bild bereits beim Seitenaufbau zu reservieren. Dadurch kann der Browser das Layout bereits rendern, bevor das Bild geladen ist und vermeidet ein Layout-shift. So bleibt das Layout stabil, auch wenn das Bild noch nicht geladen ist.<br>Auch hier ist VS Code hilfreich.</p>



<ul class="wp-block-list">
<li>Platziere den Cursor innerhalb des img-Tags.</li>



<li>Öffne die Befehlspalette (unter Mac mit Cmd + Shift + p, bzw. unter Linux/Windows:  Ctrl + Shift + p).</li>



<li>Tippe in die Befehlspalette: „Emmet: Update Image Size“ (oder einfach nur „size“).</li>



<li>Emmet ermittelt automatisch die Breite und Höhe des Bildes und schreibt sie in das img-Tag.</li>
</ul>



<h2 class="wp-block-heading">Bilderstellung mit einem Batch-Skript automatisieren</h2>



<p class="wp-block-paragraph">Um mit dem <code>&lt;picture></code>-Element zu arbeiten, benötigst du viele unterschiedliche Versionen eines Bildes in diversen Auflösungen und Dateiformaten. Mit einem <strong>Batch-Skript im Terminal</strong> kannst du die Erstellung dieser Bilder automatisieren. Hier ist ein Beispiel, wie du dir die Arbeit mit ImageMagick oder avifenc erleichtern kannst. Dieses Skript erstellt automatisch verschiedene Versionen des Originalbildes in den Formaten AVIF, WebP und JPEG.<br>Das Skript benötigt Kommandozeilenprogramme wie imageMagick (zum Skalieren und Konvertieren von Bildern), cwebp (WebP-Konvertierung) oder avifenc (AVIF-Konvertierung – aus libavif).<br>Wenn du diese Programme auf deinem Rechner zur Verfügung hast, kannst du die Stapelverarbeitung starten:</p>



<ul class="wp-block-list">
<li><strong>Erstelle ein Batch-Skript</strong>:</li>
</ul>



<p class="wp-block-paragraph">Erstelle eine Text-Datei (zum Beispiel mit dem Namen „Dateiformat-batch.sh“) und füge den folgenden Code ein:</p>



<pre class="wp-block-code"><code>#!/bin/bash

# Ein Skript zur Größen- und Dateiformat-Stapelverarbeitung von Bilddateien.
# Quell- und Zielverzeichnis definieren
SOURCE_DIR="./input_bilder"   # Hier den Ordner mit den Originalbildern anpassen
OUTPUT_DIR="./output_bilder"   # Zielverzeichnis für die konvertierten Bilder

# Falls das Ausgabe-Verzeichnis nicht existiert, erstelle es
mkdir -p "$OUTPUT_DIR"

# Definiere die gewünschten Breiten
SIZES=(400 800 1024 1600 2048 3840)

# Durchlaufe alle Bilder im Quellordner
for file in "$SOURCE_DIR"/*.{jpg,jpeg,png,webp,avif}; do
    # Prüfe, ob die Datei existiert (damit keine Fehler auftreten)
    &#91; -e "$file" ] || continue

    # Extrahiere den Dateinamen und die ursprüngliche Breite
    filename=$(basename "$file")
    width=$(identify -format "%w" "$file")

    # Originalgröße in hoher Qualität speichern
    output_name="${filename%.*}-original"

    # Original als JPEG (Qualität 90)
    convert "$file" -quality 90 "$OUTPUT_DIR/${output_name}.jpg"

    # Original als WebP (Qualität 90)
    cwebp -q 90 "$file" -o "$OUTPUT_DIR/${output_name}.webp"

    # Original als AVIF
    avifenc -j all -s 4 --min 0 --max 63 -a cq-level=0 -a tune=ssim "$file" "$OUTPUT_DIR/${output_name}.avif"


    # Zu kleine Bilder nicht künstlich hochskalieren. Falls das Original-Bild kleiner als 1025px ist, speichere es nur mit 400px, 800px und 1024px.
    if &#91; "$width" -lt 1025 ]; then
        selected_sizes=(400 800 1024)
    else
        selected_sizes=("${SIZES&#91;@]}")  # Nutze alle Größen
    fi

    # Erstelle für jede definierte Größe eine Version
    for size in "${selected_sizes&#91;@]}"; do
        output_name="${filename%.*}-${size}"
        
        # Verlustfreies PNG
	convert "$file" -resize "${size}x" -define png:compression-level=9 -quality 100 "$OUTPUT_DIR/${output_name}.png"


        # Erstelle verkleinertes JPEG (Qualität 80)
        convert "$file" -resize "${size}x" -quality 80 "$OUTPUT_DIR/${output_name}.jpg"

        # Erstelle WebP (Qualität 85)
        cwebp -q 85 "$OUTPUT_DIR/${output_name}.png" -o "$OUTPUT_DIR/${output_name}.webp"
        
	# Erstelle AVIF (ausgewogene Qualität)
        avifenc -j all -s 4 -a cq-level=20 -a end-usage=q "$OUTPUT_DIR/${output_name}.png" "$OUTPUT_DIR/${output_name}.avif"

    done
done

echo "Bildverarbeitung abgeschlossen!"
</code></pre>



<p class="wp-block-paragraph">Stapelverarbeitung starten:</p>



<ul class="wp-block-list">
<li>Mache das Skript ausführbar: <code>chmod +x Dateiformat-batch.sh</code></li>



<li>Führe das Skript im Terminal deines Betriebssystems aus mit: <code>./Dateiformat-batch.sh</code></li>
</ul>



<h3 class="wp-block-heading">Anpassungsmöglichkeiten</h3>



<p class="wp-block-paragraph">In dem oben stehenden Skript kannst du unter anderem den Pfad zum Quellordner ändern: Setze die Angabe SOURCE_DIR=&#8220;./Bilder&#8220; auf deinen gewünschten Ordner.<br>Du kannst andere Qualitätsstufen wählen: Ändere die -quality Werte bei convert, cwebp oder avifenc.<br>Oder weitere Bildgrößen erstellen: Füge einfach weitere Werte zu SIZES=(400 800 … ) hinzu.</p>



<h2 class="wp-block-heading">Lazy Loading</h2>



<p class="wp-block-paragraph">Neben den bislang besprochenen Techniken gibt es noch weitere Möglichkeiten, die Geschwindigkeit und Usability deiner Website zu verbessern. Lazy Loading beispielsweise ist eine Technik, bei der Bilder erst geladen werden, wenn sie im sichtbaren Bereich des Browsers erscheinen. Dies verbessert die Ladezeiten erheblich, da nicht alle Bilder sofort beim Laden der Seite heruntergeladen werden müssen. Um Lazy Loading zu aktivieren, füge einfach das <code>loading="lazy"</code>-Attribut zu deinem <code>&lt;img&gt;</code>-Tag hinzu:</p>



<pre class="wp-block-code"><code>&lt;!-- WebP-Format --&gt;
   &lt;source type="image/webp" srcset="Bilder/dummy-400.webp 400w,
      Bilder/dummy-770.webp 770w,
      Bilder/dummy-1440.webp 1440w,
      Bilder/dummy-2880.webp 2880w" sizes="(max-width: 768px) 100vw, 50vw"&gt;

&lt;!-- Fallback für ältere Browser (JPEG) --&gt;
   &lt;img src="Bilder/dummy-2880.jpg" srcset="Bilder/dummy-400.jpg 400w,
      Bilder/dummy-770.jpg 770w,
      Bilder/dummy-1440.jpg 1440w,
      Bilder/dummy-2880.jpg 2880w" sizes="(max-width: 768px) 100vw, 50vw" width="2880" height="2880" alt="Alternativtext" loading="lazy"&gt;                       
&lt;/picture&gt;</code></pre>



<h2 class="wp-block-heading">Alternative CDN</h2>



<p class="wp-block-paragraph">Wenn du das Erstellen der Bildvarianten nicht selber vornehmen möchtest, könntest du auch Services wie Image Kit unter <a href="https://imagekit.io/">https://imagekit.io/</a> oder Cloudinary unter <a href="https://cloudinary.com/">https://cloudinary.com/</a> nutzen. Hier kannst du ein hoch aufgelöstes Bild hochladen und anschließend werden dir unterschiedliche Varianten in verschiedenen Auflösung und Dateiformaten automatisch generiert. Das Hosten der Bilder auf solchen CDNs (Content Delivery Networks) kann allerdings Geschwindigkeitseinbußen nach sich ziehen.</p>



<h2 class="wp-block-heading">Weitere Performance-Optimierungen</h2>



<p class="wp-block-paragraph">Mit <strong>Preloading</strong> und <strong>FetchPriority</strong> kannst du Resourcen bevorzugt laden, die beispielsweise im Kopfbereich der Seite „above the fold“ angezeigt werden; siehe <a href="https://developer.mozilla.org/de/docs/Web/API/HTMLImageElement/fetchPriority">https://developer.mozilla.org/de/docs/Web/API/HTMLImageElement/fetchPriority</a> und <a href="https://developer.mozilla.org/de/docs/Web/HTML/Attributes/rel/preload">https://developer.mozilla.org/de/docs/Web/HTML/Attributes/rel/preload</a>.<br><br>Eine weitere Technik wäre <code>decoding="async"</code>: Standardmäßig wird ein Bild im HTML-Element synchron dekodiert. Das bedeutet, dass der Browser die Bilddaten dekodiert, bevor er mit der Anzeige der Seite fortfährt. Wenn du jedoch <strong>decoding=&#8220;async&#8220;</strong> verwendest, wird das Bild asynchron dekodiert. Das bedeutet, dass der Browser die Bilddaten in einem separaten Thread dekodiert, ohne den Hauptthread der Seite zu blockieren. So können andere Aufgaben wie das Rendern der restlichen Seite parallel ablaufen.<br>Wenn du viele oder große Bilder auf deiner Seite hast, kann das asynchrone Dekodieren helfen, die Ladezeiten zu verkürzen und die Gesamtleistung zu verbessern.<br>Allerdings laden moderne Webbrowser Bilder bereits intelligent, so dass diese Optimierungen in der Regel nur einen geringen Effekt haben.</p>



<h2 class="wp-block-heading">Fazit</h2>



<p class="wp-block-paragraph">Durch die Verwendung der richtigen Dateiformate, des <code>&lt;picture></code>-Elements mit <code>srcset</code> und <code>sizes</code>, Lazy Loading, Automatisierungen in Visual Studio Code und Batch-Skripte zur Bilderstellung kannst du sicherstellen, dass deine Bilder schnell laden und auf allen Ausgabegeräten gut aussehen. </p>



<p class="wp-block-paragraph">Ich gebe zu, dass es ein bisschen aufwendiger ist, ein Bild über das picture-Element in eine Webseite einzubinden als nur über das img-Element, aber du wirst hier mit optimierten Ladezeiten, verbesserter Abbildungsqualität auch auf Bildschirmen mit hoher Auflösung und einem benutzerfreundlichen Webauftritt belohnt. Und natürlich trägt die Verbesserung der Ladegeschwindigkeit auch dazu bei, deinen Webauftritt SEO-optimiert, also suchmaschinenfreundlicher zu gestalten.</p>



<h2 class="wp-block-heading">Literaturhinweise</h2>



<p class="wp-block-paragraph">Meine Youtubetutorials zum Thema „Bilder richtig in Webseiten einbetten“ findest du unter <a href="https://www.youtube.com/watch?v=1-vKgWLvNO0">https://www.youtube.com/watch?v=1-vKgWLvNO0</a><br>und zu AVIF-Komprimierung: <a href="https://www.youtube.com/watch?v=O9bifhT8a-4">https://www.youtube.com/watch?v=O9bifhT8a-4</a> <br>Quellcode meiner Beispieldatei aus dem Video: <a href="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/picture-element.html">https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/picture-element.html</a> <br>Bildergalerie mit AVIF-komprimierten Bildern im Vergleich: <a href="https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/Vergleich-Kompression-Qualitaet.html">https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/Vergleich-Kompression-Qualitaet.html</a><br>Gute Artikel zum Thema picture-Element: <a href="https://www.mediaevent.de/html/picture.html
">https://www.mediaevent.de/html/picture.html,<br></a><a href="https://webdesign.tutsplus.com/quick-tip-how-to-use-html5-picture-for-responsive-images--cms-21015t">https://webdesign.tutsplus.com/quick-tip-how-to-use-html5-picture-for-responsive-images&#8211;cms-21015t</a>, <a href="https://developer.mozilla.org/de/docs/Web/HTML/Element/picture">https://developer.mozilla.org/de/docs/Web/HTML/Element/picture</a><br>Blog von Kyle (WDS): <a href="https://blog.webdevsimplified.com/2023-05/responsive-images/">https://blog.webdevsimplified.com/2023-05/responsive-images/</a><br>Batch-processing in GIMP: <a href="https://www.youtube.com/watch?v=lAQtItwKKvo&amp;list=TLPQMTAwMjIwMjWiqx3YoeEEnw&amp;index=1">https://www.youtube.com/watch?v=lAQtItwKKvo</a><br>Batch in Photoshop: <a href="https://www.youtube.com/watch?v=JcXwhrvHu3w&amp;list=TLPQMTAwMjIwMjWiqx3YoeEEnw&amp;index=8">https://www.youtube.com/watch?v=JcXwhrvHu3w </a><br>Batch-processing in Affinity Photo: <a href="https://www.youtube.com/watch?v=4qrQjD_0LyI&amp;list=TLPQMTAwMjIwMjWiqx3YoeEEnw&amp;index=5">https://www.youtube.com/watch?v=4qrQjD_0LyI </a> und <br><a href="https://affinity.help/photo2/de.lproj/index.html?page=pages/Macros_Batch/batchjobs.html&amp;title=Die%20Stapelverarbeitung">https://affinity.help/photo2/de.lproj/index.html?page=pages/Macros_Batch/batchjobs.html&amp;title=Die%20Stapelverarbeitung</a> <br>WordPress-PlugIn (Converter for Media): <a href="https://de.wordpress.org/plugins/webp-converter-for-media/">https://de.wordpress.org/plugins/webp-converter-for-media/</a><br>Online-Konverter für AVIF und andere Dateiformate: <a href="https://squoosh.app/">https://squoosh.app/</a> <br>Auch die freie Online-Bildbearbeitung Photopea exportiert AVIF: <a href="https://www.photopea.com/">https://www.photopea.com/</a><br>Dateiformate im Vergleich: <a href="https://www.mediaevent.de/bilddatenformate-jpg-avif-png-webp/">https://www.mediaevent.de/bilddatenformate-jpg-avif-png-webp/</a><br>Videotutorial „How to Install Homebrew on Mac“ (um Kommandozeilenprogramme zu installieren): <a href="https://www.youtube.com/watch?v=IWJKRmFLn-g">https://www.youtube.com/watch?v=IWJKRmFLn-g</a><br>Terminal / Kommandozeile: <a href="https://www.giga.de/extra/linux/specials/linux-befehle/">https://www.giga.de/extra/linux/specials/linux-befehle/</a>, <a href="https://wiki.ubuntuusers.de/Shell/Befehls%C3%BCbersicht/">https://wiki.ubuntuusers.de/Shell/Befehls%C3%BCbersicht/</a>, macOS-Terminal – Das kleine Einmaleins der Kommandozeile: <a href="https://www.heise.de/ratgeber/Einfuehrung-in-die-macOS-Kommandozeile-Das-kleine-Terminal-Einmaleins-3463440.html">https://www.heise.de/ratgeber/Einfuehrung-in-die-macOS-Kommandozeile-Das-kleine-Terminal-Einmaleins-3463440.html</a>, 7 nützliche CMD Befehle (solltest du kennen): <a href="https://www.youtube.com/watch?v=ZIzXVIq0lIo">https://www.youtube.com/watch?v=ZIzXVIq0lIo</a>, The 50 Most Popular Linux &amp; Terminal Commands &#8211; Full Course for Beginners: <a href="https://www.youtube.com/watch?v=ZtqBQ68cfJc">https://www.youtube.com/watch?v=ZtqBQ68cfJc</a>, Beginner&#8217;s Guide to the Bash Terminal: <a href="https://www.youtube.com/watch?v=oxuRxtrO2Ag">https://www.youtube.com/watch?v=oxuRxtrO2Ag</a>, <a href="https://www.shellbefehle.de/befehle/">https://www.shellbefehle.de/befehle/</a>, <br></p>
]]></content:encoded>
					
					<wfw:commentRss>https://web-einfach-machen.de/Blog/webproduktion/bilder-optimal-fuer-website-aufbereiten/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
