دليل شامل: كيفية إنشاء صفحة هبوط احترافية
في هذا الدرس الشامل، سنتعلم كيفية إنشاء صفحة هبوط (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 لقياس الأداء
- أضف نموذج اتصال في نهاية الصفحة