دليل شامل: كيفية إنشاء صفحة هبوط احترافية

في هذا الدرس الشامل، سنتعلم كيفية إنشاء صفحة هبوط (Landing Page) احترافية من الصفر باستخدام HTML و CSS و JavaScript. سنقوم ببناء الصفحة خطوة بخطوة مع شرح تفصيلي لكل جزء من الكود.

1 إنشاء هيكل HTML الأساسي

أول خطوة هي إنشاء ملف HTML وبناء الهيكل الأساسي للصفحة. سنقوم بإنشاء قسم الهيدر، القسم الرئيسي، وقسم الفوتر.

index.html
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>صفحة هبوط احترافية</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <!-- Header Section -->
    <header class="header">
        <nav class="navbar">
            <div class="logo">شعار الموقع</div>
            <ul class="nav-menu">
                <li><a href="#home">الرئيسية</a></li>
                <li><a href="#features">المميزات</a></li>
                <li><a href="#contact">تواصل معنا</a></li>
            </ul>
        </nav>
    </header>

    <!-- Hero Section -->
    <section class="hero" id="home">
        <div class="hero-content">
            <h1>مرحباً بك في موقعنا</h1>
            <p>نقدم لك أفضل الحلول الرقمية لتطوير أعمالك</p>
            <button class="cta-btn">ابدأ الآن</button>
        </div>
    </section>

    <!-- Features Section -->
    <section class="features" id="features">
        <h2>مميزاتنا</h2>
        <div class="features-grid">
            <div class="feature-card">
                <h3>سرعة عالية</h3>
                <p>نضمن لك أداء سريع وفعال</p>
            </div>
            <div class="feature-card">
                <h3>تصميم عصري</h3>
                <p>تصاميم حديثة تناسب جميع الأجهزة</p>
            </div>
            <div class="feature-card">
                <h3>دعم فني</h3>
                <p>فريق دعم متاح على مدار الساعة</p>
            </div>
        </div>
    </section>

    <!-- Footer -->
    <footer class="footer">
        <p>© 2026 جميع الحقوق محفوظة</p>
    </footer>

    <script src="script.js"></script>
</body>
</html>

شرح الكود

  • DOCTYPE: يحدد نوع المستند كـ HTML5
  • lang="ar" dir="rtl": يحدد اللغة العربية واتجاه النص من اليمين لليسار
  • meta viewport: يجعل الصفحة متجاوبة مع جميع الأجهزة
  • header: يحتوي على شريط التنقل الرئيسي
  • hero section: القسم الرئيسي الذي يظهر أولاً للزائر
  • features section: قسم عرض المميزات

2 تصميم الصفحة باستخدام CSS

الآن سنقوم بتصميم الصفحة وجعلها جذابة باستخدام CSS. سنضيف الألوان، المسافات، والتأثيرات.

style.css
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    line-height: 1.6;
    color: #333;
}

/* Header & Navigation */
.header {
    background: #fff;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 1000;
}

.navbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 5%;
    max-width: 1200px;
    margin: 0 auto;
}

.logo {
    font-size: 1.5rem;
    font-weight: bold;
    color: #0071e3;
}

.nav-menu {
    display: flex;
    list-style: none;
    gap: 2rem;
}

.nav-menu a {
    text-decoration: none;
    color: #333;
    font-weight: 500;
    transition: color 0.3s;
}

.nav-menu a:hover {
    color: #0071e3;
}

/* Hero Section */
.hero {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    text-align: center;
    padding: 2rem;
    margin-top: 60px;
}

.hero-content h1 {
    font-size: 3rem;
    margin-bottom: 1rem;
    animation: fadeInUp 1s ease;
}

.hero-content p {
    font-size: 1.3rem;
    margin-bottom: 2rem;
    animation: fadeInUp 1s ease 0.2s;
    animation-fill-mode: both;
}

.cta-btn {
    padding: 1rem 2.5rem;
    font-size: 1.1rem;
    background: white;
    color: #667eea;
    border: none;
    border-radius: 50px;
    cursor: pointer;
    font-weight: bold;
    transition: transform 0.3s, box-shadow 0.3s;
    animation: fadeInUp 1s ease 0.4s;
    animation-fill-mode: both;
}

.cta-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(0,0,0,0.2);
}

/* Features Section */
.features {
    padding: 5rem 5%;
    max-width: 1200px;
    margin: 0 auto;
}

.features h2 {
    text-align: center;
    font-size: 2.5rem;
    margin-bottom: 3rem;
    color: #333;
}

.features-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
}

.feature-card {
    background: white;
    padding: 2rem;
    border-radius: 15px;
    box-shadow: 0 5px 20px rgba(0,0,0,0.1);
    transition: transform 0.3s;
    text-align: center;
}

.feature-card:hover {
    transform: translateY(-10px);
}

.feature-card h3 {
    color: #667eea;
    margin-bottom: 1rem;
    font-size: 1.5rem;
}

/* Footer */
.footer {
    background: #333;
    color: white;
    text-align: center;
    padding: 2rem;
}

/* Animations */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

شرح الكود

  • Reset CSS: إزالة الهوامش والحشو الافتراضي
  • Fixed Header: جعل الهيدر ثابت في الأعلى
  • Flexbox: لترتيب العناصر بشكل مرن
  • Grid: لإنشاء شبكة متجاوبة للمميزات
  • Animations: حركات سلسة عند ظهور العناصر
  • Hover Effects: تأثيرات عند التمرير على العناصر

3 إضافة التفاعلية بـ JavaScript

سنضيف بعض التفاعلية للصفحة مثل التمرير السلس والتأثيرات عند الضغط على الأزرار.

script.js
// Smooth Scrolling
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
    anchor.addEventListener('click', function (e) {
        e.preventDefault();
        const target = document.querySelector(this.getAttribute('href'));
        if (target) {
            target.scrollIntoView({
                behavior: 'smooth',
                block: 'start'
            });
        }
    });
});

// CTA Button Click
const ctaBtn = document.querySelector('.cta-btn');
ctaBtn.addEventListener('click', () => {
    alert('شكراً لاهتمامك! سنتواصل معك قريباً');
});

// Scroll Animation for Feature Cards
const observerOptions = {
    threshold: 0.1,
    rootMargin: '0px 0px -100px 0px'
};

const observer = new IntersectionObserver((entries) => {
    entries.forEach(entry => {
        if (entry.isIntersecting) {
            entry.target.style.opacity = '1';
            entry.target.style.transform = 'translateY(0)';
        }
    });
}, observerOptions);

document.querySelectorAll('.feature-card').forEach(card => {
    card.style.opacity = '0';
    card.style.transform = 'translateY(30px)';
    card.style.transition = 'all 0.6s ease';
    observer.observe(card);
});

// Navbar Background on Scroll
window.addEventListener('scroll', () => {
    const header = document.querySelector('.header');
    if (window.scrollY > 100) {
        header.style.background = 'rgba(255, 255, 255, 0.95)';
        header.style.backdropFilter = 'blur(10px)';
    } else {
        header.style.background = '#fff';
    }
});

شرح الكود

  • Smooth Scrolling: التمرير السلس عند الضغط على الروابط
  • Event Listeners: الاستماع لأحداث المستخدم
  • Intersection Observer: لإظهار العناصر عند التمرير
  • Scroll Event: تغيير خلفية الهيدر عند التمرير

4 جعل الصفحة متجاوبة (Responsive)

سنضيف Media Queries لجعل الصفحة تعمل بشكل مثالي على جميع الأجهزة.

responsive.css
/* Tablet */
@media (max-width: 768px) {
    .hero-content h1 {
        font-size: 2rem;
    }
    
    .hero-content p {
        font-size: 1rem;
    }
    
    .features h2 {
        font-size: 2rem;
    }
    
    .features-grid {
        grid-template-columns: 1fr;
    }
}

/* Mobile */
@media (max-width: 480px) {
    .navbar {
        flex-direction: column;
        gap: 1rem;
    }
    
    .nav-menu {
        flex-direction: column;
        gap: 1rem;
        text-align: center;
    }
    
    .hero-content h1 {
        font-size: 1.5rem;
    }
    
    .cta-btn {
        padding: 0.8rem 2rem;
        font-size: 1rem;
    }
}

الكود النهائي الكامل

يمكنك الآن نسخ جميع الأكواد وتجربتها. تأكد من إنشاء ثلاث ملفات: index.html و style.css و script.js

تهانينا!

لقد أنشأت صفحة هبوط احترافية كاملة. يمكنك الآن تخصيصها حسب احتياجاتك.

نصائح إضافية

  • استخدم صور عالية الجودة في القسم الرئيسي
  • أضف المزيد من الأقسام حسب احتياجك
  • اختبر الصفحة على أجهزة مختلفة
  • استخدم أدوات مثل Google PageSpeed لقياس الأداء
  • أضف نموذج اتصال في نهاية الصفحة