247 Matching Annotations
  1. Last 7 days
    1. use named keys, instead of numeric indices.

      في المصفوفات العادية، كل عنصر بتخزنيه بياخذ "رقم ترتيب" تلقائي (0، 1، 2، إلخ) عشان تقدري توصليله. لكن في المصفوفة المرتبطة، إنتِ اللي بتختاري "اسم" أو "مفتاح" (Key) لكل عنصر، وبتربطي هاد المفتاح بالقيمة تبعته (Value) عن طريق استخدام العلامة =>. بتصير العلاقة مثل القاموس: كلمة ومعناها.

    1. endwhile

      بهذا الكود بتشتغل بالضبط زي قوس الإغلاق المتعرج } في الطريقة العادية اللي بنكتب فيها اللوب.

    2. The condition does not have to be a counter, it could be the status of an operation or any condition that evaluates to either true or false.

      "الشرط ليس بالضرورة أن يكون عدّاداً (Counter)، بل يمكن أن يكون حالة لعملية معينة، أو أي شرط يتم تقييمه إما بصح (true) أو خطأ (false)."

    1. The PHP break Keyword

      دور break: وظيفتها تحكي للبرنامج "وقف هون، إحنا لقينا الجواب المطلوب، ما في داعي تكمل تفتيش بالباقي، اطلع برا الـ switch وكمل باقي كود الموقع".

      التحذير المهم جداً: جملة switch بالبرمجة بتتصرف زي "الشلال" (Fall-through). يعني إذا البرنامج لقى حالة مطابقة، ونفذ الكود تبعها، بس ما لقى كلمة break توقفه؛ رح يظل نازل وينفذ كود الحالة اللي تحتها مباشرة (حتى لو كانت الحالة اللي تحتها غلط وما بتطابق متغيرك!). عشان هيك نسيانها بيعمل أخطاء بالكود

    2. Warning: If you omit the break statement in a case that is not the last, and that case gets a match, the next case will also be executed even if the evaluation does not match the case!

      تحذير (Warning): إذا حذفتِ (أو نسيتِ) جملة break في حالة (case) ليست هي الأخيرة، وحصل تطابق مع هذه الحالة، فإن الحالة التي تليها سيتم تنفيذها أيضاً حتى لو كان التقييم لا يطابق تلك الحالة!

    3. The last code block does not need a break, the block breaks (ends) there anyway.

      آخر بلوك كود لا يحتاج إلى break، لأن البلوك ينتهي هناك على أي حال.

    4. This will stop the execution of code, and no more cases are tested.

      هذا سيوقف تنفيذ الكود، ولن يتم اختبار المزيد من الحالات (cases) الأخرى.

    1. $t = date("H");

      هنا قمنا بإنشاء متغير اسمه $t. واستخدمنا دالة جاهزة اسمها date("H")، وظيفتها أن تقرأ "الساعة الحالية" بنظام 24 ساعة (أي الأرقام من 00 إلى 23) وتخزنها داخل هذا المتغير.

    1. ??

      هاي الأداة مريحة جداً (تمت إضافتها في PHP 7) ووظيفتها إنها توفر "خطة بديلة" في حال كان المتغير تبعك فاضي (NULL) أو مش موجود أصلاً.

      كيف بشتغل؟ بتعطيه المتغير الأساسي، بعدين ??، بعدين "قيمة بديلة" (Backup). إذا المتغير الأساسي موجود وفيه بيانات، بيعتمدها. إذا كان فاضي أو NULL، بيعتمد القيمة البديلة فوراً.

      القاعدة: المتغير الأساسي ?? القيمة البديلة

    2. ?:

      بتكتبي شرط، بعده علامة استفهام ?، بعدين النتيجة إذا كان الشرط صح (True)، بعدين نقطتين رأسيتين :، وأخيراً النتيجة إذا كان الشرط خطأ (False).

    3. The conditional operators are used to set a value depending on conditions (shorthand for if...else):

      وهي باختصار عبارة عن طريقة مختصرة وسريعة جداً لكتابة جملة if...else الطويلة بسطر واحد بس!

    4. Concatenation assignment

      هاي الأداة بتختصر عليكِ الكود وبتعمل خطوتين بخطوة وحدة: بتلزق النص الثاني بنهاية النص الأول، وبنفس الوقت بتحدّث قيمة المتغير الأول وتخزن النتيجة النهائية جواته.

    5. Returns an integer less than, equal to, or greater than zero, depending on if $x is less than, equal to, or greater than $y. Introduced in PHP 7.

      هاي العلامة بتختصر عليكِ كتابة جمل شرطية طويلة للمقارنة بين قيمتين (سواء كانوا أرقام أو نصوص). إنتِ بتعطيها قيمتين، وهي بتعطيكِ واحد من 3 نتائج ثابتة:

      ترجع -1: إذا كان الرقم الأول (اللي عاليسار) أصغر من الثاني.

      مثال: 1 <=> 2 (النتيجة رح تكون -1)

      ترجع 0: إذا كان الرقمين متساويين.

      مثال: 2 <=> 2 (النتيجة رح تكون 0)

      ترجع 1: إذا كان الرقم الأول أكبر من الثاني.

      مثال: 3 <=> 2 (النتيجة رح تكون 1)

      وين بنستفيد منها فعلياً؟ أكثر استخدام إلها والمكان اللي بتلمع فيه هو لما بدك ترتبي مصفوفة بيانات (Sorting Arrays) تصاعدياً أو تنازلياً، لأنها بتعمل كل المقارنات المطلوبة بخطوة وحدة سريعة ونظيفة.

    1. Array Constants

      الشرح التفصيلي: الثابت مش محصور بس بقيمة مفردة (زي رقم أو كلمة واحدة). بتقدري تخزني جواته "مصفوفة" (Array) كاملة بتحتوي على مجموعة بيانات (مثلاً: ثابت بيحتوي على أسماء كل الأشهر). وهاي المصفوفة رح تظل محمية وثابتة ما بتتغير طول ما الكود شغال.

    2. a constant at compile-time.

      في "وقت الترجمة" شو يعني "وقت الترجمة" (Compile-time) والنطاق الأعلى؟ لغة PHP لما تستخدمي فيها const، بتقوم بحجز مكان للثابت بالذاكرة قبل ما البرنامج يبدأ بالتنفيذ الفعلي (هذا هو وقت الترجمة). عشان هيك، اللغة بتشترط عليك تكتبي const "عالسّطح" في الصفحة من برّا (وهاد هو النطاق الأعلى)، وبتمنعك تماماً تحطيها جوا أشياء بتعتمد على شروط أو أحداث معينة (زي جمل if أو الدوال). ليش؟ لأن الـ PHP بتحتاج تشوف الثابت وتجهزه فوراً من أول نظرة للكود، وما بتقدر تستنى لتدخل جوا دالة وتشوف إذا رح تشتغل أو لأ.

      ثوابت الفئات (Class constants): هاي ميزة خاصة جداً بـ const؛ إذا كنتِ بتكتبي كود متقدم باستخدام البرمجة الكينونية (OOP) وعندك Class، الطريقة الوحيدة لتعملي ثابت جواه هي باستخدام const.

    3. Constants defined with the const keyword can be used to define class constants.

      يمكن استخدام const لتعريف ثوابت الفئات (class constants).

    4. define("GREETING", "Welcome to W3Schools.com!");

      قال Gemini سؤالك ذكي جداً وممتاز! وهو بيلخص الفكرة الجوهرية لدالة define().

      الجواب باختصار: الثابت رح يكون Global (عالمي) في الحالتين، والفرق الوحيد هو "متى" بيتم إنشاء هذا الثابت.

      عشان أوضحلك الصورة أكثر: لما تكتبي define() جوا دالة (يعني Local)، إنتِ فعلياً ما بتخليه محلي، إنتِ بس بتأجلي عملية "إنشائه". يعني الثابت ما رح ينولد ولا رح يكون إله أي وجود بالبرنامج إلا لما يتم تشغيل الدالة (زي ما عمل بالمثال لما استدعى الدالة وكتب myTest();).

      بمجرد ما الدالة اشتغلت، الثابت GREETING انخلق وتلقائياً كسر حدود الدالة وصار Global، وعلشان هيك قدر يطبعه بأمر echo خارج الدالة بدون أي مشاكل.

      ليش المبرمج ممكن يعمل هيك؟ مرات المبرمج ما بده ينشئ الثابت ويحجزله مساحة بالذاكرة من بداية الكود، بل بده إياه ينخلق بس إذا صار حدث معين (مثلاً إذا المستخدم دخل على صفحة معينة وتنفذت هاي الدالة).

      يعني الخلاصة: دالة define() قوية جداً، وين ما حطيتيها (جوا دالة، أو جوا جملة If، أو برا) النتيجة وحدة ⬅️ الثابت بس ينخلق رح يكون متاح للكل (Global)!

    5. This example declares a constant inside a function, and output it outside the function:

      هذا المثال بيثبت فكرة "النطاق العام" اللي حكيناها فوق. الكود قام بإنشاء الثابت GREETING داخل دالة (Function) اسمها myTest(). بعدين قام بتشغيل هاي الدالة، ولما إجا يطبع الثابت بـ echo، طبعه خارج الدالة واشتغل معاه تمام. (لو كان هاد متغير عادي $greeting مش ثابت، كان أعطى Error لأنه المتغيرات بتظل محبوسة جوا الـ Function تبعتها).

    6. define(CONSTANT_NAME, value);

      عشان تنشئي ثابت بتكتبي الدالة هيك: define(CONSTANT_NAME, value);

      المدخلات (Parameters): بتاخذ شغلتين أساسيات:

      CONSTANT_NAME: اسم الثابت (وهو حساس لحالة الأحرف، يعني GREETING غير عن greeting).

      value: القيمة اللي بدك تخزنيها جواته.

  2. Mar 2026
    1. round() function rounds a floating-point number to its nearest integer:

      شرح دالة round() باختصار شديد:

      وظيفتها ببساطة هي التقريب الرياضي العادي. بتاخذ الرقم العشري (اللي فيه فواصل) وبتقربه لـ أقرب رقم صحيح.

      القاعدة تبعتها:

      إذا كان الكسر 0.5 أو أكثر ⬅️ بتقرب للرقم الأكبر.

      إذا كان الكسر أقل من 0.5 ⬅️ بتقرب للرقم الأصغر.

      شرح الأمثلة اللي بالصورة:

      echo(round(3.60)); ⬅️ رح تطبع 4 (لأن الـ .60 أكبر من النص).

      echo(round(0.49)); ⬅️ رح تطبع 0 (لأن الـ .49 أقل من النص).

    1. is_numeric() function is used to check whether a variable is a number or a numeric string.

      شرح دالة is_numeric() باختصار شديد:

      هاي الدالة أعم وأشمل من اللي قبلها (is_int)، وظيفتها تفحص إذا المتغير عبارة عن "رقم" أو "نص بيحتوي على رقم فقط".

      الفرق الأساسي: بتعطيك true (صح) للرقم الصحيح، وللرقم العشري، وحتى للرقم إذا كان مكتوب جوا علامات تنصيص "" (يعني لغة PHP قادرة تقرأه وتفهم إنه جواه رقم مش كلمات).

      أمثلة سريعة (زي اللي بالصورة):

      is_numeric(5985); ⬅️ true (لأنه رقم عادي)

      is_numeric("5985"); ⬅️ true (لأنه نص رقمي)

      is_numeric(59.85); ⬅️ true (لأنه رقم عشري)

      is_numeric("Hello"); ⬅️ false (لأنه نص بيحتوي على حروف مش أرقام)

    2. is_int() Function

      قال Gemini وظيفة الدالة is_int() باختصار شديد: بتفحص إذا المتغير عبارة عن "رقم صحيح" أو لأ.

      الرقم الصحيح: هو أي رقم (موجب أو سالب) ما فيه فواصل وأعشار (مثل 5، 100، -20).

      النتيجة: إذا كان الرقم صحيح بتعطيك النتيجة true (صح)، وإذا كان أي شيء ثاني (زي نص، أو رقم عشري مثل 5.5) بتعطيك false (خطأ).

      مثال سريع:

      is_int(5); ⬅️ رح تعطي true

      is_int(5.5); ⬅️ رح تعطي false

    1. More readable for strings with many variables (do not need to use the concatenation operator (.))

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

    2. Cleaner for simple, constant strings

      شكلها أنظف وأفضل إذا بدك تطبعي نصوص عادية وثابتة ما فيها أي متغيرات.

    3. Slightly slower (PHP must scan for variables and escape sequences)

      أبطأ بشوي؛ لأن الـ PHP بتضطر تعمل "فحص" (Scan) وتقرأ النص كلمة كلمة عشان تكتشف إذا مخبي جواته متغيرات أو أوامر تنسيق.

    4. Slightly faster (PHP does not need to parse the content)

      أسرع بشوي! والسبب إنو لغة PHP بتاخد النص وبتطبعه مباشرة بدون ما تتعب حالها وتقرأ محتواه.

    5. Supports many, like: \n, \t, \r, \$, \"

      بتدعم كل الرموز الخاصة اللي بتنسق النص زي السطر الجديد \n والمسافة \t.

    6. Yes - variables are replaced with their values

      المزدوجة "": بتدعم كل الرموز الخاصة اللي بتنسق النص زي السطر الجديد \n والمسافة \t.

    7. A double quoted string will substitute the value of variables, and accepts many special characters, like \n, \r, \t by escaping them

      النص المكتوب داخل علامات تنصيص مزدوجة سيقوم باستبدال المتغيرات بقيمها، ويقبل العديد من الرموز الخاصة، مثل \n و \r و \t عن طريق استخدام علامة التخطي (Escaping). الجملة مقسومة لفكرتين أساسيات:

      1. استبدال المتغيرات (Substitute variables) وهاد الاشي اللي اتفقنا عليه؛ لو حطيتي متغير زي $name جوا الـ ""، الـ PHP رح تفهمه وتطبع قيمته الحقيقية (مش رح تطبع كلمة $name حرفياً).

      2. الرموز الخاصة (Special characters) - الميزة الجديدة! علامات التنصيص المزدوجة بتسمحلك تستخدمي علامة الشرطة المائلة للخلف \ (Backslash) عشان تخلي الحرف اللي وراها يشتغل كـ "أمر مخفي" لتنسيق النص، بدل ما ينطبع كحرف عادي. هاي العملية اسمها (Escaping).

      أشهر هدول الرموز اللي ذكرهم:

      \n (New Line): معناها انزل سطر جديد.

      \t (Tab): معناها اعمل مسافة كبيرة (زي كبسة Tab بالكيبورد).

      \r (Carriage Return): بترجع المؤشر لأول السطر (استخدامها قليل حالياً، وغالباً بتيجي مع \n).

    1. Integers can be specified in: decimal (base 10), hexadecimal (base 16), octal (base 8), or binary (base 2) notation

      الجملة هاي معناها ببساطة إنك بتقدري تكتبي الأرقام الصحيحة (اللي بدون أعشار أو فواصل) جوا الكود بأكثر من "نظام عد"، مش بس بالنظام العادي اللي بنعرفه.

      لغات البرمجة بشكل عام (سواء PHP أو بايثون وغيرها) بتفهم الأرقام بـ 4 طرق رئيسية عشان تناسب العمليات المختلفة في معالجة البيانات:

      النظام العشري (Decimal - Base 10): هاد نظامنا الطبيعي اللي بنستخدمه بحياتنا اليومية. بيتكون من الأرقام (0 إلى 9).

      مثال: $num = 15;

      النظام الثنائي (Binary - Base 2): لغة الآلة الأساسية، وبتتكون بس من (0 و 1). عشان تفهم لغة البرمجة إنك بتكتبي بنظام ثنائي، لازم تبلشي الرقم بـ 0b.

      مثال: $num = 0b1111; (هاد بيعادل رقم 15 بالعشري).

      النظام السادس عشر (Hexadecimal - Base 16): بيستخدم الأرقام (0 إلى 9) والحروف (A إلى F). عشان تكتبي فيه لازم تبلشي الرقم بـ 0x. هاد النظام رح يمر عليكِ كثير بالبرمجة مثلاً لتمثيل أكواد الألوان أو في خوارزميات التشفير.

      مثال: $num = 0xF; (هاد كمان بيعادل رقم 15).

      النظام الثماني (Octal - Base 8): بيستخدم الأرقام (0 إلى 7) فقط. وبتبلشي الرقم بحرف 0o أو أحياناً بس صفر 0.

      مثال: $num = 017; (وبرضه هاد بيعادل 15).

    1. echo can take multiple parameters, while print can take only one argument

      echo: بتقدري تعطيها أكثر من مقطع نصي مفصولين بفاصلة , ورح تطبعهم كلهم جنب بعض.

      print: بتاخد مقطع واحد (Argument) فقط. echo "PHP ", "is ", "Fun"; // صح ✅ (رح تطبع PHP is Fun)

      // print "PHP ", "is ", "Fun"; // خطأ ❌ (رح يعطيك Error لأنه أكثر من مقطع)

    2. echo has no return value, while print has a return value of 1 so it can be used in expressions

      echo: بتطبع الكلام وبس، وما بترجع أي نتيجة للخلف (No return value).

      print: بتطبع الكلام، وبترجع رقم 1 (كدليل إن عملية الطباعة نجحت). عشان هيك بتقدري تستخدميها جوا معادلة أو تحفظي نتيجتها بمتغير. echo "Hello"; // بتطبع الكلمة وبس

      $result = print("Hi"); // بتطبع كلمة Hi، وبنفس الوقت المتغير $result بتصير قيمته 1

    1. To get the data type and the value of a variable, use the var_dump() function

      وظيفتها باختصار إنها بتعطيكِ "التقرير الكامل" عن أي متغير أو قيمة بتعطيها إياها. هاد التقرير بشمل شغلتين:

      نوع البيانات (Data Type): هل هو رقم، نص، مصفوفة، أو غيره.

      القيمة الفعالية (Value): شو المخزن جواته بالضبط (وإذا كان نص بتعطيك كم عدد حروفه كمان).

    2. In PHP 7, type declarations were added. This gives an option to specify the data type expected when declaring a function, and by enabling the strict requirement, which will throw a "Fatal Error" on a type mismatch

      في إصدار PHP 7، تمت إضافة ميزة "تعريفات الأنواع". هذا يعطي خياراً لتحديد نوع البيانات المتوقع عند كتابة دالة (Function)، وإذا قمتِ بتفعيل "المتطلب الصارم" (Strict)، سيؤدي ذلك إلى ظهور "خطأ فادح" (Fatal Error) إذا لم تتطابق الأنواع. في المشاريع الكبيرة والبرامج المعقدة، هاد التساهل ممكن يعمل أخطاء وحسابات غلط ما تنتبهيلها. عشان هيك المبرمجين طلبوا يضيفوا "وضع صارم" بالنسخ الجديدة (PHP 7 وطالع). لما تفعلي هاد الوضع، بتصير PHP دقيقة جداً؛ فإذا الدالة (Function) بتستنى منك "رقم"، وإنتِ بعتيلها "نص"، رح توقف البرنامج فوراً وتعطيكِ (Fatal Error) عشان تجبرك تصلحي الكود. هاد الاشي بساعدك تكتشفي الأخطاء بسرعة.

    3. PHP automatically associates a data type to the variable, depending on its value. Since the data types are not set in a strict sense, you can do things like adding a string to an integer without causing an error

      لغة PHP تقوم تلقائياً بتحديد النوع بناءً على القيمة التي داخله. وبما أن الأنواع ليست صارمة، يمكنك القيام بأشياء مثل جمع "نص" (String) مع "رقم صحيح" (Integer) دون التسبب في خطأ (Error). $a=5; $b="9"; echo $a+ $b;

    4. In the example above, notice that we did not have to tell PHP which data type the variable is.

      لاحظنا في المثال السابق أننا لم نضطر لإخبار PHP بنوع البيانات الخاص بالمتغير

    5. Note: Unlike other programming languages, PHP has no command for declaring a variable. It is created the moment you assign a value to it.

      "ملاحظة: على عكس لغات البرمجة الأخرى، لا يوجد في لغة PHP أمر (أو كلمة محجوزة) لتعريف المتغير. بل يتم إنشاؤه في اللحظة التي تسند (تعطي) فيها قيمة له." int number = 5;

    1. if your web server does not support PHP

      install a web server: برنامج XAMPP نزّل لك سيرفر اسمه Apache (وهو الويب سيرفر اللي بتشغليه من لوحة تحكم XAMPP).

      install PHP: نزّل لك المحرك اللي بيقرأ وبيفهم أكواد PHP.

      install a database: نزّل لك نظام قواعد البيانات MySQL.

    1. PHP can encrypt data

      لغة PHP قوية جداً في موضوع حماية البيانات وتشفيرها، وفيها دوال (Functions) جاهزة ومبنية داخلها بتسهل هاي العملية

  3. Jan 2025
    1. The :first-child pseudo-class matches a specified element that is the first child of another element.

      الـ :first-child هي pseudo-class تُستخدم في CSS لتحديد العنصر الذي يكون الابن الأول لعنصر أب . هذا يعني أنها تطابق العنصر الأول داخل حاوية إذا كان هذا العنصر هو أول طفل لها.

    1. Other content will not be adjusted to fit into any gap left by the element.

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

    1. Note: Input restrictions are not foolproof, and JavaScript provides many ways to add illegal input. To safely restrict input, it must also be checked by the receiver (the server)!

      ملاحظة: قيود الإدخال ليست مضمونة، وتوفر JavaScript العديد من الطرق لإضافة إدخال غير قانوني. لتقييد الإدخال بأمان، يجب أيضًا التحقق منه بواسطة المستقبل (الخادم)!

    1. The novalidate attribute is a boolean attribute.

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

    2. Useful for form submissions where a user wants to bookmark the result

      عند استخدام method="get"، يتم إرسال بيانات النموذج كجزء من عنوان URL . هذا يجعل النتائج قابلة للمرجعة أو الحفظ (bookmarked) بسهولة.

    3. Tip: If the action attribute is omitted, the action is set to the current page.

      إذا لم يتم تحديد الخاصية action في <form>، سيتم إرسال النموذج إلى الصفحة الحالية.

    1. The <img> element is used by browsers that do not support the <picture> element, or if none of the <source> tags match.

      يُستخدم عنصر بواسطة المتصفحات التي لا تدعم عنصر <picture>، أو إذا لم يتطابق أي من علامات <source>.

    1. When a web page loads, it is the browser, at that moment, that gets the image from a web server and inserts it into the page. Therefore, make sure that the image actually stays in the same spot in relation to the web page, otherwise your visitors will get a broken link icon. The broken link icon and the alt text are shown if the browser cannot find the image.

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

    2. The <img> tag creates a holding space for the referenced image.

      علامة img تُنشئ مساحة مخصصة لعرض الصورة المشار إليها.

    1. background: #ffffff url("img_tree.png") no-repeat right top;

      background-color, background-image, background-repeat, background-attachment, background-position

    1. horizontally center the element within its container.

      auto لجعل المتصفح يوزع هذه المساحة بالتساوي بين الجوانب الأيسر والأيمن، مما يؤدي إلى محاذاة أفقية (Horizontally Centering) للعنصر.

    2. you can set the margins to auto

      باستخدام margin: auto، يتم توزيع المساحة المتبقية على الجانبين الأيمن والأيسر بالتساوي.

    1. hide and show elements without deleting and recreating them.

      إخفاء العناصر وإظهارها دون حذفها وإعادة إنشائها.

    1. Note: Using a percentage as the size unit for a width means how wide will this element be compared to its parent element, which in this case is the <body> element.

      ملاحظة: إن استخدام النسبة المئوية كوحدة حجم للعرض يعني مدى عرض هذا العنصر مقارنة بالعنصر الأصلي، والذي في هذه الحالة هو عنصر body.

    1. Set Font Size With Em

      إذا كان حجم الخط الأساسي = 16px: 1em = 100% (لأن 1em يعني الحجم الكامل للعنصر الحاوي). 0.5em = 50%. 2em = 200%.

    1. Note: Remember that the height and width properties do not include padding, borders, or margins! They set the height/width of the area inside the padding, border, and margin of the element!

      عند استخدام الخصائص height و width. الخصائص height و width تتحكم فقط في المساحة الداخلية (content area) للعنصر،

    1. What is the highest HEX number of the following:

      القاعدة: كلما ارتفعت الحروف الأبجدية أو الأرقام، زادت القيمة. وبالتالي، الحروف الأبجدية الأقل (مثل A) تعني قيمة أقل، وليس أعلى.

      الخلاصة: كلما ارتفعت قيمة الأحرف أو الأرقام في الكود الست عشري، زادت القيمة العددية.

  4. Dec 2024
    1. whose value starts with the specified value.

      معناها start with وبكتب الكلمة الي بدي اعمل للجملة تبعتها style

    1. iv + p

      عنصر ال p الي اجت مباشرة بعد ال div بستهدف ال p الي بتيجي بعد ال div مباشرة اذا اجى مثلا span وداخه h1 لن يستهدفه

    1. The input autocomplete attribute specifies whether a form or an input field should have autocomplete on or off.

      يعني لما اكبس ع اي box بال form بعطيني خيارات انا معبياها مسبقا ب form قبل هيك هاد اذا كنت مشغلة خاصية ال on ام ال off توقف هذا الاشي

    1. Depending on browser support, a color picker can show up in the input field.

      اذا كان ال browser بدعم رح يطلع عنا color picker ويجب ان يكون اللون بال HEX (السادس عشري)

    1. If two positioned elements overlap each other without a z-index specified, the element defined last in the HTML code will be shown on top.

      عندما يتداخل عنصران محددان الموضع (positioned elements) مع بعضهما (مثل relative، absolute، fixed، أو sticky) ولم يتم تحديد قيمة z-index لأي منهما، فإن المتصفح يستخدم قاعدة أساسية لتحديد العنصر الذي يظهر فوق الآخر:

      العنصر المُعرّف أخيرًا في كود HTML يظهر في الأعلى: الترتيب الافتراضي للعناصر يعتمد على ترتيبها في كود HTML. العنصر الذي يأتي متأخرًا في الكود (أقرب إلى نهاية المستند) سيظهر أعلى العنصر الذي يسبقه

    1. Setting the top, right, bottom, and left properties of a relatively-positioned element will cause it to be adjusted away from its normal position. Other content will not be adjusted to fit into any gap left by the element.

      يحافظ ع المكان الاصلي للعناصر المجاورة ويتحرك بالنسبة الى نفسه عند تعيين قيم الخصائص top وright وbottom وleft لعنصر تم تحديد موضعه باستخدام position: relative، يتم تعديل موضع العنصر بعيدًا عن موضعه الطبيعي . هذا يعني أن العنصر يتحرك بالنسبة إلى مكانه الأصلي، لكنه يظل يشغل نفس المساحة في التدفق العادي. ملحوظة: عند تحريك العنصر بهذه الطريقة، لن يتم تعديل المحتوى الآخر لملء الفراغ الذي تركه العنصر. بمعنى آخر، المساحة الأصلية التي كان يشغلها العنصر قبل تحريكه تظل محفوظة كما هي.

    2. , depending on the scroll position

      يعني اول اشي ما رح يبين عندي الفرق بس لما انزل بالصفحة لتحت رح يبين

    3. Note: Absolute positioned elements are removed from the normal flow, and can overlap elements.

      ملاحظة: تتم إزالة العناصر ذات الوضع المطلق من التدفق الطبيعي، ويمكن أن تتداخل العناصر.

    4. An element with position: absolute; is positioned relative to the nearest positioned ancestor (instead of positioned relative to the viewport, like fixed).

      يتحرك العنصر بالنسبة الى الشاشة او الى اقرب اب يحتوي على ال position باستثناء ال static

    5. An element with position: static; is not positioned in any special way; it is always positioned according to the normal flow of the page:

      عنصر باستخدام الخاصية position: static; لا يتم وضعه في أي موقع خاص أو مميز؛ حيث يتم تحديد موضعه دائمًا وفقًا للتدفق الطبيعي للصفحة.

    1. and the remaining space will be split equally between the two margins:

      سيشغل العنصر العرض المحدد، وسيتم تقسيم المساحة المتبقية بالتساوي بين ال margins

    2. Setting the width of a block-level element will prevent it from stretching out to the edges of its container

      سيؤدي ضبط عرض عنصر على مستوى الكتلة إلى منعه من الامتداد إلى حواف الحاوية الخاصة به

    1. The element will be hidden, and the page will be displayed as if the element is not there:

      ما رح يعطي تأثير بانه موجود كانو انحدف عكس visibility:hidden; رح تعطي تأثير ورح يتم اخفاء العنصر وليس حدفه

    2. Makes the container disappear, making the child elements children of the element the next level up in the DOM

      يجعل العنصر يختفي كحاوية، ويعامل أبناءه كما لو كانوا أبناء العنصر الأعلى.

    3. Displays an element as a block-level grid container

      يجعل العنصر حاوية Grid Container لتنظيم العناصر على شكل شبكة

    1. By default, the image is repeated so it covers the entire element.

      بشكل افتراضي، يتم تكرار الصورة بحيث تغطي العنصر بأكمله.

    1. The list attribute of the <input> element, must refer to the id attribute of the <datalist> element.

      عشان اربط بين ال input وال datalist بستخدم ال id ولازم يكونو نفس الاسم

    2. Use the multiple attribute to allow the user to select more than one value:

      اذا بدي اختار اكتر من خيار بضلني ضاغطة ع الماوس مع كبسة ctrl

    1. Add the border-bottom property to all tr elements to get horizontal dividers:

      يتم استخدام خاصية border-bottom مع العنصر tr (الصفوف) لتطبيق حدود أسفل كل صف.

    2. zebra stripes

      جملة "Zebra Stripes" تعني "خطوط الحمار الوحشي".

      في سياق تصميم الويب أو جداول HTML، يشير المصطلح إلى استخدام ألوان متناوبة للصفوف (عادةً لون فاتح ولون غامق) لجعل البيانات أكثر وضوحًا وسهولة في القراءة، كما تبدو مثل نمط خطوط الحمار الوحشي

    1. Useful for form submissions where a user wants to bookmark the result

      مفيدة اذا بدنا نعبت بيانات ال form وبدو يخزن هاي البيانات يعملها bookmark

  5. Nov 2024
    1. To avoid having double borders like in the example above, set the CSS border-collapse property to collapse.

      اذا بدي اشيل ال double border بستخدم border collapse

    1. The white-space property specifies how white-space inside an element is handled.

      خاصية white-space تُستخدم لتحديد كيفية التعامل مع الفراغات البيضاء (مثل المسافات الفارغة والأسطر الجديدة) داخل عنصر HTML nowrap: لا يتم لف النص، أي يتم عرضه على سطر واحد فقط بغض النظر عن طوله.

    2. The white-space property specifies how white-space inside an element is handled.

      خاصية white-space تحدد كيفية التعامل مع المسافات الفارغة داخل عنصر معين.

    1. If some properties have been defined for the same selector (element) in different style sheets, the value from the last read style sheet will be used.

      إذا تم تعريف بعض الخصائص لنفس المحدد (العنصر) في أوراق أنماط مختلفة، فسيتم استخدام القيمة من ورقة الأنماط المقروءة الأخيرة.

    1. Absolute size: Sets the text to a specified size Does not allow a user to change the text size in all browsers (bad for accessibility reasons) Absolute size is useful when the physical size of the output is known Relative size: Sets the size relative to surrounding elements Allows a user to change the text size in browsers

      Absolute Size (الحجم المطلق): الحجم المطلق يعني تحديد حجم النص بقيمة ثابتة ومحددة. مثال: font-size: 20px; يحدد حجم الخط ليكون ثابتًا 20 بكسل. خصائص الحجم المطلق: Sets the text to a specified size:

      يحدد النص بحجم محدد لا يتغير. هذا الحجم ثابت ولا يعتمد على العناصر الأخرى المحيطة به. Does not allow a user to change the text size in all browsers (bad for accessibility reasons):

      لا يسمح للمستخدم بتغيير حجم النص في جميع المتصفحات، وهذا قد يكون سيئًا من حيث سهولة الوصول، خاصة للأشخاص الذين يعانون من مشاكل في الرؤية ويحتاجون لتكبير النص لسهولة القراءة. Useful when the physical size of the output is known:

      الحجم المطلق يكون مفيدًا عندما تكون الأبعاد الفعلية للعنصر معروفة، مثل الطباعة على ورق أو عند تصميم موقع ثابت. Relative Size (الحجم النسبي):

      الحجم النسبي يعني تحديد حجم النص بناءً على العناصر المحيطة به أو بطريقة تتكيف مع السياق. مثال: font-size: 1.5em; أو font-size: 150%; يحدد حجم النص بناءً على حجم العنصر الأب أو السياق الحالي. خصائص الحجم النسبي: Sets the size relative to surrounding elements:

      يتم تحديد حجم النص نسبياً للعناصر المحيطة، ما يعني أن حجم الخط يتغير بناءً على حجم العناصر الأب، مما يجعل التصميم أكثر تكيُّفًا. Allows a user to change the text size in browsers:

      يسمح للمستخدم بتغيير حجم النص في المتصفحات. هذا الأمر يعد مهمًا لسهولة الوصول، حيث يمكن للمستخدمين تكبير أو تصغير النص حسب احتياجاتهم، خاصة للأشخاص الذين يعانون من ضعف البصر.

    1. oblique - The text is "leaning" (oblique is very similar to italic, but less supported)

      النص يكون "مائلًا" (يشبه الخط المائل italic ولكنه أقل دعمًا).

    1. Used together with the direction property to set or return whether the text should be overridden to support multiple languages in the same document

      unicode-bidi و direction تُستخدمان معًا لدعم تغيير اتجاه النص في العناصر التي تحتوي على لغات متعددة في نفس المستند، وهذا يساعد في جعل النص أكثر وضوحًا وقابلية للفهم، خاصة عند كتابة لغات تختلف في اتجاه الكتابة (مثل العربية والإنجليزية).