الكاتب: Eng~ Rabea Shaban

  • الفصل 3: السليكتورز في CSS | يعني نختار العناصر إزاي؟


    🥸 يعني إيه Selectors؟

    ببساطة كده، السليكتور هو اللي بتقول بيه للمتصفح:

    “اسمع يا عم، لو لقيت العنصر ده، ظبطه كذا وكذا”.

    زي لما تقول:

    cssCopy codep {
      color: red;
    }
    

    يعني كل <p> في الصفحة يبقى لونه أحمر. سهلة؟ سهلــة.


    💣 أنواع السليكتورز اللي هتحتاجها طول حياتك:


    1. 🏷️ سليكتور التاج (Tag Selector)

    يعني تظبط كل العناصر من نوع معين، زي كل العناوين أو كل البراجرافات.

    cssCopy codeh1 {
      color: blue;
    }
    

    يعني كل <h1> في الموقع هيبقى لونه أزرق.


    2. 🆔 سليكتور الـ ID

    بتستخدمه لما تكون عايز تظبط عنصر واحد بس، مميز وفريد.

    htmlCopy code<p id="hero">أهلا بيك</p>
    
    cssCopy code#hero {
      font-size: 24px;
    }
    

    شايف العلامة #؟ دي معناها “أنا شغال على ID”.

    ⛔ خُد بالك: الـ ID مينفعش يتكرر، عامل زي رقمك القومي كده.


    3. 👕 سليكتور الـ Class

    ده بقى اللي بنعتمد عليه 90% من الوقت. تقدر تستخدمه على كذا عنصر.

    htmlCopy code<p class="highlight">نص مميز</p>
    <p class="highlight">وده كمان</p>
    
    cssCopy code.highlight {
      background-color: yellow;
    }
    

    ⏺️ شايف النقطة .؟ بتقول: “ده كلاس”.


    4. 🌳 سليكتور العنصر جوه عنصر تاني (Descendant)

    يعني: لو فيه عنصر جوه عنصر تاني، إشتغل عليه.

    cssCopy code.card p {
      color: green;
    }
    

    يعني: أي <p> جوه كلاس اسمه card، خليه لونه أخضر.


    5. 📦 تجميع السليكتورز مع بعض (Grouping)

    يعني بدل ما تكتب نفس التنسيق كذا مرة، اجمعهم في سطر واحد:

    cssCopy codeh1, h2, p {
      font-family: Arial;
    }
    

    6. 🌀 السليكتور العام (Universal Selector)

    يعني: “يالا نشتغل على كل اللي في الصفحة”.

    cssCopy code* {
      margin: 0;
      padding: 0;
    }
    

    ينضفلك الصفحة كده من غير لخبطة.


    7. 👶 ابن مباشر (Child Selector)

    يعني: “هاتلي العنصر اللي جاي مباشر تحت ده”.

    cssCopy code.card > p {
      color: red;
    }
    

    بس ده هيشتغل على <p> اللي تحت card على طول، مش اللي جوه جوه.


    8. 🔂 أخوه اللي بعده على طول (Adjacent Sibling)

    cssCopy codeh2 + p {
      color: orange;
    }
    

    يعني أي <p> جاي بعد <h2> على طول، ظبطه.


    9. 🤜 كل الأخوات اللي بعده (General Sibling)

    cssCopy codeh2 ~ p {
      color: purple;
    }
    

    أي <p> جاي بعد <h2> على نفس المستوى، شغال عليه.


    💥 المقارنة الجدعنة بين ID و Class:

    الحتة ديID (#)Class (.)
    بيتكرر؟لأآه
    للعنصر الواحد؟تمامممكن أكتر من عنصر
    أستخدمه إمتى؟لحاجات مميزةفي كل حتة تقريبا

    🛠️ تمرين جدعنة:

    htmlCopy code<div class="card">
      <h2 id="main-title">عنوان رئيسي</h2>
      <p class="desc">ده وصف صغير</p>
    </div>
    
    cssCopy code#main-title {
      color: red;
    }
    
    .desc {
      font-style: italic;
    }
    
    .card p {
      background-color: #f0f0f0;
    }
    
  • الفصل 2: كيفية ربط CSS بملف HTML | تطبيق على ربط ملفات خارجية


    📌 لماذا نربط CSS بملف HTML؟

    صفحة الويب تحتاج إلى شيئين:

    • هيكل (Structure): وهو HTML.
    • تنسيق (Style): وهو CSS.

    ربط CSS مع HTML ضروري حتى تُطبق التنسيقات على العناصر وتظهر النتيجة للمستخدم بالشكل المطلوب.


    💡 طرق ربط CSS بصفحة HTML

    1. الربط الخارجي (External CSS) ✅ الأفضل والأكثر استخدامًا

    نستخدمه عند فصل التصميم في ملف منفصل. الملف عادة يكون اسمه style.css أو أي اسم آخر.

    ✅ الخطوات:

    1. أنشئ ملف HTML باسم index.html
    2. أنشئ ملف CSS باسم style.css
    3. داخل <head> من ملف HTML، أضف الكود التالي:
    htmlCopy code<link rel="stylesheet" href="style.css">
    

    📦 مثال عملي:

    🔹 ملف: index.html

    htmlCopy code<!DOCTYPE html>
    <html lang="ar">
    <head>
      <meta charset="UTF-8">
      <title>مثال على ربط CSS</title>
      <link rel="stylesheet" href="style.css">
    </head>
    <body>
      <h1>مرحبًا بك في موقعي</h1>
      <p>هذا مثال على ربط ملف CSS خارجي.</p>
    </body>
    </html>
    

    🔹 ملف: style.css

    cssCopy codebody {
      background-color: #f4f4f4;
      font-family: Arial, sans-serif;
    }
    
    h1 {
      color: #0066cc;
      text-align: center;
    }
    
    p {
      color: #444;
      text-align: center;
    }
    

    🔁 النتيجة:

    • الخلفية باللون الرمادي الفاتح
    • العنوان بلون أزرق ومنتصف الصفحة
    • النص بلون رمادي غامق

    🟡 هل يمكن وضع أكثر من ملف CSS؟

    نعم، يمكن ربط عدة ملفات CSS في نفس الصفحة:

    htmlCopy code<link rel="stylesheet" href="reset.css">
    <link rel="stylesheet" href="style.css">
    

    المتصفح يقرأها بالترتيب. لو هناك تعارض، يُطبق الملف الأخير.


    ❗أين نضع وسم <link> داخل HTML؟

    يجب أن يكون داخل <head> قبل غلق الوسم:

    htmlCopy code<head>
      <link rel="stylesheet" href="style.css">
    </head>
    

    لو تم وضعه في <body> قد يعمل لكنه ليس مفضل من الناحية التقنية.


    🛠️ أخطاء شائعة:

    الخطأالسببالحل
    الملف لا يظهرالمسار خاطئتأكد من اسم المجلد/المسار
    التنسيقات لا تعملوسم <link> في مكان خاطئضعه داخل <head>
    CSS لا يطبق على عناصر HTMLselector غير صحيحتأكد من أسماء العناصر أو الكلاسات

    🎯 متى نستخدم الربط الخارجي؟

    • في المشاريع الكبيرة
    • إذا كانت هناك أكثر من صفحة HTML تستخدم نفس التصميم
    • لو أردت إعادة استخدام نفس التنسيقات في صفحات مختلفة

    ✍️ تدريب تطبيقي:

    المطلوب:

    • صمّم صفحة HTML بسيطة فيها عنوان، فقرة، وزر.
    • أنشئ ملف CSS خارجي يحتوي على:
      • لون خلفية
      • تغيير لون العنوان
      • تغيير شكل الزر (لون + حدود + تأثير hover)
  • مقدمة عن CSS – ما هو ولماذا نستخدمه؟ | الفرق بين Inline وInternal وExternal


    الفصل 1: ما هو CSS؟

    CSS اختصار لـ (Cascading Style Sheets)، وتعني “أوراق الأنماط المتتالية”، وهي تقنية تُستخدم في تنسيق وتجميل صفحات الويب. HTML تُستخدم لبناء هيكل الصفحة، بينما CSS تتحكم في مظهرها.

    لماذا سُميت “متتالية”؟

    لأن الأنماط تتبع نظام “التدرج في الأهمية”، حيث يمكن تطبيق أكثر من أسلوب على عنصر معين، ويتم تحديد النمط الفعلي حسب ترتيب الأولوية.


    الفصل 2: لماذا نستخدم CSS؟

    • تحسين تجربة المستخدم: CSS يجعل الموقع يبدو منسقًا ومرتبًا وجذابًا.
    • فصل التنسيق عن المحتوى: يسمح للمطور بالفصل بين هيكل الصفحة (HTML) وتصميمها (CSS).
    • توفير الوقت والجهد: تغيير تصميم الموقع يتم من خلال تعديل ملف CSS واحد بدلًا من تعديل كل صفحة على حدة.
    • التحكم في الواجهة بشكل كامل: من الألوان إلى الحركة والتحجيم.
    • التجاوب مع الشاشات المختلفة: CSS يمكن استخدامه لتصميم صفحات تعمل على كل الأجهزة.

    الفصل 3: أساسيات كتابة CSS

    الهيكل الأساسي:

    cssCopyEditselector {
      property: value;
    }
    

    مثال:

    cssCopyEdith1 {
      color: red;
      font-size: 24px;
    }
    

    أهم الخصائص:

    الخاصيةالاستخدام
    colorتحديد لون النص
    background-colorخلفية العنصر
    font-sizeحجم الخط
    marginالمسافة الخارجية
    paddingالمسافة الداخلية
    borderالحدود حول العنصر
    displayطريقة عرض العنصر

    الفصل 4: طرق كتابة CSS

    الطريقة الأولى: Inline CSS

    يتم كتابتها مباشرة داخل وسم HTML.

    htmlCopyEdit<h1 style="color: blue;">مرحبا بك</h1>
    

    مميزاتها:

    • تُستخدم للتعديلات السريعة.
    • سهلة الفهم للمبتدئين.

    عيوبها:

    • تكرار ممل وغير عملي في المواقع الكبيرة.
    • يصعب تعديل التصميم لاحقًا.
    • تخلط بين الهيكل والتصميم.

    الطريقة الثانية: Internal CSS

    يتم وضع الكود داخل ملف HTML نفسه، بين وسم <style> في <head>.

    htmlCopyEdit<head>
      <style>
        h1 {
          color: green;
        }
      </style>
    </head>
    

    مميزاتها:

    • مناسبة للمشاريع الصغيرة أو صفحة واحدة.
    • تفصل نوعًا ما بين التنسيق والمحتوى.

    عيوبها:

    • عند وجود عدة صفحات، يجب تكرار الكود.
    • لا تُعد الأفضل للتوسّع في المشروع.

    الطريقة الثالثة: External CSS

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

    htmlCopyEdit<link rel="stylesheet" href="style.css">
    
    cssCopyEdit/* داخل style.css */
    h1 {
      color: purple;
    }
    

    مميزاتها:

    • الأفضل على الإطلاق.
    • سهل التعديل والتحديث.
    • يمكن استخدامه على أكثر من صفحة بنفس الملف.

    عيوبها:

    • تحتاج إنترنت أو تحميل الملف في بعض الأنظمة للعمل بشكل صحيح.
    • لا تعمل وحدها بدون ملف HTML.

    الفصل 5: مقارنة شاملة بين الطرق الثلاث

    المعيارInline CSSInternal CSSExternal CSS
    السهولةسهلةسهلةمتوسطة
    الأداءبطيءمتوسطعالي
    التنظيمسيءجيدممتاز
    الأفضل للمشاريعلالانعم

    الفصل 6: كيف يتعامل المتصفح مع CSS؟

    • المتصفح يقرأ HTML أولًا، ثم يتبع ترتيب الأنماط المرفقة.
    • يعطي أولوية حسب القرب من العنصر: inline > internal > external.
    • عند التعارض بين الأساليب، يتم اعتماد الأعلى في الأولوية إلا إذا تم استخدام !important.

    الفصل 7: مفاهيم متقدمة (تُفصّل لاحقًا في الفصول القادمة):

    • الوراثة (Inheritance): بعض الخصائص تنتقل من العنصر الأب للابن تلقائيًا.
    • الخصوصية (Specificity): مدى قوة كل نوع من أنواع الانتقاء.
    • الأنماط المتضاربة: كيف يُحسم التعارض بين أكثر من نمط.
  • التفاعل مع JavaScript

    مقدمة في JavaScript

    JavaScript هي لغة برمجة تُستخدم لإضافة التفاعل على صفحات الويب. باستخدام JavaScript، يمكن للمستخدم التفاعل مع العناصر على الصفحة بشكل ديناميكي. على سبيل المثال، يمكن أن يُظهر لك JavaScript رسائل منبثقة (pop-up) عند الضغط على زر، أو يُعدل محتوى الصفحة بدون الحاجة لإعادة تحميلها.

    كيف ندمج JavaScript مع HTML؟

    1. داخل صفحة HTML:
      يمكن إضافة أكواد JavaScript داخل الصفحة باستخدام وسم <script>. عادةً ما يتم وضعه في <head> أو <body> في الصفحة. لكن يفضل إضافته قبل نهاية وسم </body> لتحسين الأداء. مثال: <html> <head> <title>التفاعل مع JavaScript</title> </head> <body> <h1>مرحبًا بالعالم!</h1> <button onclick="myFunction()">اضغط هنا</button> <script> function myFunction() { alert("تم الضغط على الزر!"); } </script> </body> </html>
      • في المثال السابق، عند الضغط على الزر، يتم استدعاء دالة myFunction()، والتي تعرض رسالة منبثقة (alert).
    2. استخدام ملف خارجي:
      يمكن أيضًا كتابة JavaScript في ملف خارجي ومن ثم ربطه بصفحة HTML باستخدام وسم <script src="file.js"></script>.
      1. أولًا، أنشئ ملف JavaScript خارجي مثل script.js:
      function myFunction() { alert("تم الضغط على الزر!"); }
      1. ثم اربط الملف في صفحة HTML:
      <html> <head> <title>التفاعل مع JavaScript</title> </head> <body> <h1>مرحبًا بالعالم!</h1> <button onclick="myFunction()">اضغط هنا</button> <script src="script.js"></script> </body> </html>

    أحداث JavaScript:

    JavaScript يعمل بشكل رئيسي عبر الأحداث (events). الأحداث هي أشياء تحدث في الصفحة، مثل:

    • النقر على زر
    • تغيير قيمة في حقل نصي
    • تحميل الصفحة
    1. onclick: يتم تفعيلها عند النقر على عنصر.
    2. onmouseover: يتم تفعيلها عندما يمر المستخدم فوق العنصر.
    3. onchange: يتم تفعيلها عندما يتم تغيير قيمة عنصر (مثل حقل نصي أو قائمة منسدلة).

    مثال:

    <button onclick="changeText()">اضغط هنا لتغيير النص</button>
    <p id="demo">النص الأصلي.</p>
    
    <script>
        function changeText() {
            document.getElementById("demo").innerHTML = "تم تغيير النص!";
        }
    </script>
    

    في المثال ده، عند الضغط على الزر، سيتم تغيير النص داخل العنصر <p>.

    التعامل مع العناصر باستخدام JavaScript:

    JavaScript يتيح لك التحكم في العناصر داخل الصفحة عبر DOM (Document Object Model). باستخدام DOM، يمكنك تغيير أو إضافة أو حذف عناصر من الصفحة.

    1. الاختيار والتعديل على العناصر:
    • document.getElementById("id"): لاختيار عنصر عن طريق الـ id.
    • document.getElementsByClassName("class"): لاختيار العناصر حسب الـ class.
    • document.querySelector("selector"): لاختيار العناصر باستخدام أي selector CSS.

    مثال:

    <button onclick="changeBackgroundColor()">اضغط هنا لتغيير الخلفية</button>
    
    <script>
        function changeBackgroundColor() {
            document.body.style.backgroundColor = "lightblue";
        }
    </script>
    

    في المثال ده، عند الضغط على الزر، سيتم تغيير خلفية الصفحة إلى اللون الأزرق الفاتح.

    1. إضافة محتوى إلى الصفحة:
      • يمكن أيضًا استخدام JavaScript لإضافة محتوى جديد إلى الصفحة مثل النصوص أو الصور.
      مثال: <button onclick="addElement()">إضافة عنصر جديد</button> <script> function addElement() { var newElement = document.createElement("p"); newElement.innerHTML = "تم إضافة عنصر جديد!"; document.body.appendChild(newElement); } </script> في المثال ده، عند الضغط على الزر، سيتم إضافة فقرة جديدة إلى الصفحة.

    التفاعل مع المستخدم:

    يمكنك التفاعل مع المستخدم عبر النوافذ المنبثقة أو نوافذ الإدخال.

    1. النوافذ المنبثقة (alert):
      • لعرض رسالة بسيطة للمستخدم.
      alert("مرحبًا! هذه رسالة منبثقة.");
    2. النوافذ التي تطلب إدخال من المستخدم (prompt):
      • لطلب إدخال من المستخدم.
      var userInput = prompt("من فضلك أدخل اسمك:"); alert("مرحبًا " + userInput);
    3. النوافذ التي تطلب تأكيد (confirm):
      • لطلب تأكيد من المستخدم.
      var result = confirm("هل أنت متأكد من أنك تريد المتابعة؟"); if (result) { alert("تم التأكيد!"); } else { alert("تم الإلغاء."); }

    التحقق من البيانات باستخدام JavaScript:

    يمكنك استخدام JavaScript للتحقق من صحة البيانات التي يتم إدخالها في النماذج.

    مثال:

    <form onsubmit="return validateForm()">
        <label for="email">البريد الإلكتروني:</label>
        <input type="email" id="email" name="email">
        <input type="submit" value="إرسال">
    </form>
    
    <script>
        function validateForm() {
            var email = document.getElementById("email").value;
            if (email == "") {
                alert("من فضلك أدخل بريدك الإلكتروني.");
                return false;
            }
            return true;
        }
    </script>
    

    في المثال ده، عند إرسال النموذج، يتم التحقق أولاً إذا كان حقل البريد الإلكتروني فارغًا. إذا كان فارغًا، تظهر رسالة منبثقة تطلب من المستخدم إدخال البريد الإلكتروني.


    في الختام:

    دلوقتي، أنت فهمت الأساسيات الخاصة بـ JavaScript وكيفية دمجها مع HTML لإضافة التفاعل للموقع. تعلمت كيفية التعامل مع الأحداث، والعناصر، والنوافذ المنبثقة، والتحقق من البيانات. باستخدام JavaScript، يمكنك إنشاء تجربة مستخدم غنية وديناميكية. لو عندك أي أسئلة أو محتاج مساعدة في شيء معين، أنا هنا للمساعدة!

  • التصميم المتجاوب (Responsive Design)

    مقدمة في التصميم المتجاوب

    التصميم المتجاوب هو تقنية تصميم الويب التي تجعل صفحات الإنترنت تتكيف مع حجم الشاشة المستخدم في تصفحها، سواء كان على جهاز كمبيوتر، أو موبايل، أو تابلت. الهدف من التصميم المتجاوب هو توفير تجربة مستخدم جيدة على جميع الأجهزة.

    كيف يعمل التصميم المتجاوب؟

    التصميم المتجاوب يعتمد على media queries في CSS لتطبيق تنسيقات مختلفة بناءً على خصائص الجهاز مثل العرض، والارتفاع، ودقة الشاشة.

    استخدام meta viewport

    أول خطوة في تصميم صفحة متجاوبة هي إضافة وسم meta viewport داخل الـ <head> لتحديد كيفية التعامل مع حجم الصفحة على الأجهزة المختلفة. هذه الخطوة مهمة جدًا للموبايل.

    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    
    • width=device-width: بتحدد العرض على حسب عرض الجهاز.
    • initial-scale=1.0: بتحدد مستوى التكبير الأولي عند تحميل الصفحة.

    استخدام Media Queries

    Media queries هي عبارة عن استعلامات CSS بتسمح لك بتطبيق قواعد تنسيق معينة حسب خصائص الجهاز، زي الحجم أو دقة الشاشة. بتساعدك على تحديد الأنماط المناسبة للموبايل، التابلت، والكمبيوتر.

    1. الهيكل الأساسي لـ Media Query:
    @media only screen and (max-width: 600px) {
        /* هنا تضيف التنسيقات الخاصة بالشاشة الصغيرة */
        body {
            background-color: lightblue;
        }
    }
    
    • max-width: بتحدد الحد الأقصى للعرض.
    • min-width: بتحدد الحد الأدنى للعرض.
    • only screen: بتحدد الاستعلامات لعرض الصفحة على الشاشات فقط (تستثني الطابعات).

    أنماط متجاوبة باستخدام Media Queries

    1. التصميم المخصص للموبايل:
      باستخدام @media, يمكن تغيير تنسيق العناصر بناءً على حجم الشاشة. مثلاً، لو كانت الشاشة صغيرة (مثل الموبايل)، نغير حجم النصوص أو المسافات. مثال: @media only screen and (max-width: 600px) { body { font-size: 14px; } h1 { font-size: 24px; } }
    2. التصميم المتجاوب للتابلت:
      لو عايز تميز التابلت، تستخدم مثلاً عرض أكبر من 600px وأقل من 1024px. مثال: @media only screen and (min-width: 601px) and (max-width: 1024px) { body { font-size: 16px; } h1 { font-size: 28px; } }
    3. التصميم للكمبيوتر:
      بالنسبة للشاشات الكبيرة مثل الكمبيوتر، لا نحتاج لاستخدام media queries لأن التصميم سيكون بشكل افتراضي مناسب لهم. مثال: @media only screen and (min-width: 1025px) { body { font-size: 18px; } h1 { font-size: 32px; } }

    تقنيات التصميم المتجاوب:

    1. Flexbox:
      Flexbox هو نظام تخطيط مرن يساعدك في توزيع المسافات بين العناصر داخل الـ container بسهولة. يمكنك تحديد كيفية ترتيب العناصر، سواء كانت في صف واحد أو عمود، وكيفية توزيع المسافات. مثال: .container { display: flex; flex-wrap: wrap; } .item { flex: 1; padding: 10px; }
    2. CSS Grid:
      Grid هو نظام تصميم شبكي يوفر طريقة قوية لتنظيم المحتوى في صفوف وأعمدة. يتيح لك تحديد عدد الأعمدة والصفوف وتوزيع المساحة بينهم. مثال: .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 10px; }
    3. صورة مرنة (Flexible Images):
      لجعل الصور مرنة بحيث تتناسب مع أحجام الشاشات المختلفة، يمكنك تحديد الصور باستخدام max-width: 100%. مثال: img { max-width: 100%; height: auto; }

    التأكد من استجابة التصميم:

    لتتأكد أن صفحتك متجاوبة على مختلف الأجهزة، يمكنك استخدام أدوات المطور (DevTools) في المتصفح:

    • في جوجل كروم، افتح الأدوات الخاصة بالمطور من خلال الضغط على F12 أو Ctrl+Shift+I، ثم اختر أيقونة الموبايل أو التابلت من الزاوية العلوية لتجربة التصميم على الشاشات المختلفة.

    نصائح لتصميم متجاوب:

    1. اختبر على جميع الأجهزة:
      تأكد دائمًا من اختبار التصميم على شاشات مختلفة لضمان تجربة مستخدم جيدة.
    2. استخدم صور مرنة:
      تأكد من استخدام صور مرنة لا تسبب مشاكل في التصميم عندما تتغير الأبعاد.
    3. الخطوط وأحجام النصوص:
      اجعل حجم الخط مرنًا باستخدام النسب المئوية أو وحدات مثل em أو rem بدلاً من البكسل.

    في الختام:

    التصميم المتجاوب أصبح أمرًا أساسيًا في بناء صفحات الويب اليوم. باستخدام تقنيات مثل media queries و Flexbox و CSS Grid، يمكنك ضمان أن صفحاتك تظهر بشكل مناسب على جميع الأجهزة. لو عندك أي استفسار أو محتاج مساعدة في أي جزء، أنا هنا للمساعدة!

  • تنسيق الصفحة باستخدام CSS

    مقدمة في CSS

    CSS (Cascading Style Sheets) هي لغة تستخدم لتنسيق مظهر صفحات الويب المكتوبة بـ HTML. باستخدام CSS، يمكنك تحديد كيفية ظهور العناصر المختلفة على الصفحة من حيث الألوان، والخطوط، والأبعاد، والموقع، وغيرها من التنسيقات. الفكرة هي فصل المحتوى (HTML) عن التصميم (CSS).

    كيفية ربط CSS بـ HTML:

    في HTML، هناك 3 طرق لربط الـ CSS:

    1. التضمين داخل صفحة HTML باستخدام <style>: يمكن إضافة أكواد CSS مباشرة داخل الـ HTML باستخدام الوسم <style> في القسم <head>. مثال: <html> <head> <style> body { background-color: lightblue; font-family: Arial, sans-serif; } h1 { color: darkblue; } </style> </head> <body> <h1>أهلاً بالعالم!</h1> <p>هذه صفحة بتستخدم CSS لتنسيق العناصر.</p> </body> </html>
    2. استخدام ملف CSS خارجي: الأفضل والأكثر استخدامًا هو إنشاء ملف CSS خارجي ثم ربطه بصفحة HTML. بتستخدم الوسم <link> لربط الملف الخارجي.
      1. أولًا، أنشئ ملف style.css:
      body { background-color: lightgreen; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } h1 { color: darkgreen; }
      1. ثم اربط هذا الملف بـ HTML باستخدام وسم <link> داخل <head>:
      <html> <head> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <h1>أهلاً بك في CSS</h1> <p>صفحة بتستخدم ملف CSS خارجي لتنسيق الصفحة.</p> </body> </html>
    3. استخدام الـ CSS inline: يمكن أيضًا تطبيق CSS مباشرة على العناصر باستخدام خاصية style داخل الوسم نفسه. مثال: <h1 style="color: purple; text-align: center;">أهلاً بالعالم!</h1>

    أهم خصائص CSS:

    1. الألوان (Colors):
      يمكنك تعيين الألوان باستخدام الأسماء أو قيم HEX أو RGB.
      • مثال على الألوان باستخدام الأسماء: body { background-color: lightyellow; } h1 { color: green; }
      • مثال باستخدام HEX: h1 { color: #ff6347; /* Tomato color */ }
      • مثال باستخدام RGB: p { color: rgb(255, 99, 71); /* Tomato color */ }
    2. الخطوط (Fonts):
      يمكنك تخصيص الخطوط باستخدام الخاصية font-family. مثال: body { font-family: 'Arial', sans-serif; } h1 { font-family: 'Georgia', serif; }
    3. الهوامش والتباعد (Margins and Padding):
      • margin: هو المسافة بين العنصر وعناصر الصفحة الأخرى.
      • padding: هو المسافة بين المحتوى وحدود العنصر.
      مثال: h1 { margin-top: 20px; padding: 10px; }
    4. الحجم (Size):
      يمكنك تحديد حجم النصوص أو الأبعاد باستخدام خاصيات font-size و width و height.
      • حجم النصوص: p { font-size: 16px; }
      • الأبعاد: img { width: 100%; height: auto; }

    تأثيرات CSS:

    1. الظل (Shadow):
      • box-shadow: لإضافة ظل حول العناصر.
      • text-shadow: لإضافة ظل حول النصوص.
      مثال: h1 { text-shadow: 2px 2px 4px #000000; } div { box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.5); }
    2. الانتقالات والتأثيرات (Transitions and Animations):
      • transition: بتسمح بانتقال سلس بين القيم المختلفة.
      • animation: لعمل حركات للعناصر.
      مثال: button { background-color: blue; transition: background-color 0.3s ease; } button:hover { background-color: green; }

    تخصيص العناصر باستخدام الـ Flexbox و Grid:

    1. Flexbox:
      • display: flex: بيخلي العناصر داخل الـ container تتحرك وتتوزع بشكل مرن.
      مثال: .container { display: flex; justify-content: space-between; }
    2. CSS Grid:
      • display: grid: بيخلي العناصر داخل الـ container تتوزع في شكل شبكي.
      مثال: .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); }

    في الختام:

    دلوقتي أنت عندك فكرة عن أساسيات الـ CSS، كيفية ربطه بـ HTML، وبعض الخصائص الأساسية مثل الألوان والخطوط والهوامش، وكذلك كيفية إضافة تأثيرات باستخدام CSS. استخدام CSS بيتيح لك التحكم في تصميم الصفحة بشكل كامل وتخصيص المظهر على حسب احتياجاتك. لو عندك أي استفسار أو تحتاج مساعدة في أي جزء، أنا هنا للمساعدة!

  • الوسائط المتعددة (Media)

    إضافة الفيديو والصوت في HTML

    الوسائط المتعددة زي الفيديو والصوت بتخلي الصفحة أكتر تفاعلية وجذبًا للمستخدمين. في HTML، بنستخدم الوسوم <video> و <audio> لإضافة الفيديوهات والصوتيات.

    إضافة الفيديو في HTML:

    لإضافة فيديو، بنستخدم وسم <video>، وهو بيكون وسيلة لعرض مقاطع الفيديو في صفحات الإنترنت. عشان الفيديو يشتغل صح، لازم يكون عندنا بعض الخصائص زي controls (علشان تظهر أدوات التحكم في الفيديو) و autoplay (لتشغيل الفيديو تلقائيًا عند تحميل الصفحة).

    1. الهيكل الأساسي للفيديو:
    <video width="640" height="360" controls>
        <source src="video.mp4" type="video/mp4">
        <source src="video.ogg" type="video/ogg">
        المتصفح بتاعك مش بيدعم الفيديو.
    </video>
    
    • width و height: بيتم تحديد حجم الفيديو.
    • controls: بتظهر أدوات التحكم زي التشغيل والإيقاف، الصوت، إلخ.
    • <source>: بتحدد المصادر المختلفة للفيديو. بيتم استخدام أكتر من صيغة للفيديو علشان نغطي أكتر عدد من المتصفحات.
    • النص داخل الوسم <video> (اللي هو “المتصفح بتاعك مش بيدعم الفيديو”) بيظهر لو المتصفح مش بيدعم الفيديو.
    1. خيارات إضافية:
      • autoplay: لتشغيل الفيديو تلقائيًا.
      • loop: لإعادة تشغيل الفيديو تلقائيًا بعد انتهاءه.
      • muted: لتشغيل الفيديو بدون صوت.

    مثال:

    <video width="640" height="360" controls autoplay loop muted>
        <source src="video.mp4" type="video/mp4">
        <source src="video.ogg" type="video/ogg">
        المتصفح بتاعك مش بيدعم الفيديو.
    </video>
    

    إضافة الصوت في HTML:

    بنستخدم وسم <audio> لإضافة الصوت في صفحات الويب. يشبه الفيديو ولكن بيكون خاص بالصوت فقط.

    1. الهيكل الأساسي للصوت:
    <audio controls>
        <source src="audio.mp3" type="audio/mp3">
        <source src="audio.ogg" type="audio/ogg">
        المتصفح بتاعك مش بيدعم الصوت.
    </audio>
    
    • controls: بتظهر أدوات التحكم الخاصة بالصوت زي التشغيل والإيقاف، التحكم في الصوت.
    • <source>: بتحدد مصادر الصوت، بحيث تقدر تضيف أكثر من صيغة للتأكد من التوافق مع المتصفحات المختلفة.
    1. خيارات إضافية للصوت:
      • autoplay: لتشغيل الصوت تلقائيًا عند تحميل الصفحة.
      • loop: لإعادة تشغيل الصوت تلقائيًا بعد انتهاءه.
      • muted: لتشغيل الصوت بدون صوت.

    مثال:

    <audio controls autoplay loop muted>
        <source src="audio.mp3" type="audio/mp3">
        <source src="audio.ogg" type="audio/ogg">
        المتصفح بتاعك مش بيدعم الصوت.
    </audio>
    

    دمج الصوت مع النصوص والصور:

    ممكن تدمج الصوت أو الفيديو مع النصوص أو الصور داخل الصفحة عشان تضيف تفاعل أكبر. على سبيل المثال، لو عايز تعرض صورة مع فيديو أو صوت، ممكن تضع الصورة جنب الفيديو أو الصوت باستخدام HTML العادي مع الوسوم الأخرى زي <img>.

    مثال:

    <div>
        <h2>فيديو تعليمي:</h2>
        <img src="image.jpg" alt="صورة للفيديو" width="300">
        <video width="640" height="360" controls>
            <source src="tutorial.mp4" type="video/mp4">
            <source src="tutorial.ogg" type="video/ogg">
            المتصفح بتاعك مش بيدعم الفيديو.
        </video>
    </div>
    

    ملاحظات مهمة:

    1. التنسيق مع المتصفحات:
      • مش كل المتصفحات بتدعم نفس صيغ الفيديو والصوت. عشان كده لازم توفر أكتر من صيغة للوسائط عشان تضمن إنها تشتغل مع كل المتصفحات.
    2. استخدام النص البديل:
      • زي ما بنستخدم النص البديل في الصور عبر خاصية alt، لو كان الفيديو أو الصوت مش مدعوم، بنعرض نص بديل داخل الوسم <video> أو <audio>.

    في الختام:

    إضافة الوسائط المتعددة زي الفيديو والصوت في HTML بتخلي الصفحات أكثر تفاعلًا وجذبًا للمستخدمين. دلوقتي عندك فكرة واضحة عن كيفية إضافة الفيديوهات والصوتيات في صفحة HTML باستخدام الوسوم <video> و <audio>. لو عندك أي أسئلة أو محتاج توضيح أكتر، أنا هنا للمساعدة!

  • النماذج (Forms)

    ما هو النموذج في HTML؟

    النماذج في HTML هي عبارة عن وسيلة لجمع البيانات من المستخدمين، سواء كانت بيانات تسجيل الدخول، أو بيانات استمارة، أو أي نوع آخر من البيانات التي يحتاج الموقع لمعالجتها. النماذج بتعتمد على مجموعة من الحقول (inputs) اللي المستخدم بيملأها، وبعدها يتم إرسال البيانات إلى الخادم.

    الهيكل الأساسي للنموذج:

    النموذج في HTML بنستخدم له الوسم <form>. داخل الوسم ده بنضيف مجموعة من الحقول زي النصوص، الأزرار، مربعات الاختيار، إلخ.

    <form action="process.php" method="post">
        <label for="name">الاسم:</label>
        <input type="text" id="name" name="username">
        <br><br>
        <input type="submit" value="إرسال">
    </form>
    

    في المثال ده:

    • action="process.php": دي تعني المكان اللي هتتوجه ليه البيانات بعد ما المستخدم يضغط على زر “إرسال”.
    • method="post": دي بتحدد الطريقة اللي هتتبعها لإرسال البيانات. في الغالب بنستخدم POST لإرسال البيانات بشكل آمن.

    العناصر الأساسية في النموذج:

    1. <input>:
      • <input> هو العنصر الأساسي اللي بنستخدمه لإدخال البيانات. وفيه أنواع كتير زي:
      • نص (Text):
        • لإدخال نصوص عادية زي الاسم أو البريد الإلكتروني.
        <input type="text" id="name" name="username">
      • البريد الإلكتروني (Email):
        • علشان تدخل بريد إلكتروني، بنستخدم type="email".
        <input type="email" id="email" name="user_email">
      • كلمة المرور (Password):
        • لو عايز تكتب كلمة مرور، بنستخدم type="password" علشان نخبئ الحروف.
        <input type="password" id="password" name="user_password">
      • مربع الاختيار (Checkbox):
        • لو عايز تضيف مربع اختيار للموافقة على الشروط، بنستخدم type="checkbox".
        <input type="checkbox" id="terms" name="terms"> <label for="terms">موافقة على الشروط والأحكام</label>
      • زر الإرسال (Submit):
        • بنستخدم type="submit" عشان نخلي المستخدم يرسل البيانات.
        <input type="submit" value="إرسال">
    2. <textarea>:
      • لو عايز المستخدم يكتب نص طويل زي ملاحظات أو تعليقات، نستخدم <textarea>.
      <textarea id="comments" name="user_comments" rows="4" cols="50"></textarea>
    3. <select> و <option>:
      • لو عايز تضيف قائمة منسدلة (Dropdown) لاختيار أحد الخيارات، بنستخدم <select> و <option>.
      مثال: <select name="country" id="country"> <option value="egypt">مصر</option> <option value="saudi_arabia">السعودية</option> <option value="uae">الإمارات</option> </select>

    كيفية إرسال البيانات:

    1. action:
      • تحدد أين يتم إرسال البيانات بعد ما المستخدم يضغط على زر الإرسال.
      • ممكن يكون URL لصفحة في موقعك تقوم بمعالجة البيانات.
    2. method:
      • تحدد الطريقة اللي هتُرسل بها البيانات:
        • POST: لإرسال البيانات بشكل آمن.
        • GET: لإرسال البيانات في عنوان URL (غير آمن للبيانات الحساسة).

    مثال على نموذج تسجيل:

    <form action="process_registration.php" method="post">
        <label for="name">الاسم:</label>
        <input type="text" id="name" name="username"><br><br>
    
        <label for="email">البريد الإلكتروني:</label>
        <input type="email" id="email" name="user_email"><br><br>
    
        <label for="password">كلمة المرور:</label>
        <input type="password" id="password" name="user_password"><br><br>
    
        <input type="submit" value="تسجيل">
    </form>
    

    إضافة التأكيد على البيانات (Validation):

    1. required:
      • إذا كنت عايز تتأكد من إن المستخدم أدخل البيانات في حقل معين، ممكن تضيف required للحقل.
      <input type="text" id="name" name="username" required>
    2. pattern:
      • لتحديد شكل البيانات المدخلة (مثل رقم الهاتف أو البريد الإلكتروني).
      <input type="email" id="email" name="user_email" required pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$">

    في الختام:

    دلوقتي بقى عندك فكرة كويسة عن النماذج في HTML. النماذج بتعتبر أداة أساسية لجمع البيانات من المستخدمين، سواء كانت نصوص، صور، أو حتى اختيارات من القوائم المنسدلة. لو عندك أي استفسار أو عايز توضيح أكتر، أنا هنا للمساعدة!

  • الروابط والصور

    الروابط في HTML

    الروابط هي الطريقة اللي من خلالها بننتقل بين الصفحات أو بين أجزاء مختلفة من نفس الصفحة. في HTML، بنستخدم الوسم <a> علشان نضيف رابط.

    1. إضافة رابط داخلي أو خارجي:
      • لإضافة رابط بنستخدم وسم <a> ونعين خاصية href (اللي هي الـ URL اللي هيروح ليه الرابط).
      • رابط خارجي:
        لو عايز تعمل رابط لموقع خارجي، بنكتب الـ URL الكامل. مثال: <a href="https://www.google.com">روح لجوجل</a>
      • رابط داخلي:
        لو عايز تعمل رابط داخل نفس الصفحة، بنستخدم معرف (ID) للعناصر اللي هننتقل ليها. مثال: <a href="#section1">روح للجزء الأول</a> <h2 id="section1">الجزء الأول</h2>
    2. الروابط لملفات:
      • تقدر كمان تعمل روابط لملفات معينة زي الصور أو المستندات باستخدام <a>.
      مثال: <a href="file.pdf">تحميل الملف</a>

    إضافة الصور في HTML

    الصور بتخلي صفحاتك أكثر حيوية وجذبًا للمستخدم. عشان تضيف صورة في HTML بنستخدم الوسم <img>.

    1. الوسم <img>:
      • الوسم ده بيحتاج خاصيتين أساسيتين:
        • src: اللي بتحدد مسار الصورة (إما مسار نسبي أو مسار كامل).
        • alt: ده النص البديل اللي يظهر لو ما قدرتش الصورة تتحمل.
      مثال: <img src="image.jpg" alt="صورة لمنتج" />
    2. تحديد حجم الصورة:
      • تقدر تحدد عرض الصورة وارتفاعها باستخدام width و height.
      مثال: <img src="image.jpg" alt="صورة لمنتج" width="300" height="200" />
    3. الصور كروابط:
      • ممكن تدمج الصور مع الروابط بحيث لو ضغطت على الصورة تروح لمكان تاني. في الحالة دي بنستخدم الوسم <a> مع <img>.
      مثال: <a href="https://www.example.com"> <img src="image.jpg" alt="صورة لمنتج" /> </a>

    ملاحظات إضافية:

    • استخدام alt:
      • خاصية alt مهمة جدًا لزيادة الوصولية (accessibility) لأنه بتظهر لو الصورة مش موجودة أو لو بيتم استخدام أدوات قراءة الشاشة من قبل المستخدمين.
    • تحديد المسار النسبي للصورة:
      • لو الصورة موجودة في نفس مجلد الصفحة، تقدر تكتب اسم الصورة فقط.
      • لو الصورة موجودة في مجلد فرعي، بتكتب المسار زي: images/image.jpg.

    في الختام:

    الروابط والصور في HTML هما أساسين في بناء المواقع. الروابط بتساعد في التنقل بين الصفحات والمحتوى، بينما الصور بتخلي الصفحة أكتر جذبًا وسهولة في الفهم. دلوقتي عندك فكرة كويسة عن كيفية إضافة الروابط والصور في HTML. في المقالات الجاية هنكمل معك ونتعلم عن النماذج والجافا سكربت. لو عندك أي أسئلة، أنا موجود للمساعدة!

  • القوائم والجداول

    القوائم في HTML

    في HTML، القوائم بتساعدك على تنظيم المحتوى وتقديمه بشكل مرتب وسهل القراءة. هناك نوعين رئيسيين من القوائم:

    1. القوائم غير المرتبة (<ul>):
      • القوائم الغير مرتبة بتستخدم لعرض عناصر بدون ترتيب معين. بنستخدم <ul> لبدء القائمة و <li> لتمثيل كل عنصر داخلها.
      مثال: <ul> <li>العنصر الأول</li> <li>العنصر الثاني</li> <li>العنصر الثالث</li> </ul>
    2. القوائم المرتبة (<ol>):
      • القوائم المرتبة بتستخدم لعرض عناصر بترتيب معين. بنستخدم <ol> لبدء القائمة و <li> لتمثيل كل عنصر داخلها.
      مثال: <ol> <li>العنصر الأول</li> <li>العنصر الثاني</li> <li>العنصر الثالث</li> </ol>
    3. القوائم المدمجة:
      • ممكن تدمج القوائم المرتبة مع الغير مرتبة، زي ما في المثال ده:
      <ul> <li>العنصر الأول <ol> <li>العنصر الفرعي الأول</li> <li>العنصر الفرعي الثاني</li> </ol> </li> <li>العنصر الثاني</li> </ul>

    الجداول في HTML

    الجداول بتساعدك على تنظيم البيانات وعرضها بشكل مرتب. لتكوين جدول في HTML، هنحتاج إلى استخدام بعض العلامات الخاصة:

    1. <table>:
      • بتستخدم علشان تبدأ الجدول.
    2. <tr>:
      • بتستخدم لتحديد صف داخل الجدول.
    3. <th>:
      • بتستخدم لتحديد رأس العمود داخل الجدول (غالبًا بيكون النص جريء ومركز).
    4. <td>:
      • بتستخدم لتحديد الخلايا العادية في الجدول.
    مثال على جدول بسيط:
    <table border="1">
        <tr>
            <th>اسم الطالب</th>
            <th>الدرجة</th>
        </tr>
        <tr>
            <td>أحمد</td>
            <td>90</td>
        </tr>
        <tr>
            <td>مريم</td>
            <td>85</td>
        </tr>
    </table>
    

    في المثال ده:

    • استخدمنا <table> لإنشاء الجدول.
    • استخدمنا <tr> لإنشاء صفوف.
    • استخدمنا <th> لرأس الجدول (اسم الطالب، الدرجة).
    • استخدمنا <td> لتمثيل البيانات في الجدول (اسم الطالب والدرجة).

    تخصيص الجدول:

    1. إضافة حدود للجدول:
      يمكننا إضافة حدود للجدول باستخدام الخاصية border زي ما عملنا في المثال السابق.
    2. دمج الخلايا (colspan و rowspan):
      • colspan: دمج الخلايا عبر الأعمدة.
      • rowspan: دمج الخلايا عبر الصفوف.

    مثال:

    <table border="1">
        <tr>
            <th colspan="2">معلومات الطالب</th>
        </tr>
        <tr>
            <td rowspan="2">أحمد</td>
            <td>90</td>
        </tr>
        <tr>
            <td>95</td>
        </tr>
    </table>
    

    في الختام:

    دلوقتي، بقت عندك فكرة واضحة عن القوائم والجداول في HTML. القوائم هتساعدك لعرض عناصر من غير ترتيب أو بترتيب معين، والجداول هتساعدك على تنظيم البيانات في شكل مرئي مرتب. في المقالات الجاية هنتعرف على الروابط والصور في HTML. لو عندك أي استفسار أو محتاج توضيح أكتر، أنا موجود للمساعدة!