From 814d068bc4619424bec6feb660ae0420ee821261 Mon Sep 17 00:00:00 2001 From: Florian Otto Date: Wed, 29 Apr 2026 14:23:39 +0200 Subject: [PATCH] Re-Design in prod --- dev/boilerplate.css | 280 ------------- dev/index.html | 42 -- dev/index.php | 120 ------ dev/style.css | 436 -------------------- impressum.php | 112 ++---- index.php | 201 ++++++---- boilerplate.css => old/boilerplate.css | 0 old/impressum.php | 79 ++++ old/index.php | 93 +++++ mett.js => old/mett.js | 0 mett.min.js => old/mett.min.js | 0 mett.min.js.map => old/mett.min.js.map | 0 {dev => old}/respond.min.js | 0 old/style.css | 110 ++++++ respond.min.js | 2 - style.css | 526 ++++++++++++++++++++----- 16 files changed, 868 insertions(+), 1133 deletions(-) delete mode 100644 dev/boilerplate.css delete mode 100644 dev/index.html delete mode 100644 dev/index.php delete mode 100644 dev/style.css rename boilerplate.css => old/boilerplate.css (100%) create mode 100644 old/impressum.php create mode 100644 old/index.php rename mett.js => old/mett.js (100%) rename mett.min.js => old/mett.min.js (100%) rename mett.min.js.map => old/mett.min.js.map (100%) rename {dev => old}/respond.min.js (100%) create mode 100644 old/style.css delete mode 100644 respond.min.js diff --git a/dev/boilerplate.css b/dev/boilerplate.css deleted file mode 100644 index 0ff69ad..0000000 --- a/dev/boilerplate.css +++ /dev/null @@ -1,280 +0,0 @@ -@charset "utf-8"; -/* -/* - * HTML5 ✰ Boilerplate - * - * Das Folgende ist das Ergebnis umfangreicher Nachforschungen zum browserunabhängigen Webdesign. - * Verweise auf die Urheber finden Sie in den Codekommentaren, außerdem ein herzliches Dankeschön an Nicolas Gallagher, Jonathan Neal, - * Kroc Camen und die H5BP-Entwicklergemeinde und das H5BP-Team. - * - * Ausführliche Informationen über diesen CSS-Code gibt's unter h5bp.com/css - * - * Dreamweaver-Modifikationen: - * 1. Auswahlmarkierung auskommentiert - * 2. Abschnitt über Medienabfrage entfernt (wir definieren unsere eigene Medienabfrage in einer gesonderten Datei) - * - * ==|== Normalisieren ====================================================== - */ - - -/* ============================================================================= - HTML5-Anzeigedefinitionen - ========================================================================== */ - -article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block; } -audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; } -audio:not([controls]) { display: none; } -[hidden] { display: none; } - -/* ============================================================================= - Basis - ========================================================================== */ - -/* - * 1. Die Anpassung der Textgröße führt in IE6/7 zu merkwürdigen Resultaten, wenn die Schriftgröße des Bodytexts in em-Einheiten angegeben ist - * 2. Erzwingen einer vertikalen Bildlaufleiste in Nicht-IE-Browsern - * 3. Verhindern der iOS-Textgrößenanpassung beim Ändern der Geräteausrichtung ohne den Benutzerzoom zu deaktivieren: h5bp.com/g - */ - -html { font-size: 100%; overflow-y: scroll; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; } - -body { margin: 0; font-size: medium; line-height: 1.231; } - -body, button, input, select, textarea { font-family: sans-serif; color: #222; } - -/* - * Textschatten in der Auswahlmarkierung entfernen: h5bp.com/i - * Die folgenden Auswahldeklarationen müssen getrennt voneinander erfolgen - * Außerdem: leuchtendes Pink! (Die Hintergrundfarbe kann auch an das Design angepasst werden.) - */ - -/* Dreamweaver: die folgenden Codestellen auskommentieren, wenn die Auswahlmarkierung angepasst werden soll - *::-moz-selection { background: #fe57a1; color: #fff; text-shadow: none; } - *::selection { background: #fe57a1; color: #fff; text-shadow: none; } - */ - -/* ============================================================================= - Hyperlinks - ========================================================================== */ - -a { color: #222; } -a:visited { color: #000; } -a:hover { color: #eb3526; } -a:focus { outline: thin dotted; } - -/* Verbessert in allen Browsern die Lesbarkeit von Hyperlinks, die über die Tabulatortaste fokussiert werden (focus) und von Hyperlinks, auf die der Mauszeiger gerichtet ist (hover): h5bp.com/h */ -a:hover, a:active { outline: 0; } - - -/* ============================================================================= - Typografie - ========================================================================== */ - -abbr[title] { border-bottom: 1px dotted; } - -b, strong { font-weight: bold; } - -blockquote { margin: 1em 40px; } - -dfn { font-style: italic; } - -hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; } - -ins { background: #ff9; color: #000; text-decoration: none; } - -mark { background: #ff0; color: #000; font-style: italic; font-weight: bold; } - -/* Nichtproportionale Schriftfamilie neu deklarieren: h5bp.com/j */ -pre, code, kbd, samp { font-family: monospace, monospace; _font-family: 'courier new', monospace; font-size: 1em; } - -/* In allen Browsern die Lesbarkeit von vorformatiertem Text verbessern */ -pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; } - -q { quotes: none; } -q:before, q:after { content: ""; content: none; } - -small { font-size: 85%; } - -/* Text höher oder tiefer stellen ohne die Zeilenhöhe zu beeinflussen: h5bp.com/k */ -sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } -sup { top: -0.5em; } -sub { bottom: -0.25em; } - - -/* ============================================================================= - Listen - ========================================================================== */ - -ul, ol { margin: 1em 0; padding: 0 0 0 40px; } -dd { margin: 0 0 0 40px; } -nav ul, nav ol { list-style: none; list-style-image: none; margin: 0; padding: 0; } - - -/* ============================================================================= - Eingebetteter Inhalt - ========================================================================== */ - -/* - * 1. Verbessern der Bildqualität beim Skalieren in IE7: h5bp.com/d - * 2. Entfernen der Lücke zwischen Bildern und Rahmen in Bildcontainern: h5bp.com/e - */ - -img { border: 0; -ms-interpolation-mode: bicubic; vertical-align: middle; } - -/* - * Korrekter Überlauf in IE9 nicht verborgen - */ - -svg:not(:root) { overflow: hidden; } - - -/* ============================================================================= - Abbildungen - ========================================================================== */ - -figure { margin: 0; } - - -/* ============================================================================= - Formulare - ========================================================================== */ - -form { margin: 0; } -fieldset { border: 0; margin: 0; padding: 0; } - -/* Festlegen, dass 'label' den Fokus auf das betreffende Forularelement setzt */ -label { cursor: pointer; } - -/* - * 1. Korrekte Farbe wird in IE6/7/8/9 nicht vererbt - * 2. Korrekte Ausrichtung wird in IE6/7 merkwürdig angezeigt - */ - -legend { border: 0; *margin-left: -7px; padding: 0; } - -/* - * 1. Korrekte Schriftgröße wird in keinem der Browser vererbt - * 2. Entfernen von Rändern in FF3/4 S5 Chrome - * 3. Definieren konsistenter vertikaler Ausrichtung für alle Browser - */ - -button, input, select, textarea { font-size: 100%; margin: 0; vertical-align: baseline; *vertical-align: middle; } - -/* - * 1. Für eine Übereinstimmung mit FF3/4 die Zeilenhöhe als normal definieren (im UA-Stylesheet '!important' verwenden) - * 2. Korrekter innerer Abstand wird in IE6/7 merkwürdig angezeigt - */ - -button, input { line-height: normal; *overflow: visible; } - -/* - * In 'table' inneren Abstand wieder einführen, um Überlappungen zu vermeiden und IE6/7-Probleme mit Leerraum zu vermeiden. - */ - -table button, table input { *overflow: auto; } - -/* - * 1. Anzeigen des Handcursors bei klickbaren Formularelementen - * 2. Gestaltung klickbarer Formularelemente in iOS ermöglichen - */ - -button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; -webkit-appearance: button; } - -/* - * Konsistente Größe und Darstellung von Feldern - */ - -input[type="checkbox"], input[type="radio"] { box-sizing: border-box; } -input[type="search"] { -webkit-appearance: textfield; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; } -input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } - -/* - * In FF3/4 innere Auffüllung und Rahmen entfernen: h5bp.com/l - */ - -button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } - -/* - * 1. In IE6/7/8/9 vertikale Standardbildlaufleiste entfernen - * 2. Größenänderung nur in der Vertikale zulassen - */ - -textarea { overflow: auto; vertical-align: top; resize: vertical; } - -/* Farben für die Formularüberprüfung */ -input:valid, textarea:valid { } -input:invalid, textarea:invalid { background-color: #f0dddd; } - - -/* ============================================================================= - Tabellen - ========================================================================== */ - -table { border-collapse: collapse; border-spacing: 0; } -td { vertical-align: top; } - - -/* ==|== Primärstile ======================================================== - Autor: - ========================================================================== */ - - - - - - - - - - - - - - - - -/* ==|== nichtsemantische Helferklassen ======================================== - Definieren Sie Ihre Stile vor dieser Auswahl - ========================================================================== */ - -/* Für den Austausch von Bildern */ -.ir { display: block; border: 0; text-indent: -999em; overflow: hidden; background-color: transparent; background-repeat: no-repeat; text-align: left; direction: ltr; } -.ir br { display: none; } - -/* Vor Bildschirmleseprogrammen und Browsern verbergen: h5bp.com/u */ -.hidden { display: none !important; visibility: hidden; } - -/* Nur visuell verbergen, aber für Bildschirmleseprogramme bereithalten: h5bp.com/v */ -.visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } - -/* Erweitert die Klasse ".visuallyhidden" so, dass das Element bei der Tastaturnavigation den Fokus erhält: h5bp.com/p */ -.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; } - -/* Visuell und vor Bildschirmleseprogrammen verbergen, aber das Layout beibehalten */ -.invisible { visibility: hidden; } - -/* Floats beinhalten: h5bp.com/q */ -.clearfix:before, .clearfix:after { content: ""; display: table; } -.clearfix:after { clear: both; } -.clearfix { zoom: 1; } - - -/* ==|== Druckstile ========================================================== - Druckstile. - Innen, um die erforderliche HTTP-Verbindung zu vermeiden: h5bp.com/r - ========================================================================== */ - - @media print { - * { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important; -ms-filter: none !important; } /* Schwarz druckt schneller: h5bp.com/s */ - a, a:visited { text-decoration: underline; } - a[href]:after { content: " (" attr(href) ")"; } - abbr[title]:after { content: " (" attr(title) ")"; } - .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } /* Keine Bildverweise anzeigen und keine javascript/internal- Hyperlinks */ - pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } - thead { display: table-header-group; } /* h5bp.com/t */ - tr, img { page-break-inside: avoid; } - img { max-width: 100% !important; } - @page { margin: 0.5cm; } - p, h2, h3 { orphans: 3; widows: 3; } - h2, h3 { page-break-after: avoid; } -} diff --git a/dev/index.html b/dev/index.html deleted file mode 100644 index 0b55ceb..0000000 --- a/dev/index.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - Basic HTML Page - - - -
-

nutellarechner

-
- - \ No newline at end of file diff --git a/dev/index.php b/dev/index.php deleted file mode 100644 index 0bef142..0000000 --- a/dev/index.php +++ /dev/null @@ -1,120 +0,0 @@ - Echter Wert) -$werteMap = [ - 1 => 8, - 2 => 15, - 3 => 20, - 4 => 30, - 5 => 40 -]; - -// Initialisierung der Variablen -$ergebnis = null; -$wert1 = 2; // Standardwert für Slider 1 -$wert2_position = 3; // Standard-Position für Slider 2 (entspricht hier der 20) -$echter_wert2 = $werteMap[$wert2_position]; - -// Prüfen, ob das Formular abgeschickt wurde -if ($_SERVER['REQUEST_METHOD'] === 'POST') { - $wert1 = filter_input(INPUT_POST, 'slider1', FILTER_VALIDATE_INT) ?: 1; - - // Wir lesen die Position (1-5) des Sliders aus - $wert2_position = filter_input(INPUT_POST, 'slider2', FILTER_VALIDATE_INT) ?: 1; - - // Zur Sicherheit prüfen, ob die Position in unserem Array existiert - if (array_key_exists($wert2_position, $werteMap)) { - $echter_wert2 = $werteMap[$wert2_position]; - } else { - $echter_wert2 = $werteMap[1]; // Fallback auf den ersten Wert - } - - // Die beiden echten Werte multiplizieren - $ergebnis = $wert1 * $echter_wert2; -} -?> - - - - - - - nutellarechner - - - - - -
-

nutellarechner

-

Für jede Nuss-Nougat-Creme geeignet.

- -
-
- - -
- -
- - -
- - -
- - -
- Ergebnis: Du brauchst - Gramm Nutella. -
- - -

Ich möchte lieber:

-
- -
-
- - - - - - - - \ No newline at end of file diff --git a/dev/style.css b/dev/style.css deleted file mode 100644 index 935d955..0000000 --- a/dev/style.css +++ /dev/null @@ -1,436 +0,0 @@ -/* ========================================================================== - 1. CSS Variablen (Custom Properties) - ========================================================================== */ -:root { - /* Farben */ - --color-primary: #222222; - --color-secondary: #eb3526; - --color-tertiary: #f7c66d; - --color-background: #7a381e; - --color-text: #333333; - --color-text-light: #666666; - --color-text-white: #ffffff; - - /* Typografie */ - --font-family-base: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; - --font-size-base: 16px; - --font-size-title: 54px; - --line-height-base: 1.5; - - /* Abstände (Spacing) */ - --spacing-sm: 0.5rem; - --spacing-md: 1rem; - --spacing-lg: 2rem; - - /* Radien */ - --border-radius: 4px; -} - -/* ========================================================================== - 2. Basis Reset & Normierung - ========================================================================== */ -*, -*::before, -*::after { - box-sizing: border-box; /* Verhindert, dass Padding/Border die Breite verändern */ - margin: 0; - padding: 0; -} - -html { - font-size: var(--font-size-base); - scroll-behavior: smooth; -} - -body { - font-family: var(--font-family-base); - color: var(--color-text); - background-color: var(--color-background); - line-height: var(--line-height-base); - -webkit-font-smoothing: antialiased; -} - -footer { - width: 100%; - margin-top: var(--spacing-lg); - text-align: center; -} - -footer a { - text-decoration: none; - color: var(--color-tertiary); -} - -/* Responsives Verhalten für Medien */ -img, -picture, -video, -canvas, -svg { - display: block; - max-width: 100%; - height: auto; -} - -/* ========================================================================== - 3. Grundlegende Typografie - ========================================================================== */ -h1 { - margin-bottom: var(--spacing-sm); - line-height: 1.2; - color: var(--color-primary); - text-align: center; - font-size: var(--font-size-title); -} - -h2, -h3, -h4, -h5, -h6 { - margin-bottom: var(--spacing-md); - line-height: 1.2; - color: var(--color-primary); - text-align: center; -} - -p { - margin-bottom: var(--spacing-md); -} - -a { - color: var(--color-primary); - text-decoration: none; - transition: color 0.3s ease; -} - -a:hover { - text-decoration: underline; -} - -label { - display: block; - margin-bottom: var(--spacing-sm); - font-weight: bold; - color: var(--color-primary); -} - -nav { - display: block; -} - -.span-dark { - color: var(--color-primary); -} - -.span-red { - color: var(--color-secondary); -} - -.slogan { - color: var(--color-text-light); - font-style: italic; - font-size: small; - text-align: center; - margin-top: 0; - margin-bottom: var(--spacing-lg); -} - -.disclaimer { - color: var(--color-text); - background: var(--color-tertiary); - font-style: italic; - font-size: small; - text-align: center; - margin-top: 0; - margin-bottom: var(--spacing-lg); -} - -.value-display { - color: var(--color-secondary); - font-weight: bold; -} - -.result { - margin-top: var(--spacing-lg); - padding: var(--spacing-md); - background-color: var(--color-tertiary); - border-radius: var(--border-radius); - color: var(--color-primary); - font-size: 1.25rem; - text-align: center; -} - -.werbung-title { - width: 90%; - margin-left: 5%; - margin-right: 5%; - margin-top: var(--spacing-lg); - padding: var(--spacing-md); - border-radius: var(--border-radius); - color: var(--color-text); - font-size: 1rem; - text-align: center; -} - -.werbung-buttons { - display: flex; - justify-content: center; - gap: var(--spacing-md); - margin-top: var(--spacing-md); -} - -/* ========================================================================== - 4. Layout Buttons, Forms & Slider - ========================================================================== */ -.button-calc { - display: block; - margin: 0 auto; - padding: 0.6em 2em; - border: 1px solid transparent; - box-sizing: border-box; - outline: none; - color: var(--color-text); - background: var(--color-tertiary); - font-size: large; - cursor: pointer; - position: relative; - z-index: 0; - border-radius: var(--border-radius); - -webkit-user-select: none; - user-select: none; - touch-action: manipulation; -} - -.button-calc:before { - content: ""; - background: linear-gradient( - 45deg, - var(--color-background), - var(--color-secondary), - var(--color-tertiary), - var(--color-text-white) - ); - position: absolute; - top: -2px; - left: -2px; - background-size: 400%; - z-index: -1; - -webkit-filter: blur(5px); - filter: blur(5px); - width: calc(100% + 4px); - height: calc(100% + 4px); - animation: glowing-button-calc 20s linear infinite; - transition: opacity 0.5s ease-in-out; - border-radius: var(--border-radius); -} - -@keyframes glowing-button-calc { - 0% { - background-position: 0 0; - } - 50% { - background-position: 400% 0; - } - 100% { - background-position: 0 0; - } -} - -.button-calc:after { - z-index: -1; - content: ""; - position: absolute; - width: 100%; - height: 100%; - background: var(--color-tertiary); - left: 0; - top: 0; - border-radius: var(--border-radius); -} - -.button-calc:hover { - background: var(--color-tertiary); - color: var(--color-secondary); - border: 1px solid var(--color-secondary); -} - -.button-mett { - display: block; - margin: 0 auto; - padding: 0.6em 2em; - border: 1px solid transparent; - box-sizing: border-box; - outline: none; - color: #fffae8; - background: #cd7569; - cursor: pointer; - position: relative; - z-index: 0; - border-radius: var(--border-radius); -} - -.button-mett:hover { - color: #cd7569; - background-color: #fffae8; - border: 1px solid #fffae8; -} - -.button-nudeln { - display: block; - margin: 0 auto; - padding: 0.6em 2em; - border: 1px solid transparent; - box-sizing: border-box; - outline: none; - color: #fdbf5b; - background: #182132; - cursor: pointer; - position: relative; - z-index: 0; - border-radius: var(--border-radius); -} - -.button-nudeln:hover { - color: #182132; - background-color: #fdbf5b; - border: 1px solid #182132; -} - -.button-burger { - display: block; - margin: 0 auto; - padding: 0.6em 2em; - border: 1px solid transparent; - box-sizing: border-box; - outline: none; - color: orange; - background: #221600; - cursor: pointer; - position: relative; - z-index: 0; - border-radius: var(--border-radius); -} - -.button-burger:hover { - color: #221600; - background-color: orange; - border: 1px solid #221600; -} - -.form-group { - margin-bottom: var(--spacing-lg); -} - -input[type="range"] { - margin: 0 5%; - width: 90%; - accent-color: var(--color-secondary); -} - -/* ========================================================================== - 5. Layout Listen - ========================================================================== */ -ul, -ol { - margin: 1em 0; - padding: 0 0 0 40px; -} - -dd { - margin: 0 0 0 40px; -} - -nav ul, -nav ol { - list-style: none; - list-style-image: none; - margin: 0; - padding: 0; -} - -/* ========================================================================== - 6. Layout Container - ========================================================================== */ -.container { - width: 100%; - height: 776px; - padding-top: 100px; - padding-right: 15px; - padding-left: 15px; - margin-top: var(--spacing-md); - margin-right: auto; - margin-left: auto; - background-image: url('data:image/svg+xml,'); - background-repeat: no-repeat; - background-position: center top; -} - -/* Grid-Beispiel (Flexbox) */ -.row { - display: flex; - flex-wrap: wrap; - margin-right: -15px; - margin-left: -15px; -} - -.col { - flex: 1 0 100%; /* Nimmt auf Mobilgeräten die volle Breite ein */ - padding-right: 15px; - padding-left: 15px; -} - -/* ========================================================================== - 7. Media Queries (Mobile First) - ========================================================================== */ - -/* --- Kleine Geräte (Smartphones im Querformat, ab 576px) --- */ -@media (min-width: 576px) { - .container { - max-width: 809px; - } -} - -/* --- Mittlere Geräte (Tablets, ab 768px) --- */ -@media (min-width: 768px) { - .container { - max-width: 809px; - } - - /* Beispiel: Spalten stehen nebeneinander ab Tablet-Größe */ - .col { - flex: 1 0 50%; /* Zwei Spalten nebeneinander */ - } -} - -/* --- Große Geräte (Desktops, ab 992px) --- */ -@media (min-width: 992px) { - .container { - max-width: 809px; - } - - .col { - flex: 1; /* Alle Spalten verteilen sich gleichmäßig */ - } -} - -@media (min-height: 920px) { - footer { - position: fixed; - bottom: 0px; - } -} - -/* --- Sehr große Geräte (Große Desktops, ab 1200px) --- */ -@media (min-width: 1200px) { - .container { - max-width: 809px; - } -} - -/* --- Extra große Geräte (Ultrawide, ab 1400px) --- */ -@media (min-width: 1400px) { - .container { - max-width: 809px; - } -} diff --git a/impressum.php b/impressum.php index 816500e..437bda2 100644 --- a/impressum.php +++ b/impressum.php @@ -1,79 +1,41 @@ - - - - - - - + + + - - - - - - - - - -Nutellarechner - - - - + + + nutellarechner | Impressum + + -
-
-

Impressum

Angaben gemäß § 5 TMG

Florian Otto
-Hammerweg 37
-59929 Brilon-Wald
-

Vertreten durch:
-Florian Otto
-

Kontakt:
-
-1692
-1692

-

Haftungsausschluss:

Haftung für Inhalte

-Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.

Haftung für Links

-Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.

Urheberrecht

-Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind nur für den privaten, nicht kommerziellen Gebrauch gestattet. Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.

Datenschutz

-Die Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf unseren Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder eMail-Adressen) erhoben werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben.
-Wir weisen darauf hin, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich.
-Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails, vor.
-

- -
-
- +
+

Impressum

+

Angaben gemäß § 5 TMG

+

Florian Otto
+ Hammerweg 37
+ 59929 Brilon-Wald
+

+

Vertreten durch:

+

Florian Otto

+

Kontakt:

+


+ 1692
+ 1692
+

+

Haftungsausschluss:

+

Haftung für Inhalte

+

Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.

+

Haftung für Links

+

Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.

+

Urheberrecht

+

Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind nur für den privaten, nicht kommerziellen Gebrauch gestattet. Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.

+

Datenschutz

+

Die Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf unseren Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder E-Mail-Adressen) erhoben werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben.
+ Wir weisen darauf hin, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich.
+ Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails, vor.

+

Quelle: eRecht24 Impressum Generator

+
- + + \ No newline at end of file diff --git a/index.php b/index.php index 04ca93c..a09a82d 100644 --- a/index.php +++ b/index.php @@ -1,93 +1,120 @@ - - - - - - - - - - - - - - - - - -Nutellarechner - - - - - - -
-
-

nutellarechner.de
-(Funktioniert auch für Nusspli ;) )

-

Brötchenhälften: -
- Wie dick schmierst du? - -
-
- -

- -

Echter Wert) +$werteMap = [ + 1 => 8, + 2 => 15, + 3 => 20, + 4 => 30, + 5 => 40 +]; - if (!empty($_POST["submit"])) - { - $_zahl1 = $_POST["bread"]; - $_rz = $_POST["menge"]; +// Initialisierung der Variablen +$ergebnis = null; +$wert1 = 2; // Standardwert für Slider 1 +$wert2_position = 3; // Standard-Position für Slider 2 (entspricht hier der 20) +$echter_wert2 = $werteMap[$wert2_position]; - if($_rz == "normal") $c = $_zahl1 * 15; - if($_rz == "viel") $c = $_zahl1 * 25; - if($_rz == "sviel") $c = $_zahl1 * 40; - if($_rz == "wenig") $c = $_zahl1 * 8; - if($_rz == "vegan") $c = $_zahl1 * 0; +// Prüfen, ob das Formular abgeschickt wurde +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $wert1 = filter_input(INPUT_POST, 'slider1', FILTER_VALIDATE_INT) ?: 1; - echo "Für ". $_zahl1/2 . " Brötchen brauchst Du ". $c ."g Nutella."; - } + // Wir lesen die Position (1-5) des Sliders aus + $wert2_position = filter_input(INPUT_POST, 'slider2', FILTER_VALIDATE_INT) ?: 1; + + // Zur Sicherheit prüfen, ob die Position in unserem Array existiert + if (array_key_exists($wert2_position, $werteMap)) { + $echter_wert2 = $werteMap[$wert2_position]; + } else { + $echter_wert2 = $werteMap[1]; // Fallback auf den ersten Wert + } + + // Die beiden echten Werte multiplizieren + $ergebnis = $wert1 * $echter_wert2; +} ?> -

-

-
-Ich will lieber Mett! -
-

-
-
- + + + + + + + nutellarechner + + + + + +
+

nutellarechner

+

Für jede Nuss-Nougat-Creme geeignet.

+ +
+
+ + +
+ +
+ + +
+ + +
+ + +
+ Ergebnis: Du brauchst + Gramm Nutella. +
+ + +

Ich möchte lieber:

+
+ +
+
+ + + + + - + + \ No newline at end of file diff --git a/boilerplate.css b/old/boilerplate.css similarity index 100% rename from boilerplate.css rename to old/boilerplate.css diff --git a/old/impressum.php b/old/impressum.php new file mode 100644 index 0000000..816500e --- /dev/null +++ b/old/impressum.php @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + +Nutellarechner + + + + + + +
+
+

Impressum

Angaben gemäß § 5 TMG

Florian Otto
+Hammerweg 37
+59929 Brilon-Wald
+

Vertreten durch:
+Florian Otto
+

Kontakt:
+
+1692
+1692

+

Haftungsausschluss:

Haftung für Inhalte

+Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.

Haftung für Links

+Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.

Urheberrecht

+Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind nur für den privaten, nicht kommerziellen Gebrauch gestattet. Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.

Datenschutz

+Die Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf unseren Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder eMail-Adressen) erhoben werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben.
+Wir weisen darauf hin, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich.
+Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails, vor.
+

+ +
+
+ + + diff --git a/old/index.php b/old/index.php new file mode 100644 index 0000000..04ca93c --- /dev/null +++ b/old/index.php @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + +Nutellarechner + + + + + + +
+
+

nutellarechner.de
+(Funktioniert auch für Nusspli ;) )

+

Brötchenhälften: +
+ Wie dick schmierst du? + +
+
+ +

+ +

+ +

+

+
+Ich will lieber Mett! +
+

+
+
+ + + diff --git a/mett.js b/old/mett.js similarity index 100% rename from mett.js rename to old/mett.js diff --git a/mett.min.js b/old/mett.min.js similarity index 100% rename from mett.min.js rename to old/mett.min.js diff --git a/mett.min.js.map b/old/mett.min.js.map similarity index 100% rename from mett.min.js.map rename to old/mett.min.js.map diff --git a/dev/respond.min.js b/old/respond.min.js similarity index 100% rename from dev/respond.min.js rename to old/respond.min.js diff --git a/old/style.css b/old/style.css new file mode 100644 index 0000000..4c9f8a6 --- /dev/null +++ b/old/style.css @@ -0,0 +1,110 @@ +@charset "utf-8"; +/* Einfache fließende Medien + Hinweis: Für fließende Medien müssen Sie die Attribute 'height' und 'width' des Medium aus dem HTML-Code entfernen + http://www.alistapart.com/articles/fluid-images/ +*/ +img, object, embed, video { + max-width: 100%; +} +/* IE 6 unterstützt keine maximale Breite, verwenden Sie daher eine Standardbreite von 100% */ +.ie6 img { + width:100%; +} + +/* + Dreamweaver-Eigenschaften für fließende Raster + ---------------------------------- + dw-num-cols-mobile: 5; + dw-num-cols-tablet: 8; + dw-num-cols-desktop: 10; + dw-gutter-percentage: 25; + + Idee durch den Artikel "Responsive Web Design" von Ethan Marcotte + http://www.alistapart.com/articles/responsive-web-design + + und "Golden Grid System" von Joni Korpi + http://goldengridsystem.com/ +*/ + +/* Layout für Mobilgeräte: 480 px oder weniger. */ + +.gridContainer { + margin-left: auto; + margin-right: auto; + width: 87.36%; + padding-left: 1.82%; + padding-right: 1.82%; +} +#LayoutDiv1 { + clear: both; + float: left; + margin-left: 0; + width: 100%; + display: block; +} +#footer { +} +footer { + width: 100%; + position: fixed; + bottom: 0px; +} + +.zeroMargin_mobile { +margin-left: 0; +} +.hide_mobile { +display: none; +} + +/* Layout für Tablet-PCs: 481 bis 768 px. Erbt Stile vom: Layout für Mobilgeräte. */ + +@media only screen and (min-width: 481px) { +.gridContainer { + width: 90.675%; + padding-left: 1.1625%; + padding-right: 1.1625%; +} +#LayoutDiv1 { + clear: both; + float: left; + margin-left: 0; + width: 100%; + display: block; +} +#footer { +} +.hide_tablet { +display: none; +} +.zeroMargin_tablet { +margin-left: 0; +} +} + +/* Desktoplayout: 769 bis maximal 1232 px. Erbt Stile von: den Layouts für Mobilgeräte und Tablet-PCs. */ + +@media only screen and (min-width: 769px) { +.gridContainer { + width: 88.2%; + max-width: 1232px; + padding-left: 0.9%; + padding-right: 0.9%; + margin: auto; +} +#LayoutDiv1 { + clear: both; + float: left; + margin-left: 0; + width: 100%; + display: block; +} +#footer { +} +.zeroMargin_desktop { +margin-left: 0; +} +.hide_desktop { +display: none; +} +} diff --git a/respond.min.js b/respond.min.js deleted file mode 100644 index b7fe2f4..0000000 --- a/respond.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! Respond.js v1.0.1pre: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */ -(function(e,h){e.respond={};respond.update=function(){};respond.mediaQueriesSupported=h;if(h){return}var u=e.document,r=u.documentElement,i=[],k=[],p=[],o={},g=30,f=u.getElementsByTagName("head")[0]||r,b=f.getElementsByTagName("link"),d=[],a=function(){var B=b,w=B.length,z=0,y,x,A,v;for(;z=F.minw)&&(!F.maxw||F.maxw&&D<=F.maxw)){if(!z[F.media]){z[F.media]=[]}z[F.media].push(k[F.rules])}}for(var y in p){if(p[y]&&p[y].parentNode===f){f.removeChild(p[y])}}for(var y in z){var G=u.createElement("style"),A=z[y].join("\n");G.type="text/css";G.media=y;if(G.styleSheet){G.styleSheet.cssText=A}else{G.appendChild(u.createTextNode(A))}C.appendChild(G);p.push(G)}f.insertBefore(C,B.nextSibling)},n=function(v,x){var w=c();if(!w){return}w.open("GET",v,true);w.onreadystatechange=function(){if(w.readyState!=4||w.status!=200&&w.status!=304){return}x(w.responseText)};if(w.readyState==4){return}w.send(null)},c=(function(){var v=false;try{v=new XMLHttpRequest()}catch(w){v=new ActiveXObject("Microsoft.XMLHTTP")}return function(){return v}})();a();respond.update=a;function s(){j(true)}if(e.addEventListener){e.addEventListener("resize",s,false)}else{if(e.attachEvent){e.attachEvent("onresize",s)}}})(this,(function(f){if(f.matchMedia){return true}var e,i=document,c=i.documentElement,g=c.firstElementChild||c.firstChild,h=!i.body,d=i.body||i.createElement("body"),b=i.createElement("div"),a="only all";b.id="mq-test-1";b.style.cssText="position:absolute;top:-99em";d.appendChild(b);b.innerHTML='_';if(h){c.insertBefore(d,g)}b.removeChild(b.firstChild);e=b.offsetWidth==9;if(h){c.removeChild(d)}else{d.removeChild(b)}return e})(this)); \ No newline at end of file diff --git a/style.css b/style.css index 4c9f8a6..6971bb5 100644 --- a/style.css +++ b/style.css @@ -1,110 +1,454 @@ -@charset "utf-8"; -/* Einfache fließende Medien - Hinweis: Für fließende Medien müssen Sie die Attribute 'height' und 'width' des Medium aus dem HTML-Code entfernen - http://www.alistapart.com/articles/fluid-images/ -*/ -img, object, embed, video { - max-width: 100%; -} -/* IE 6 unterstützt keine maximale Breite, verwenden Sie daher eine Standardbreite von 100% */ -.ie6 img { - width:100%; +/* ========================================================================== + 1. CSS Variablen (Custom Properties) + ========================================================================== */ +:root { + /* Farben */ + --color-primary: #222222; + --color-secondary: #eb3526; + --color-tertiary: #f7c66d; + --color-background: #7a381e; + --color-text: #333333; + --color-text-light: #666666; + --color-text-white: #ffffff; + + /* Typografie */ + --font-family-base: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + --font-size-base: 16px; + --font-size-title: 54px; + --line-height-base: 1.5; + + /* Abstände (Spacing) */ + --spacing-sm: 0.5rem; + --spacing-md: 1rem; + --spacing-lg: 2rem; + + /* Radien */ + --border-radius: 4px; } -/* - Dreamweaver-Eigenschaften für fließende Raster - ---------------------------------- - dw-num-cols-mobile: 5; - dw-num-cols-tablet: 8; - dw-num-cols-desktop: 10; - dw-gutter-percentage: 25; - - Idee durch den Artikel "Responsive Web Design" von Ethan Marcotte - http://www.alistapart.com/articles/responsive-web-design - - und "Golden Grid System" von Joni Korpi - http://goldengridsystem.com/ -*/ +/* ========================================================================== + 2. Basis Reset & Normierung + ========================================================================== */ +*, +*::before, +*::after { + box-sizing: border-box; /* Verhindert, dass Padding/Border die Breite verändern */ + margin: 0; + padding: 0; +} -/* Layout für Mobilgeräte: 480 px oder weniger. */ +html { + font-size: var(--font-size-base); + scroll-behavior: smooth; +} -.gridContainer { - margin-left: auto; - margin-right: auto; - width: 87.36%; - padding-left: 1.82%; - padding-right: 1.82%; -} -#LayoutDiv1 { - clear: both; - float: left; - margin-left: 0; - width: 100%; - display: block; -} -#footer { +body { + font-family: var(--font-family-base); + color: var(--color-text); + background-color: var(--color-background); + line-height: var(--line-height-base); + -webkit-font-smoothing: antialiased; } + footer { - width: 100%; - position: fixed; - bottom: 0px; + width: 100%; + margin-top: var(--spacing-lg); + text-align: center; } -.zeroMargin_mobile { -margin-left: 0; -} -.hide_mobile { -display: none; +footer a { + text-decoration: none; + color: var(--color-tertiary); } -/* Layout für Tablet-PCs: 481 bis 768 px. Erbt Stile vom: Layout für Mobilgeräte. */ - -@media only screen and (min-width: 481px) { -.gridContainer { - width: 90.675%; - padding-left: 1.1625%; - padding-right: 1.1625%; -} -#LayoutDiv1 { - clear: both; - float: left; - margin-left: 0; - width: 100%; - display: block; -} -#footer { -} -.hide_tablet { -display: none; -} -.zeroMargin_tablet { -margin-left: 0; -} +/* Responsives Verhalten für Medien */ +img, +picture, +video, +canvas, +svg { + display: block; + max-width: 100%; + height: auto; } -/* Desktoplayout: 769 bis maximal 1232 px. Erbt Stile von: den Layouts für Mobilgeräte und Tablet-PCs. */ +/* ========================================================================== + 3. Grundlegende Typografie + ========================================================================== */ +h1 { + margin-bottom: var(--spacing-sm); + line-height: 1.2; + color: var(--color-primary); + text-align: center; + font-size: var(--font-size-title); +} -@media only screen and (min-width: 769px) { -.gridContainer { - width: 88.2%; - max-width: 1232px; - padding-left: 0.9%; - padding-right: 0.9%; - margin: auto; +h2, +h3, +h4, +h5, +h6 { + margin-bottom: var(--spacing-md); + line-height: 1.2; + color: var(--color-primary); + text-align: left; } -#LayoutDiv1 { - clear: both; - float: left; - margin-left: 0; - width: 100%; - display: block; + +p { + margin-bottom: var(--spacing-md); } -#footer { + +a { + color: var(--color-primary); + text-decoration: none; + transition: color 0.3s ease; } -.zeroMargin_desktop { -margin-left: 0; + +a:hover { + text-decoration: underline; } -.hide_desktop { -display: none; + +label { + display: block; + margin-bottom: var(--spacing-sm); + font-weight: bold; + color: var(--color-primary); } + +nav { + display: block; +} + +.span-dark { + color: var(--color-primary); +} + +.span-red { + color: var(--color-secondary); +} + +.slogan { + color: var(--color-text-light); + font-style: italic; + font-size: small; + text-align: center; + margin-top: 0; + margin-bottom: var(--spacing-lg); +} + +.disclaimer { + color: var(--color-text); + background: var(--color-tertiary); + font-style: italic; + font-size: small; + text-align: center; + margin-top: 0; + margin-bottom: var(--spacing-lg); +} + +.value-display { + color: var(--color-secondary); + font-weight: bold; +} + +.result { + margin-top: var(--spacing-lg); + padding: var(--spacing-md); + background-color: var(--color-tertiary); + border-radius: var(--border-radius); + color: var(--color-primary); + font-size: 1.25rem; + text-align: center; +} + +.werbung-title { + width: 90%; + margin-left: 5%; + margin-right: 5%; + margin-top: var(--spacing-lg); + padding: var(--spacing-md); + border-radius: var(--border-radius); + color: var(--color-text); + font-size: 1rem; + text-align: center; +} + +.werbung-buttons { + display: flex; + justify-content: center; + gap: var(--spacing-md); + margin-top: var(--spacing-md); +} + +/* ========================================================================== + 4. Layout Buttons, Forms & Slider + ========================================================================== */ +.button-calc { + display: block; + margin: 0 auto; + padding: 0.6em 2em; + border: 1px solid transparent; + box-sizing: border-box; + outline: none; + color: var(--color-text); + background: var(--color-tertiary); + font-size: large; + cursor: pointer; + position: relative; + z-index: 0; + border-radius: var(--border-radius); + -webkit-user-select: none; + user-select: none; + touch-action: manipulation; +} + +.button-calc:before { + content: ""; + background: linear-gradient( + 45deg, + var(--color-background), + var(--color-secondary), + var(--color-tertiary), + var(--color-text-white) + ); + position: absolute; + top: -2px; + left: -2px; + background-size: 400%; + z-index: -1; + -webkit-filter: blur(5px); + filter: blur(5px); + width: calc(100% + 4px); + height: calc(100% + 4px); + animation: glowing-button-calc 20s linear infinite; + transition: opacity 0.5s ease-in-out; + border-radius: var(--border-radius); +} + +@keyframes glowing-button-calc { + 0% { + background-position: 0 0; + } + 50% { + background-position: 400% 0; + } + 100% { + background-position: 0 0; + } +} + +.button-calc:after { + z-index: -1; + content: ""; + position: absolute; + width: 100%; + height: 100%; + background: var(--color-tertiary); + left: 0; + top: 0; + border-radius: var(--border-radius); +} + +.button-calc:hover { + background: var(--color-tertiary); + color: var(--color-secondary); + border: 1px solid var(--color-secondary); +} + +.button-mett { + display: block; + margin: 0 auto; + padding: 0.6em 2em; + border: 1px solid transparent; + box-sizing: border-box; + outline: none; + color: #fffae8; + background: #cd7569; + cursor: pointer; + position: relative; + z-index: 0; + border-radius: var(--border-radius); +} + +.button-mett:hover { + color: #cd7569; + background-color: #fffae8; + border: 1px solid #fffae8; +} + +.button-nudeln { + display: block; + margin: 0 auto; + padding: 0.6em 2em; + border: 1px solid transparent; + box-sizing: border-box; + outline: none; + color: #fdbf5b; + background: #182132; + cursor: pointer; + position: relative; + z-index: 0; + border-radius: var(--border-radius); +} + +.button-nudeln:hover { + color: #182132; + background-color: #fdbf5b; + border: 1px solid #182132; +} + +.button-burger { + display: block; + margin: 0 auto; + padding: 0.6em 2em; + border: 1px solid transparent; + box-sizing: border-box; + outline: none; + color: orange; + background: #221600; + cursor: pointer; + position: relative; + z-index: 0; + border-radius: var(--border-radius); +} + +.button-burger:hover { + color: #221600; + background-color: orange; + border: 1px solid #221600; +} + +.form-group { + margin-bottom: var(--spacing-lg); +} + +input[type="range"] { + margin: 0 5%; + width: 90%; + accent-color: var(--color-secondary); +} + +/* ========================================================================== + 5. Layout Listen + ========================================================================== */ +ul, +ol { + margin: 1em 0; + padding: 0 0 0 40px; +} + +dd { + margin: 0 0 0 40px; +} + +nav ul, +nav ol { + list-style: none; + list-style-image: none; + margin: 0; + padding: 0; +} + +/* ========================================================================== + 6. Layout Container + ========================================================================== */ +.container { + width: 100%; + height: 776px; + padding-top: 100px; + padding-right: 15px; + padding-left: 15px; + margin-top: var(--spacing-md); + margin-right: auto; + margin-left: auto; + background-image: url('data:image/svg+xml,'); + background-repeat: no-repeat; + background-position: center top; +} + +.container-impressum { + width: 100%; + padding: var(--spacing-lg); + margin: var(--spacing-md) 0; + background-color: var(--color-tertiary); +} + +/* Grid-Beispiel (Flexbox) */ +.row { + display: flex; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; +} + +.col { + flex: 1 0 100%; /* Nimmt auf Mobilgeräten die volle Breite ein */ + padding-right: 15px; + padding-left: 15px; +} + +/* ========================================================================== + 7. Kontaktdaten verschleiern (Bidi-Text) - Optional, kann entfernt werden + ========================================================================== */ +span.rev { unicode-bidi:bidi-override; direction:rtl } +span.rev.email:before { content:"ed.renhcer" } +span.rev.email:after { content:"@retsambew :liaM-E" } +span.rev.phone:before { content:"962 9119 " } +span.rev.phone:after { content:" 94+ :nofeleT" } +span.rev.fax:before { content:"402 9119 " } +span.rev.fax:after { content:" 94+ :xaF" } + +/* ========================================================================== + 8. Media Queries (Mobile First) + ========================================================================== */ + +/* --- Kleine Geräte (Smartphones im Querformat, ab 576px) --- */ +@media (min-width: 576px) { + .container { + max-width: 809px; + } +} + +/* --- Mittlere Geräte (Tablets, ab 768px) --- */ +@media (min-width: 768px) { + .container { + max-width: 809px; + } + + /* Beispiel: Spalten stehen nebeneinander ab Tablet-Größe */ + .col { + flex: 1 0 50%; /* Zwei Spalten nebeneinander */ + } +} + +/* --- Große Geräte (Desktops, ab 992px) --- */ +@media (min-width: 992px) { + .container { + max-width: 809px; + } + + .col { + flex: 1; /* Alle Spalten verteilen sich gleichmäßig */ + } +} + +@media (min-height: 920px) { + footer { + position: fixed; + bottom: 0px; + } +} + +/* --- Sehr große Geräte (Große Desktops, ab 1200px) --- */ +@media (min-width: 1200px) { + .container { + max-width: 809px; + } +} + +/* --- Extra große Geräte (Ultrawide, ab 1400px) --- */ +@media (min-width: 1400px) { + .container { + max-width: 809px; + } }