Erstellen Sie eine Monatskalender-Website
Einführung
Hallo Entwickler! Ich freue mich, mein neuestes Projekt vorzustellen: einen Monatskalender. Dieses Projekt ist perfekt für alle, die einen funktionalen und optisch ansprechenden Kalender in JavaScript erstellen möchten. Egal, ob Sie daran interessiert sind, einer Website eine Kalenderfunktion hinzuzufügen oder einfach nur Ihre JavaScript-Kenntnisse verbessern möchten, dieses Projekt wird eine wertvolle Ergänzung Ihres Portfolios sein.
Projektübersicht
Der Monatskalender ist eine webbasierte Anwendung, die den aktuellen Monat anzeigt, das heutige Datum hervorhebt und die Wochentage genau anordnet. Das Projekt zeigt, wie man mithilfe von JavaScript dynamisch einen Kalender generiert, kombiniert mit einer schlanken und reaktionsfähigen Oberfläche, die mit HTML und CSS erstellt wurde.
Merkmale
- Dynamische Monatsanzeige: Zeigt automatisch den aktuellen Monat und das aktuelle Jahr an.
- Hervorgehobenes aktuelles Datum: Das heutige Datum ist zur leichteren Identifizierung hervorgehoben.
- Genaues Tageslayout: Die Wochentage werden entsprechend dem Monat korrekt ausgerichtet.
Verwendete Technologien
- HTML: Stellt die Struktur für den Monatskalender bereit.
- CSS: Gestaltet den Kalender und stellt sicher, dass er optisch ansprechend und reaktionsfähig ist.
- JavaScript: Verwaltet die Logik zum Generieren des Kalenders, einschließlich der Berechnung der Tage und der Hervorhebung des aktuellen Datums.
Projektstruktur
Hier ein Überblick über die Projektstruktur:
Month-Calendar/ ├── index.html ├── style.css └── script.js
- index.html: Enthält die HTML-Struktur für den Monatskalender.
- style.css: Enthält CSS-Stile, um ein modernes und ansprechendes Design zu erstellen.
- script.js: Verwaltet die Kalendergenerierungsfunktion.
Installation
Um mit dem Projekt zu beginnen, befolgen Sie diese Schritte:
-
Klonen Sie das Repository:
git clone https://github.com/abhishekgurjar-in/Month-Calendar.git
-
Öffnen Sie das Projektverzeichnis:
cd Month-Calendar
-
Führen Sie das Projekt aus:
- Öffnen Sie die Datei index.html in einem Webbrowser, um den Monatskalender anzuzeigen.
Verwendung
- Öffnen Sie die Website in einem Webbrowser.
- Den aktuellen Monat anzeigenmit hervorgehobenem heutigen Datum.
- Navigieren Sie durch die Tage, um das Layout für den gesamten Monat anzuzeigen.
Code-Erklärung
HTML
Die Datei index.html definiert die Struktur des Monatskalenders, einschließlich der Monatsanzeige und des Rasterlayouts für die Tage. Hier ist ein Ausschnitt:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Month Calendar</title> <link rel="stylesheet" href="style.css" /> <script src="script.js" defer></script> </head> <body> <div class="container"> <div class="header"> <h1>Month Calendar</h1> </div> <div class="calendar"> <div class="month"> <div class="date"> <h1></h1> <p></p> </div> </div> <div class="weekdays"> <div>Mon</div> <div>Tue</div> <div>Wed</div> <div>Thu</div> <div>Fri</div> <div>Sat</div> <div>Sun</div> </div> <div class="days"></div> </div> <div class="footer"> <p>Made with ❤️ by Abhishek Gurjar</p> </div> </div> </body> </html>
CSS
Die style.css-Datei gestaltet den Monatskalender und macht ihn sowohl attraktiv als auch reaktionsfähig. Nachfolgend sind einige wichtige Stile aufgeführt:
* { margin: 0; padding: 0; font-family: sans-serif; box-sizing: border-box; } .container { width: 100%; height: 100vh; background-color: salmon; display: flex; justify-content: center; align-items: center; flex-direction: column; } .header { margin: 20px; color: white; text-align: center; } .calendar { background-color: black; color: lightgray; width: 450px; height: 520px; border-radius: 10px; box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.4); } .month { width: 100%; height: 120px; background-color: lightseagreen; display: flex; justify-content: center; align-items: center; text-align: center; border-radius: 10px 10px 0 0; } .month h1 { font-size: 30px; font-weight: 400; text-transform: uppercase; } .month p { font-size: 16px; } .weekdays { width: 100%; height: 50px; display: flex; } .weekdays div { font-size: 15px; font-weight: bold; letter-spacing: 1px; width: 100%; display: flex; align-items: center; justify-content: center; } .days { width: 100%; display: flex; flex-wrap: wrap; padding: 2px; } .days div { font-size: 14px; margin: 3px; width: 57.5px; height: 50px; display: flex; justify-content: center; align-items: center; } .days div:hover:not(.empty) { border: 2px solid gray; cursor: pointer; } .today { background-color: lightseagreen; } .footer { margin-top: 70px; color: white; text-align: center; }
JavaScript
Die Datei script.js enthält die Logik zum Generieren des Kalenders und zum Hervorheben des aktuellen Datums. Hier ist ein Ausschnitt:
const monthEl = document.querySelector(".date h1"); const fullDateEl = document.querySelector(".date p"); const daysEl = document.querySelector(".days"); const monthInx = new Date().getMonth(); const lastDay = new Date(new Date().getFullYear(), monthInx + 1, 0).getDate(); const firstDay = new Date(new Date().getFullYear(), monthInx, 1).getDay() - 1; const months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", ]; monthEl.innerText = months[monthInx]; fullDateEl.innerText = new Date().toDateString(); let days = ""; for (let i = firstDay; i > 0; i--) { days += `<div class="empty"></div>`; } for (let i = 1; i <= lastDay; i++) { if (i === new Date().getDate()) { days += `<div class="today">${i}</div>`; } else { days += `<div>${i}</div>`; } } daysEl.innerHTML = days;
Live-Demo
Sie können sich hier die Live-Demo des Monatskalenderprojekts ansehen.
Abschluss
Die Erstellung des Monatskalenders war ein unterhaltsames Projekt, das es mir ermöglichte, meine Frontend-Entwicklungsfähigkeiten mit praktischen JavaScript-Funktionen zu kombinieren. Dieses Tool eignet sich zum Anzeigen von Kalenderdaten auf Websites und kann eine großartige Ergänzung für Ihre Webentwicklungsprojekte sein. Ich hoffe, Sie finden es genauso hilfreich wie ich. Viel Spaß beim Codieren!
Credits
Dieses Projekt wurde als Teil meiner Reise entwickelt, um meine JavaScript-Kenntnisse zu verbessern und funktionale Web-Tools zu erstellen.
Autor
-
Abhishek Gurjar
- GitHub-Profil
Das obige ist der detaillierte Inhalt vonErstellen Sie eine Monatskalender-Website. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Backdrop-Filter wird verwendet, um visuelle Effekte auf den Inhalt der Elemente anzuwenden. 1. Verwenden Sie Backdrop-Filter: Blur (10px) und andere Syntax, um den frostierten Glasffekt zu erzielen. 2. unterstützt mehrere Filterfunktionen wie Unschärfe, Helligkeit, Kontrast usw. und kann überlagert werden. 3. Es wird häufig in der Glaskartendesign verwendet, und es ist notwendig, sicherzustellen, dass sich die Elemente mit dem Hintergrund überschneiden. 4. Moderne Browser haben eine gute Unterstützung, und @Supports können verwendet werden, um Downgrade -Lösungen bereitzustellen. 5. Vermeiden Sie übermäßige Unschärfewerte und häufiges Neuzuziehen, um die Leistung zu optimieren. Dieses Attribut wirkt sich nur aus, wenn sich hinter den Elementen Inhalte befinden.

VW- und VH -Einheiten erreichen reaktionsschnelles Design, indem sie Elementgrößen mit Ansichtsfenster und Höhe in Verbindung bringen. 1 VW entspricht 1% der Ansichtsfensterbreite, und 1 VH entspricht 1% der Ansichtsfensterhöhe; häufig im Vollbildbereich, reaktionsschnellen Schriftarten und elastischen Abstand verwendet; 1. Verwenden Sie im Vollbildbereich 100VH oder besser 100DVH, um den Einfluss der Mobile Browser -Adressleiste zu vermeiden. 2. Responsive Schriftarten können mit 5 VW begrenzt und mit einer Klemme (1,5REM, 3VW, 3REM) in Kombination der minimalen und maximalen Größe begrenzt werden. 3. Elastischer Abstand wie Breite: 80VW, Rand: 5VHAUTO, Polsterung: 2VH3VW, kann das Layout anpassungsfähig machen; Achten Sie auf Kompatibilität, Zugänglichkeit und Inhaltskonflikte für mobile Geräte. Es wird empfohlen, zuerst DVH zu verwenden.

Thespect-ratiocsSpropertydefinästhespen-to-hweigthtratioofanelemente, sicherzustellen, dass die Verbreitung von Verantwortung durchgesetzt wird

Die: Leerepseudo-KlasseSelectSselementsWithnochildrenorContent, einschließlich Spacesorcomponenten, SoonlyTryEmptyElementslikematchit; 1.itcanhideemptyContainersByusing: leer {display: none;} tocleanuPlayouts; 2.itallowsaddingPlaceLylingsSylingvise :::.

Definieren Sie@keyframesBounceWith0%, 100%Attranslatey (0) und 50%Attranslatey (-20px) TocreateabasicBounce.2.ApplytheanimationToanelementusingAnimimation: Bounce0.6Sease-In-Outinfinfinitmooth, ContinuousMotion.3.Forrealism, verwendet@keyFramesrealist

Verwenden Sie einen DIV mit Rand, um schnell vertikale Linien zu erstellen und Stile und Höhen zu definieren, indem Sie randlinks und Höhe einstellen. 2. Verwendung :: vor oder :: Nach Pseudoelementen, um vertikale Linien ohne zusätzliche HTML-Tags hinzuzufügen, die für die dekorative Trennung geeignet sind; 3. In Flexbox -Layout können adaptive vertikale Trennwände zwischen elastischen Behältern erreicht werden, indem die Breite und die Hintergrundfarbe der Trennklasse festgelegt werden. 4. Fügen Sie in CSSGrid vertikale Linien als unabhängige Spalten (z. B. Autowidth -Spalten) in das Gitterlayout ein, das für reaktionsschnelles Design geeignet ist. Die am besten geeignete Methode sollte gemäß dem spezifischen Layout ausgewählt werden, um sicherzustellen, dass die Struktur einfach und leicht zu warten ist.

Die CSS-Pseudo-Klasse ist ein Schlüsselwort, mit dem der spezielle Zustand eines Elements definiert wird. Es kann dynamisch Stile anwenden, basierend auf Benutzerinteraktion oder Dokumentenort. 1.: Hover wird ausgelöst, wenn die Maus schwebt, z. B. die Taste: HOVER ändert die Knopffarbe. 2.: Fokus wirkt sich in Wirksamkeit, wenn das Element den Fokus erhält und die Zugänglichkeit verbessert. 3.: nt-child () wählt Elemente nach Position aus und unterstützt ungerade, sogar oder Formeln wie 2n 1; 4.: Erstkind und: Last-Kind Wählen Sie die ersten bzw. letzten Kinderelemente aus; 5.:Not () schließt Elemente aus, die den angegebenen Bedingungen entsprechen; 6.: Besuchen und: Link -Set -Stile basierend auf dem Linkzugriffsstatus, aber: Besucht wird durch Privatsphäre eingeschränkt.

Verwenden Sie versteckte Kontrollkästchen und CSSs: Überprüfte Pseudoklasse in Kombination mit benachbarten Geschwister-Selektoren (), um die Inhaltsanzeige zu steuern. 2. Die HTML -Struktur enthält Eingabe-, Beschriftungs- und Inhaltsdiv für jedes zusammengebrochene Element. 3.. Smooth Expansion/Collapse-Animationen durch Einstellen von MAX-Height-Übergang; V. 5. Verwenden Sie Radiotypen, um den Einzelöffnungsmodus zu implementieren, während das Kontrollkästchen mehrere Öffnungen ermöglicht. Dies ist eine interaktive faltbare Menüimplementierung, die kein JavaScript erfordert und mit modernen Browsern kompatibel ist.
