<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Frontend on besserentwickeln.de</title><link>https://besserentwickeln.de/categories/frontend/</link><description>Recent content in Frontend on besserentwickeln.de</description><generator>Hugo -- gohugo.io</generator><language>de</language><copyright>Philipp Tuchardt</copyright><lastBuildDate>Tue, 07 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://besserentwickeln.de/categories/frontend/index.xml" rel="self" type="application/rss+xml"/><item><title>Formulare dauerhaft per DevTools Snippet blockieren</title><link>https://besserentwickeln.de/p/formulare-dauerhaft-per-devtools-snippet-blockieren/</link><pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate><guid>https://besserentwickeln.de/p/formulare-dauerhaft-per-devtools-snippet-blockieren/</guid><description>&lt;p>Manchmal möchte man beim Entwickeln oder Debuggen verhindern, dass ein Formular abgeschickt wird –
ohne jedes Mal den Quellcode anzupassen oder einen Breakpoint zu setzen.
Als DevTools Snippet lässt sich das einmal ablegen und dann nach jedem Seitenladen mit einem
Klick erneut ausführen.&lt;/p>
&lt;h2 id="snippet-anlegen">Snippet anlegen
&lt;/h2>&lt;p>Im Chrome DevTools unter &lt;strong>Sources → Snippets&lt;/strong> ein neues Snippet erstellen und folgenden Code einfügen:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">document&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">addEventListener&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;submit&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nx">e&lt;/span> &lt;span class="p">=&amp;gt;&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">e&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">preventDefault&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">},&lt;/span> &lt;span class="kc">true&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Anschließend mit &lt;strong>Strg + Enter&lt;/strong> (bzw. &lt;strong>Cmd + Enter&lt;/strong>) ausführen.&lt;/p>
&lt;h2 id="warum-das-funktioniert">Warum das funktioniert
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>Global&lt;/strong> – der Listener hängt am &lt;code>document&lt;/code> und greift damit auf alle Formulare der Seite.&lt;/li>
&lt;li>&lt;strong>Capture-Phase (&lt;code>true&lt;/code>)&lt;/strong> – der Listener läuft, bevor der Event die Handler am Formular
selbst erreicht. &lt;code>e.preventDefault()&lt;/code> unterbindet dann das Standardverhalten des Browsers,
also das eigentliche Abschicken bzw. das Neuladen der Seite.&lt;/li>
&lt;/ul>
&lt;p>&lt;code>preventDefault()&lt;/code> stoppt allerdings &lt;strong>nicht&lt;/strong> die weitere Ausbreitung des Events – Handler von
React, Vue &amp;amp; Co. laufen trotzdem noch. Solange die nur den nativen Submit abfangen, ist das
egal. Verschickt ein Framework-Handler die Daten aber selbst per &lt;code>fetch&lt;/code>/&lt;code>XMLHttpRequest&lt;/code>, muss
man die Ausbreitung zusätzlich unterbinden:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">document&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">addEventListener&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;submit&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nx">e&lt;/span> &lt;span class="p">=&amp;gt;&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">e&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">preventDefault&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">e&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">stopImmediatePropagation&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">},&lt;/span> &lt;span class="kc">true&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="vorteil-gegenüber-breakpoints">Vorteil gegenüber Breakpoints
&lt;/h2>&lt;p>Ein Snippet ist schnell ausgeführt, muss nicht jedes Mal neu konfiguriert werden und lässt sich
problemlos erweitern – zum Beispiel um ein &lt;code>console.log&lt;/code>, das die Formulardaten ausgibt:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">document&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">addEventListener&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;submit&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nx">e&lt;/span> &lt;span class="p">=&amp;gt;&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">e&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">preventDefault&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">console&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">log&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Form submit blocked:&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nx">e&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">target&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">},&lt;/span> &lt;span class="kc">true&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>So sieht man sofort, welches Formular betroffen wäre, ohne dass eine Anfrage rausgeht.&lt;/p>
&lt;h2 id="schnelle-alternative-console">Schnelle Alternative: Console
&lt;/h2>&lt;p>Wer das nur einmalig ausprobieren möchte, kann den Code auch direkt in die &lt;strong>Console&lt;/strong> (Tab &lt;strong>Console&lt;/strong>) einfügen und mit Enter bestätigen.
Der Effekt ist identisch. In beiden Fällen ist der Listener nach dem nächsten Seitenneuladen weg –
der Unterschied: Das Snippet bleibt im DevTools gespeichert und lässt sich mit einem Klick erneut
ausführen, während man den Console-Befehl jedes Mal neu einfügen muss.&lt;/p></description></item><item><title>Bootstrap Spacing</title><link>https://besserentwickeln.de/p/bootstrap-spacing/</link><pubDate>Sat, 01 Mar 2025 00:00:00 +0000</pubDate><guid>https://besserentwickeln.de/p/bootstrap-spacing/</guid><description>&lt;h1 id="scss-spacer-in-bootstrap-verstehen">SCSS-Spacer in Bootstrap verstehen
&lt;/h1>&lt;p>Beim Arbeiten mit Bootstrap ist Spacing ein entscheidender Aspekt für gut strukturierte und optisch ansprechende Layouts. Bootstrap bietet ein flexibles System zur Handhabung von Abständen mithilfe von SCSS-Variablen. In diesem Artikel schauen wir uns die &lt;strong>SCSS-Spacer&lt;/strong> in Bootstrap an, wie sie funktionieren und wie du sie effektiv einsetzen kannst.&lt;/p>
&lt;h2 id="was-sind-scss-spacer">Was sind SCSS-Spacer?
&lt;/h2>&lt;p>Spacer in Bootstrap sind vordefinierte Werte für Margins (&lt;code>m-*&lt;/code>-Klassen) und Paddings (&lt;code>p-*&lt;/code>-Klassen). Diese Werte basieren auf der Variable &lt;code>$spacer&lt;/code> und ermöglichen ein konsistentes Spacing-System im gesamten Projekt.&lt;/p>
&lt;p>So definiert Bootstrap den Basis-Spacer:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-scss" data-lang="scss">&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$spacer&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="kt">rem&lt;/span> &lt;span class="k">!default&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="c1">// Standard-Spacer (bei 16px Root-Font-Size also 16px)
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Alle weiteren Abstufungen leitet Bootstrap daraus in der &lt;code>$spacers&lt;/code>-Map ab. Eigene Variablen
wie &lt;code>$spacer-lg&lt;/code> oder &lt;code>$spacer-sm&lt;/code> gibt es in Bootstrap &lt;strong>nicht&lt;/strong> – man arbeitet direkt mit
&lt;code>$spacer&lt;/code> (bzw. Vielfachen davon) und der Map.&lt;/p>
&lt;h2 id="bootstraps-spacers-map">Bootstraps &lt;code>$spacers&lt;/code>-Map
&lt;/h2>&lt;p>Bootstrap nutzt außerdem eine SCSS-Map, um Spacing-Werte dynamisch zu definieren. So sieht das aus:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;span class="lnt">8
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-scss" data-lang="scss">&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$spacers&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">0&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="o">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">1&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nv">$spacer&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mf">.25&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="c1">// 0.25rem (4px)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">2&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nv">$spacer&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mf">.5&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="c1">// 0.5rem (8px)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">3&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nv">$spacer&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="c1">// 1rem (16px)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">4&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nv">$spacer&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="mf">.5&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="c1">// 1.5rem (24px)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">5&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nv">$spacer&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="c1">// 3rem (48px)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">)&lt;/span> &lt;span class="k">!default&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Diese Map ermöglicht es Bootstrap, Utility-Klassen zu erzeugen wie:&lt;/p>
&lt;ul>
&lt;li>&lt;code>.m-1&lt;/code> → &lt;code>margin: .25rem;&lt;/code> (4px)&lt;/li>
&lt;li>&lt;code>.p-3&lt;/code> → &lt;code>padding: 1rem;&lt;/code> (16px)&lt;/li>
&lt;li>&lt;code>.m-5&lt;/code> → &lt;code>margin: 3rem;&lt;/code> (48px)&lt;/li>
&lt;/ul>
&lt;h2 id="wie-man-bootstrap-spacer-in-scss-verwendet">Wie man Bootstrap-Spacer in SCSS verwendet
&lt;/h2>&lt;h3 id="1-spacer">1. &lt;strong>&lt;code>$spacer&lt;/code> direkt verwenden&lt;/strong>
&lt;/h3>&lt;p>Du kannst den &lt;code>$spacer&lt;/code> (bzw. Vielfache davon) direkt in deinen Styles verwenden:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-scss" data-lang="scss">&lt;span class="line">&lt;span class="cl">&lt;span class="nc">.my-section&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">padding&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nv">$spacer&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="c1">// 2rem (32px)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="na">margin-bottom&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nv">$spacer&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mf">.5&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="c1">// 0.5rem (8px)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="2-map-get">2. &lt;strong>&lt;code>map-get&lt;/code> verwenden, um Spacing-Werte abzurufen&lt;/strong>
&lt;/h3>&lt;p>Um Werte dynamisch aus der &lt;code>$spacers&lt;/code>-Map zu holen, nutzt man &lt;code>map-get&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-scss" data-lang="scss">&lt;span class="line">&lt;span class="cl">&lt;span class="nc">.my-box&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">padding&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nf">map-get&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">$spacers&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">);&lt;/span> &lt;span class="c1">// Entspricht $spacer (16px)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="3-dynamische-spacing-klassen-generieren">3. &lt;strong>Dynamische Spacing-Klassen generieren&lt;/strong>
&lt;/h3>&lt;p>Du kannst eine Schleife erstellen, um eigene Spacing-Utility-Klassen zu generieren:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;span class="lnt">8
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-scss" data-lang="scss">&lt;span class="line">&lt;span class="cl">&lt;span class="k">@each&lt;/span> &lt;span class="nv">$key&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="nv">$value&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nv">$spacers&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nc">.custom-m-&lt;/span>&lt;span class="si">#{&lt;/span>&lt;span class="nv">$key&lt;/span>&lt;span class="si">}&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">margin&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nv">$value&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nc">.custom-p-&lt;/span>&lt;span class="si">#{&lt;/span>&lt;span class="nv">$key&lt;/span>&lt;span class="si">}&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">padding&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nv">$value&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Das erzeugt:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-css" data-lang="css">&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">custom-m-1&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="k">margin&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.25&lt;/span>&lt;span class="kt">rem&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">custom-p-3&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="k">padding&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="kt">rem&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="warum-scss-spacer-verwenden">Warum SCSS-Spacer verwenden?
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>Konsistenz&lt;/strong> – Sorgt für einheitliches Spacing im gesamten Projekt.&lt;/li>
&lt;li>&lt;strong>Anpassbarkeit&lt;/strong> – Du kannst die &lt;code>$spacer&lt;/code>-Werte an dein Designsystem anpassen.&lt;/li>
&lt;li>&lt;strong>Effizienz&lt;/strong> – Reduziert repetitiven Code und verbessert die Wartbarkeit.&lt;/li>
&lt;/ul>
&lt;h2 id="fazit">Fazit
&lt;/h2>&lt;p>SCSS-Spacer in Bootstrap bieten eine leistungsstarke Möglichkeit, Abstände effizient zu verwalten. Durch die Verwendung vordefinierter Variablen und Maps kannst du ein konsistentes Design beibehalten und gleichzeitig dein CSS sauber und skalierbar halten. Egal ob direkt in SCSS oder über Bootstraps Utility-Klassen genutzt – Spacer helfen dabei, deinen Layout-Workflow zu vereinfachen.&lt;/p>
&lt;hr>
&lt;p>Brauchst du ein individuelleres Spacing-System? Passe die &lt;code>$spacer&lt;/code>-Variable an die Anforderungen deines Projekts an und erstelle deine eigenen Spacing-Utilities! 🚀&lt;/p></description></item><item><title>SCSS - Padding und Margin verschachteln</title><link>https://besserentwickeln.de/p/scss-padding-und-margin-verschachteln/</link><pubDate>Mon, 03 Feb 2025 00:00:00 +0000</pubDate><guid>https://besserentwickeln.de/p/scss-padding-und-margin-verschachteln/</guid><description>&lt;h1 id="optimiertes-scss-nesting-für-sauberen-und-effizienten-code">Optimiertes SCSS-Nesting für sauberen und effizienten Code
&lt;/h1>&lt;p>Lerne, wie man SCSS-Nesting nutzt, um sauberere und besser strukturierte Styles zu schreiben. Der Standardansatz hält Eigenschaften
organisiert, während Nesting hilft, die Übersichtlichkeit zu bewahren, indem verwandte Styles gruppiert werden. Verbessere Lesbarkeit und Wartbarkeit mit
dieser einfachen SCSS-Technik! 🚀&lt;/p>
&lt;h2 id="standard">Standard
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-scss" data-lang="scss">&lt;span class="line">&lt;span class="cl">&lt;span class="nc">.class&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">background-color&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="no">black&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">padding-top&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="mf">.625&lt;/span>&lt;span class="kt">rem&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">padding-bottom&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="mf">.875&lt;/span>&lt;span class="kt">rem&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="verschachtelt">Verschachtelt
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;span class="lnt">8
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-scss" data-lang="scss">&lt;span class="line">&lt;span class="cl">&lt;span class="nc">.class&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">background-color&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="no">black&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">padding&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">top&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="mf">.625&lt;/span>&lt;span class="kt">rem&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">bottom&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="mf">.875&lt;/span>&lt;span class="kt">rem&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Beide Varianten kompilieren zum selben CSS (&lt;code>padding-top&lt;/code> / &lt;code>padding-bottom&lt;/code>). Die
verschachtelte Schreibweise ist Sass-spezifisch (&amp;ldquo;nested properties&amp;rdquo;) und funktioniert
weiterhin in Dart Sass.&lt;/p></description></item><item><title>HTML - Details Tag</title><link>https://besserentwickeln.de/n/html-details-tag/</link><pubDate>Wed, 27 Jul 2022 00:00:00 +0000</pubDate><guid>https://besserentwickeln.de/n/html-details-tag/</guid><description>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">&amp;lt;details&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;summary&amp;gt;Epcot Center&amp;lt;/summary&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;p&amp;gt;Epcot ist ein Themenpark im Walt Disney World Resort mit spannenden Attraktionen, internationalen Pavillons, preisgekröntem Feuerwerk und saisonalen Sonderveranstaltungen.&amp;lt;/p&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&amp;lt;/details&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item><item><title>Styling zum Head hinzufügen</title><link>https://besserentwickeln.de/n/styling-zum-head-hinzuf%C3%BCgen/</link><pubDate>Thu, 25 Nov 2021 00:00:00 +0000</pubDate><guid>https://besserentwickeln.de/n/styling-zum-head-hinzuf%C3%BCgen/</guid><description>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="kr">const&lt;/span> &lt;span class="nx">addStyle&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">()&lt;/span> &lt;span class="p">=&amp;gt;&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kr">const&lt;/span> &lt;span class="nx">style&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">document&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">createElement&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;style&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">document&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">head&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">style&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nx">styleString&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">=&amp;gt;&lt;/span> &lt;span class="nx">style&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">textContent&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nx">styleString&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">})();&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item><item><title>Icon-Farbe eines img mit src ändern</title><link>https://besserentwickeln.de/n/icon-farbe-eines-img-mit-src-%C3%A4ndern/</link><pubDate>Wed, 29 Sep 2021 00:00:00 +0000</pubDate><guid>https://besserentwickeln.de/n/icon-farbe-eines-img-mit-src-%C3%A4ndern/</guid><description>&lt;p>Da Hugo direktes HTML hier nicht mag. Statt des iFrames jetzt ein
&lt;a class="link" href="https://codepen.io/sosuke/pen/Pjoqqp" target="_blank" rel="noopener"
>Link zum Codepen&lt;/a>.&lt;/p></description></item><item><title>For-Loop</title><link>https://besserentwickeln.de/n/for-loop/</link><pubDate>Fri, 02 Jul 2021 00:00:00 +0000</pubDate><guid>https://besserentwickeln.de/n/for-loop/</guid><description>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="kd">let&lt;/span> &lt;span class="nx">i&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nx">el&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nx">logoInner&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">length&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="nx">i&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="nx">el&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="nx">i&lt;/span>&lt;span class="o">++&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">element&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="nx">i&lt;/span>&lt;span class="p">].&lt;/span>&lt;span class="nx">innerHTML&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;Bing&amp;#39;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item><item><title>JavaScript ausführen, nachdem die Seite vollständig geladen ist</title><link>https://besserentwickeln.de/n/javascript-ausf%C3%BChren-nachdem-die-seite-vollst%C3%A4ndig-geladen-ist/</link><pubDate>Fri, 25 Jun 2021 00:00:00 +0000</pubDate><guid>https://besserentwickeln.de/n/javascript-ausf%C3%BChren-nachdem-die-seite-vollst%C3%A4ndig-geladen-ist/</guid><description>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">window&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">addEventListener&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;load&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="kd">function&lt;/span>&lt;span class="p">(){&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// ....
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="p">});&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;a class="link" href="https://stackoverflow.com/questions/807878/how-to-make-javascript-execute-after-page-load" target="_blank" rel="noopener"
>Quelle&lt;/a>&lt;/p></description></item><item><title>CSS :is() und :where()</title><link>https://besserentwickeln.de/n/css-is-und-where/</link><pubDate>Tue, 16 Mar 2021 00:00:00 +0000</pubDate><guid>https://besserentwickeln.de/n/css-is-und-where/</guid><description>&lt;p>Pseudoklassen, die ich häufiger verwenden sollte:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">/* Wählt jeden Absatz innerhalb eines header-, main-
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">oder footer-Elements aus, der gerade gehovert wird */
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">:is(header, main, footer) p:hover {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">color: red;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cursor: pointer;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">/* Das Obige ist gleichbedeutend mit dem Folgenden */
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">header p:hover,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">main p:hover,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">footer p:hover {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">color: red;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cursor: pointer;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;a class="link" href="https://developer.mozilla.org/de/docs/Web/CSS/:is" target="_blank" rel="noopener"
>Quelle&lt;/a>&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">/* Wählt jeden Absatz innerhalb eines header-, main-
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> oder footer-Elements aus, der gerade gehovert wird */
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">:where(header, main, footer) p:hover {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> color: red;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> cursor: pointer;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">/* Das Obige ist gleichbedeutend mit dem Folgenden */
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">header p:hover,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">main p:hover,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">footer p:hover {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> color: red;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> cursor: pointer;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;a class="link" href="https://developer.mozilla.org/de/docs/Web/CSS/:where" target="_blank" rel="noopener"
>Quelle&lt;/a>&lt;/p></description></item><item><title>Eingabe muss eine Zahl enthalten</title><link>https://besserentwickeln.de/n/eingabe-muss-eine-zahl-enthalten/</link><pubDate>Mon, 15 Jun 2020 00:00:00 +0000</pubDate><guid>https://besserentwickeln.de/n/eingabe-muss-eine-zahl-enthalten/</guid><description>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="kd">function&lt;/span> &lt;span class="nx">validateStreet&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">e&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kr">const&lt;/span> &lt;span class="nx">streetNotice&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">document&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">getElementById&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;streetnotice&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kd">let&lt;/span> &lt;span class="nx">currentvalue&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nx">e&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">value&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kd">let&lt;/span> &lt;span class="nx">outputvalue&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nx">currentvalue&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">search&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sr">/\d/g&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nx">outputvalue&lt;/span> &lt;span class="o">===&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">streetNotice&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">style&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">display&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;block&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span> &lt;span class="k">else&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">streetNotice&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">style&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">display&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;none&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;a class="link" href="https://codepen.io/PT1602/pen/MWKjYqY" target="_blank" rel="noopener"
>Codepen&lt;/a>&lt;/p></description></item><item><title>Destructuring Assignment</title><link>https://besserentwickeln.de/n/destructuring-assignment/</link><pubDate>Tue, 02 Jun 2020 00:00:00 +0000</pubDate><guid>https://besserentwickeln.de/n/destructuring-assignment/</guid><description>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="kr">const&lt;/span> &lt;span class="nx">temps&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="nx">yesterday&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">70&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nx">today&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">71&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nx">tomorrow&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">72&lt;/span>&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kr">const&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="nx">today&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">highToday&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nx">tomorrow&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">highTomorrow&lt;/span>&lt;span class="p">}&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nx">temps&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item><item><title>Zahl aus String extrahieren</title><link>https://besserentwickeln.de/n/zahl-aus-string-extrahieren/</link><pubDate>Fri, 29 May 2020 00:00:00 +0000</pubDate><guid>https://besserentwickeln.de/n/zahl-aus-string-extrahieren/</guid><description>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="kd">let&lt;/span> &lt;span class="nx">txt&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;4br4k 4d4br4&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kd">let&lt;/span> &lt;span class="nx">num&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nx">txt&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">replace&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sr">/\D/g&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">console&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">log&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">num&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;a class="link" href="https://codepen.io/PT1602/pen/zYvVyLB" target="_blank" rel="noopener"
>CodePen&lt;/a>&lt;/p></description></item><item><title>Array-Methoden zum Hinzufügen und Entfernen von Elementen</title><link>https://besserentwickeln.de/p/einige-es6-funktionen/</link><pubDate>Sat, 21 Mar 2020 00:00:00 +0000</pubDate><guid>https://besserentwickeln.de/p/einige-es6-funktionen/</guid><description>&lt;p>Alle folgenden Methoden verändern das Array direkt (sie mutieren es):&lt;/p>
&lt;p>&lt;code>.pop()&lt;/code> entfernt das &lt;strong>letzte&lt;/strong> Element eines Arrays und gibt es zurück.
&lt;code>.shift()&lt;/code> entfernt das &lt;strong>erste&lt;/strong> Element eines Arrays und gibt es zurück.&lt;/p>
&lt;p>&lt;code>.push()&lt;/code> fügt ein Element am &lt;strong>Ende&lt;/strong> des Arrays hinzu und gibt die neue Länge zurück.
&lt;code>.unshift()&lt;/code> fügt ein Element am &lt;strong>Anfang&lt;/strong> des Arrays hinzu und gibt die neue Länge zurück.&lt;/p>
&lt;p>&lt;code>.splice(1, 3)&lt;/code> &lt;strong>entfernt&lt;/strong> ab Index 1 drei Elemente aus dem Array und gibt die entfernten
Elemente als neues Array zurück. Nicht zu verwechseln mit &lt;code>.slice(1, 3)&lt;/code>, das das Array
unverändert lässt und nur eine Kopie des Ausschnitts (Index 1 bis 2) liefert.&lt;/p>
&lt;p>Diese Methoden gehören übrigens nicht zu ES6 – &lt;code>.pop()&lt;/code>, &lt;code>.shift()&lt;/code>, &lt;code>.push()&lt;/code>, &lt;code>.unshift()&lt;/code>
und &lt;code>.splice()&lt;/code> sind schon seit ES3 (1999) Teil von JavaScript.&lt;/p></description></item><item><title>Regex und .match()</title><link>https://besserentwickeln.de/n/regex-und-.match/</link><pubDate>Wed, 11 Mar 2020 00:00:00 +0000</pubDate><guid>https://besserentwickeln.de/n/regex-und-.match/</guid><description>&lt;p>Gestern etwas mit Regex und der match-Funktion gearbeitet. &lt;a class="link" href="https://codepen.io/PT1602/pen/KKpZpRQ" target="_blank" rel="noopener"
>Link&lt;/a> zum Codepen.&lt;/p></description></item><item><title>Prüfen, ob eine URL einen String aus einem Array enthält</title><link>https://besserentwickeln.de/n/pr%C3%BCfen-ob-eine-url-einen-string-aus-einem-array-enth%C3%A4lt/</link><pubDate>Wed, 04 Mar 2020 00:00:00 +0000</pubDate><guid>https://besserentwickeln.de/n/pr%C3%BCfen-ob-eine-url-einen-string-aus-einem-array-enth%C3%A4lt/</guid><description>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="kd">let&lt;/span> &lt;span class="nx">contains&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">false&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kr">const&lt;/span> &lt;span class="nx">array&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;imprint&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;data-protection&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;terms-of-use&amp;#39;&lt;/span>&lt;span class="p">];&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kr">const&lt;/span> &lt;span class="nx">currentUrl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;/imprint&amp;#39;&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">toUpperCase&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// mit window.location.href ersetzen
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">array&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">forEach&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="kd">function&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nx">item&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kd">let&lt;/span> &lt;span class="nx">currentItem&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nx">item&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">toUpperCase&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nx">currentUrl&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">includes&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">currentItem&lt;/span>&lt;span class="p">))&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">contains&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">true&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">});&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">console&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">log&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">contains&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;a class="link" href="https://codepen.io/PT1602/pen/QWbKxQg" target="_blank" rel="noopener"
>CodePen&lt;/a>&lt;/p></description></item></channel></rss>