cari

Sihir Disember

Jan 05, 2025 am 08:50 AM

Ini adalah penyerahan untuk Cabaran Frontend - Edisi Disember, Glam Up My Markup: Winter Solstice

Apa yang Saya Bina

Saya mencipta "Sihir Disember", halaman pendaratan responsif dan menawan visual yang meraikan keajaiban bulan Disember. Matlamat saya adalah untuk menggabungkan kehangatan musim dengan pengalaman pengguna interaktif. Ciri halaman pendaratan:

- A sticky navigation bar for easy access to different sections.
- A countdown timer to New Year 2025, adding a sense of anticipation.
- Sections highlighting winter phenomena, holiday celebrations, and cultural traditions.
- A beautiful background with a "snow overlay" effect to immerse users in the winter theme

.
Melalui projek ini, saya menyasarkan untuk meningkatkan kemahiran pembangunan bahagian hadapan saya sambil merangkul semangat perayaan.

Demo Langsung Projek
_Kod Sumber pada GitHub--->

CodePen:

_

`


<br>


<p></p><br>
  <meta charset="UTF-8"><br>
  <meta name="viewport" content="width=device-width, initial-scale=1.0"><br>
  <title>December - A Month of Wonder</title><br>
  <link rel="stylesheet" href="style.css">

<p></p>

<p></p><br>
  <div>

<p><nav>
    <div class="nav-container">
<br>
      <a href="#">
      <div class="nav-links">
<br>
        <a href="#winter-section">Winter</a><br>
        <a href="#holidays-section">Holidays</a><br>
        <a href="#traditions-section">Traditions</a><br>
        <a href="#about-section">About</a><br>
      </div>
<br>
    </a>
</div>
<br>
  </nav></p>

<p><header><br>
    <h1 id="December-Magic">December Magic</h1>
<br>
    <div>
      Countdown to New Year 2025<br>
    </div>
<br>
    <div>
      <div class="countdown-box">
<br>
        <div>
        <div class="countdown-label">Days</div>
<br>
      </div>
<br>
      <div>
        <div class="countdown-number">
        <div class="countdown-label">Hours</div>
<br>
      </div>
<br>
      <div>
        <div class="countdown-number">
        <div class="countdown-label">Minutes</div>
<br>
      </div>
<br>
      <div>
        <div class="countdown-number">
        <div class="countdown-label">Seconds</div>
<br>
      </div>
<br>
    </div>
<br>
  

<p><main>
    <section class="section">
      <h2 id="Winter-Wonder">Winter Wonder</h2>
<br>
      <p>
        December heralds the arrival of winter in the Northern Hemisphere, transforming landscapes into pristine wonderlands. This section explores the natural phenomena and celestial events that make December uniquely beautiful.<br>
      </p>
<br>
      <div>
        <div class="nature-item">
<br>
          <h3 id="Winter-Solstice">Winter Solstice</h3>
<br>
          <p>December 21st marks the shortest day of the year, a pivotal moment in Earth's annual journey around the sun. This astronomical event has been celebrated by cultures worldwide for millennia.</p>
<br>
        </div>
<br>
        <div>
          <h3 id="Snowy-Landscapes">Snowy Landscapes</h3>
<br>
          <p>Experience the tranquil beauty of snow-covered landscapes, where every branch and surface is decorated with nature's own crystalline artwork.</p>
<br>
        </div>
<br>
        <div>
          <h3 id="Frost-Patterns">Frost Patterns</h3>
<br>
          <p>Discover the intricate patterns of frost that transform windows and leaves into natural masterpieces, each design unique and ephemeral.</p>
<br>
        </div>
<br>
      </div>
<br>
    </section></main></p>

<pre class="brush:php;toolbar:false"><section class="section">

<p></p>

<p><footer><br>
    <p>Embrace the magic of December ❄️</p>
<br>
  </footer></p>

<p><script src="script.js"></script></p>

<p></p>

<p></p></section>

* {<br>
  margin: 0;<br>
  padding: 0;<br>
  box-sizing: border-box;<br>
  font-family: "Arial", sans-serif;<br>
}

<p>body {<br>
  background-image: url("/api/placeholder/1920/1080");<br>
  background-size: cover;<br>
  background-attachment: fixed;<br>
  background-position: center;<br>
  color: #fff;<br>
  min-height: 100vh;<br>
}</p>

<p>.navbar {<br>
  background: rgba(0, 0, 0, 0.8);<br>
  padding: 1rem 0;<br>
  position: sticky;<br>
  top: 0;<br>
  z-index: 1000;<br>
}</p>

<p>.nav-container {<br>
  max-width: 1200px;<br>
  margin: 0 auto;<br>
  display: flex;<br>
  justify-content: space-between;<br>
  align-items: center;<br>
  padding: 0 2rem;<br>
}</p>

<p>.nav-logo {<br>
  font-size: 1.5rem;<br>
  font-weight: bold;<br>
  color: #ff9999;<br>
  text-decoration: none;<br>
}</p>

<p>.nav-links {<br>
  display: flex;<br>
  gap: 2rem;<br>
}</p>

<p>.nav-links a {<br>
  color: #fff;<br>
  text-decoration: none;<br>
  padding: 0.5rem 1rem;<br>
  border-radius: 5px;<br>
  transition: background-color 0.3s;<br>
}</p>

<p>.nav-links a:hover {<br>
  background-color: rgba(255, 255, 255, 0.1);<br>
}</p>

<p>header {<br>
  text-align: center;<br>
  padding: 4rem 2rem;<br>
  background: rgba(0, 0, 0, 0.5);<br>
}</p>

<p>h1 {<br>
  font-size: 3rem;<br>
  margin-bottom: 1rem;<br>
  color: #e6e6ff;<br>
  text-shadow: 0 0 10px rgba(255, 255, 255, 0.5);<br>
}</p>

<p>.countdown {<br>
  font-size: 1.5rem;<br>
  margin: 1rem 0;<br>
  padding: 1rem;<br>
  background: rgba(255, 255, 255, 0.1);<br>
  border-radius: 10px;<br>
}</p>

<p>.countdown-container {<br>
  display: flex;<br>
  justify-content: center;<br>
  gap: 2rem;<br>
  margin: 1.5rem 0;<br>
}</p>

<p>.countdown-box {<br>
  background: rgba(255, 255, 255, 0.1);<br>
  padding: 1rem;<br>
  border-radius: 10px;<br>
  min-width: 100px;<br>
  text-align: center;<br>
}</p>

<p>.countdown-number {<br>
  font-size: 2.5rem;<br>
  font-weight: bold;<br>
  color: #ff9999;<br>
  margin-bottom: 0.5rem;<br>
}</p>

<p>.countdown-label {<br>
  font-size: 0.9rem;<br>
  color: #fff;<br>
  text-transform: uppercase;<br>
  letter-spacing: 1px;<br>
}</p>

<p>.main-content {<br>
  max-width: 1200px;<br>
  margin: 0 auto;<br>
  padding: 2rem;<br>
}</p>

<p>.section {<br>
  background: rgba(0, 0, 0, 0.7);<br>
  margin: 2rem 0;<br>
  padding: 2rem;<br>
  border-radius: 15px;<br>
}</p>

<p>.section-description {<br>
  color: #ccc;<br>
  margin-bottom: 1.5rem;<br>
  line-height: 1.6;<br>
}</p>

<p>h2 {<br>
  color: #ff9999;<br>
  margin-bottom: 1rem;<br>
  padding-bottom: 0.5rem;<br>
  border-bottom: 2px solid rgba(255, 153, 153, 0.3);<br>
}</p>

<p>.holiday-card {<br>
  background: rgba(255, 255, 255, 0.1);<br>
  padding: 1.5rem;<br>
  margin: 1rem 0;<br>
  border-radius: 10px;<br>
}</p>

<p>.nature-gallery {<br>
  display: grid;<br>
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));<br>
  gap: 1.5rem;<br>
  margin-top: 1rem;<br>
}</p>

<p>.nature-item {<br>
  background: rgba(255, 255, 255, 0.1);<br>
  padding: 1.5rem;<br>
  border-radius: 10px;<br>
  text-align: center;<br>
}</p>

<p>.festival-list {<br>
  list-style: none;<br>
}</p>

<p>.festival-list li {<br>
  margin: 1rem 0;<br>
  padding: 1rem;<br>
  background: rgba(255, 255, 255, 0.1);<br>
  border-radius: 10px;<br>
}</p>

<p>footer {<br>
  text-align: center;<br>
  padding: 2rem;<br>
  background: rgba(0, 0, 0, 0.8);<br>
  margin-top: 3rem;<br>
}</p>

<p>.snow-overlay {<br>
  position: fixed;<br>
  top: 0;<br>
  left: 0;<br>
  width: 100%;<br>
  height: 100%;<br>
  background-image: radial-gradient(<br>
      2px 2px at 20px 30px,<br>
      #fff,<br>
      rgba(0, 0, 0, 0)<br>
    ),<br>
    radial-gradient(2px 2px at 40px 70px, #fff, rgba(0, 0, 0, 0)),<br>
    radial-gradient(2px 2px at 50px 160px, #fff, rgba(0, 0, 0, 0)),<br>
    radial-gradient(2px 2px at 90px 40px, #fff, rgba(0, 0, 0, 0)),<br>
    radial-gradient(2px 2px at 130px 80px, #fff, rgba(0, 0, 0, 0)),<br>
    radial-gradient(2px 2px at 160px 120px, #fff, rgba(0, 0, 0, 0));<br>
  background-repeat: repeat;<br>
  pointer-events: none;<br>
  z-index: 1;<br>
  opacity: 0.4;<br>
}<br>
</p>

function updateCountdown() {<br>
  const now = new Date();<br>
  const newYear = new Date(2025, 0, 1); // January 1, 2025<br>
  const diff = newYear - now;

<p>const days = Math.floor(diff / (1000 * 60 * 60 * 24));<br>
  const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));<br>
  const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));<br>
  const seconds = Math.floor((diff % (1000 * 60)) / 1000);</p>

<p>document.getElementById("days").textContent = days<br>
    .toString()<br>
    .padStart(2, "0");<br>
  document.getElementById("hours").textContent = hours<br>
    .toString()<br>
    .padStart(2, "0");<br>
  document.getElementById("minutes").textContent = minutes<br>
    .toString()<br>
    .padStart(2, "0");<br>
  document.getElementById("seconds").textContent = seconds<br>
    .toString()<br>
    .padStart(2, "0");<br>
}</p>

<p>setInterval(updateCountdown, 1000);<br>
updateCountdown();<br>
</p>

`

December Magic

December Magic

December Magic

December Magic

December Magic

December Magic

Perjalanan
Projek ini merupakan penerokaan teknologi frontend yang menarik, termasuk HTML, CSS dan JavaScript. Inilah yang saya pelajari dan capai:

Cabaran dan Penyelesaian:
Pemasa Undur: Melaksanakan pemasa undur diperlukan mempelajari cara mengira dan memaparkan perbezaan masa dinamik menggunakan JavaScript.
Ketekalan Reka Bentuk: Memastikan rupa yang seragam merentas peranti mengajar saya untuk memberi perhatian kepada prinsip reka bentuk responsif.
Elemen Interaktif: Kesan tuding dan peralihan membantu meningkatkan penglibatan pengguna.
Sorotan:
Tindanan Salji CSS: Mencipta kesan salji halus dengan kecerunan jejari CSS ialah cara yang menyeronokkan untuk menghidupkan keajaiban musim sejuk.
Bahagian Dinamik: Menggunakan reka letak grid untuk "Galeri Alam Semula Jadi" menjadikan halaman itu menarik secara visual dan menyesuaikan diri dengan saiz skrin.
Apa Seterusnya:
Tambahkan animasi perayaan, seperti lampu bercahaya untuk cuti.
Sertakan ciri interaksi pengguna seperti bahagian "Tulis Hajat Anda" untuk resolusi Tahun Baru.
Projek ini merupakan pengalaman pembelajaran yang luar biasa, dan saya teruja untuk berkongsi dengan komuniti. Maklum balas adalah dialu-alukan!

Atas ialah kandungan terperinci Sihir Disember. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
CSS Flexbox vs Grid: Kajian KomprehensifCSS Flexbox vs Grid: Kajian KomprehensifMay 12, 2025 am 12:01 AM

Memilih Flexbox atau Grid bergantung kepada keperluan susun atur: 1) Flexbox sesuai untuk susun atur satu dimensi, seperti bar navigasi; 2) Grid sesuai untuk susun atur dua dimensi, seperti susun atur majalah. Kedua -duanya boleh digunakan dalam projek untuk meningkatkan kesan susun atur.

Cara memasukkan fail CSS: Kaedah dan amalan terbaikCara memasukkan fail CSS: Kaedah dan amalan terbaikMay 11, 2025 am 12:02 AM

Cara terbaik untuk memasukkan fail CSS adalah menggunakan tag untuk memperkenalkan fail CSS luaran di bahagian HTML. 1. Gunakan tag untuk memperkenalkan fail CSS luaran, seperti. 2. Untuk pelarasan kecil, css sebaris boleh digunakan, tetapi harus digunakan dengan berhati -hati. 3. Projek besar boleh menggunakan preprocessors CSS seperti SASS atau kurang untuk mengimport fail CSS lain melalui @import. 4. Untuk prestasi, fail CSS harus digabungkan dan CDN harus digunakan, dan dimampatkan menggunakan alat seperti CSSNANO.

Flexbox vs Grid: Sekiranya saya belajar kedua -duanya?Flexbox vs Grid: Sekiranya saya belajar kedua -duanya?May 10, 2025 am 12:01 AM

Ya, youdyhouldlearnbothflexboxandgrid.1) flexboxisidealforone-dimensi, flexiblelayoutslikenavigasiMenus.2)

Mekanik Orbital (atau bagaimana saya mengoptimumkan animasi kerangka utama CSS)Mekanik Orbital (atau bagaimana saya mengoptimumkan animasi kerangka utama CSS)May 09, 2025 am 09:57 AM

Apa yang kelihatan seperti refactor kod anda sendiri? John Rhea memisahkan animasi CSS lama yang dia tulis dan berjalan melalui proses pemikiran mengoptimumkannya.

Animasi CSS: Adakah sukar untuk mencipta mereka?Animasi CSS: Adakah sukar untuk mencipta mereka?May 09, 2025 am 12:03 AM

Csanimationsarenotinherenthardbutrequirepracticeandundunderpanderofcsspropertiesandtimingfunctions.1) startwithsimpleanimationslikescalingabuttonhoverusingkeyframes.2)

@KeyFrames CSS: Trik yang paling banyak digunakan@KeyFrames CSS: Trik yang paling banyak digunakanMay 08, 2025 am 12:13 AM

@keyframesispopularduetoitsversatilityAndPowerIncreatingSmoothcsSanimations.KeyTrickSinclude: 1) definisiMoothTransitionSbetweenStates, 2) AnimatingMultiplePropertiSti

Kaunter CSS: Panduan Komprehensif untuk Penomboran AutomatikKaunter CSS: Panduan Komprehensif untuk Penomboran AutomatikMay 07, 2025 pm 03:45 PM

Csscountersareusedtomanageautomaticnumberinginwebdesigns.1) mereka yang boleh dimanfaatkan, listitems, andcustomnumbering.2) AdvancedusesIndenestedNumberingsystems.3) cabaran yang terkandung di dalam cabaran

Bayang-bayang tatal moden menggunakan animasi yang didorong oleh tatalBayang-bayang tatal moden menggunakan animasi yang didorong oleh tatalMay 07, 2025 am 10:34 AM

Menggunakan bayang -bayang skrol, terutamanya untuk peranti mudah alih, adalah sedikit UX yang telah diliputi oleh Chris sebelum ini. Geoff merangkumi pendekatan yang lebih baru yang menggunakan harta animasi-masa. Berikut adalah satu lagi cara.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Nordhold: Sistem Fusion, dijelaskan
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa