"Ford",
القيمة
"Ford",
القيمة
"brand"
المفتاح
use named keys, instead of numeric indices.
في المصفوفات العادية، كل عنصر بتخزنيه بياخذ "رقم ترتيب" تلقائي (0، 1، 2، إلخ) عشان تقدري توصليله. لكن في المصفوفة المرتبطة، إنتِ اللي بتختاري "اسم" أو "مفتاح" (Key) لكل عنصر، وبتربطي هاد المفتاح بالقيمة تبعته (Value) عن طريق استخدام العلامة =>. بتصير العلاقة مثل القاموس: كلمة ومعناها.
count
لعد عدد العناصر ال array
$i++;
برجع وبحكي لاحظي انو الزيادة باالاول
$i+=10;
لاحظي انو الزيادة كانت بالبداية بعدين اجت الطباعة
endwhile
بهذا الكود بتشتغل بالضبط زي قوس الإغلاق المتعرج } في الطريقة العادية اللي بنكتب فيها اللوب.
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)."
The PHP break Keyword
دور break: وظيفتها تحكي للبرنامج "وقف هون، إحنا لقينا الجواب المطلوب، ما في داعي تكمل تفتيش بالباقي، اطلع برا الـ switch وكمل باقي كود الموقع".
التحذير المهم جداً: جملة switch بالبرمجة بتتصرف زي "الشلال" (Fall-through). يعني إذا البرنامج لقى حالة مطابقة، ونفذ الكود تبعها، بس ما لقى كلمة break توقفه؛ رح يظل نازل وينفذ كود الحالة اللي تحتها مباشرة (حتى لو كانت الحالة اللي تحتها غلط وما بتطابق متغيرك!). عشان هيك نسيانها بيعمل أخطاء بالكود
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) ليست هي الأخيرة، وحصل تطابق مع هذه الحالة، فإن الحالة التي تليها سيتم تنفيذها أيضاً حتى لو كان التقييم لا يطابق تلك الحالة!
The last code block does not need a break, the block breaks (ends) there anyway.
آخر بلوك كود لا يحتاج إلى break، لأن البلوك ينتهي هناك على أي حال.
This will stop the execution of code, and no more cases are tested.
هذا سيوقف تنفيذ الكود، ولن يتم اختبار المزيد من الحالات (cases) الأخرى.
$t = date("H");
هنا قمنا بإنشاء متغير اسمه $t. واستخدمنا دالة جاهزة اسمها date("H")، وظيفتها أن تقرأ "الساعة الحالية" بنظام 24 ساعة (أي الأرقام من 00 إلى 23) وتخزنها داخل هذا المتغير.
Returns true if the values are equal
$x = 100;<br /> $y = "100";
if ($x == $y) { echo "$x is equal to $y"; }
??
هاي الأداة مريحة جداً (تمت إضافتها في PHP 7) ووظيفتها إنها توفر "خطة بديلة" في حال كان المتغير تبعك فاضي (NULL) أو مش موجود أصلاً.
كيف بشتغل؟ بتعطيه المتغير الأساسي، بعدين ??، بعدين "قيمة بديلة" (Backup). إذا المتغير الأساسي موجود وفيه بيانات، بيعتمدها. إذا كان فاضي أو NULL، بيعتمد القيمة البديلة فوراً.
القاعدة: المتغير الأساسي ?? القيمة البديلة
?:
بتكتبي شرط، بعده علامة استفهام ?، بعدين النتيجة إذا كان الشرط صح (True)، بعدين نقطتين رأسيتين :، وأخيراً النتيجة إذا كان الشرط خطأ (False).
The conditional operators are used to set a value depending on conditions (shorthand for if...else):
وهي باختصار عبارة عن طريقة مختصرة وسريعة جداً لكتابة جملة if...else الطويلة بسطر واحد بس!
Concatenation assignment
هاي الأداة بتختصر عليكِ الكود وبتعمل خطوتين بخطوة وحدة: بتلزق النص الثاني بنهاية النص الأول، وبنفس الوقت بتحدّث قيمة المتغير الأول وتخزن النتيجة النهائية جواته.
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) تصاعدياً أو تنازلياً، لأنها بتعمل كل المقارنات المطلوبة بخطوة وحدة سريعة ونظيفة.
define("CARS", array("Volvo", "BMW", "Toyota")); echo CARS[0];
define("CARS", array(1, "BMW", "Toyota")); echo CARS[0]; Output: 1
Array Constants
الشرح التفصيلي: الثابت مش محصور بس بقيمة مفردة (زي رقم أو كلمة واحدة). بتقدري تخزني جواته "مصفوفة" (Array) كاملة بتحتوي على مجموعة بيانات (مثلاً: ثابت بيحتوي على أسماء كل الأشهر). وهاي المصفوفة رح تظل محمية وثابتة ما بتتغير طول ما الكود شغال.
a constant at compile-time.
في "وقت الترجمة" شو يعني "وقت الترجمة" (Compile-time) والنطاق الأعلى؟ لغة PHP لما تستخدمي فيها const، بتقوم بحجز مكان للثابت بالذاكرة قبل ما البرنامج يبدأ بالتنفيذ الفعلي (هذا هو وقت الترجمة). عشان هيك، اللغة بتشترط عليك تكتبي const "عالسّطح" في الصفحة من برّا (وهاد هو النطاق الأعلى)، وبتمنعك تماماً تحطيها جوا أشياء بتعتمد على شروط أو أحداث معينة (زي جمل if أو الدوال). ليش؟ لأن الـ PHP بتحتاج تشوف الثابت وتجهزه فوراً من أول نظرة للكود، وما بتقدر تستنى لتدخل جوا دالة وتشوف إذا رح تشتغل أو لأ.
ثوابت الفئات (Class constants): هاي ميزة خاصة جداً بـ const؛ إذا كنتِ بتكتبي كود متقدم باستخدام البرمجة الكينونية (OOP) وعندك Class، الطريقة الوحيدة لتعملي ثابت جواه هي باستخدام const.
Constants defined with the const keyword can be used to define class constants.
يمكن استخدام const لتعريف ثوابت الفئات (class constants).
define("GREETING", "Welcome to W3Schools.com!");
قال Gemini سؤالك ذكي جداً وممتاز! وهو بيلخص الفكرة الجوهرية لدالة define().
الجواب باختصار: الثابت رح يكون Global (عالمي) في الحالتين، والفرق الوحيد هو "متى" بيتم إنشاء هذا الثابت.
عشان أوضحلك الصورة أكثر: لما تكتبي define() جوا دالة (يعني Local)، إنتِ فعلياً ما بتخليه محلي، إنتِ بس بتأجلي عملية "إنشائه". يعني الثابت ما رح ينولد ولا رح يكون إله أي وجود بالبرنامج إلا لما يتم تشغيل الدالة (زي ما عمل بالمثال لما استدعى الدالة وكتب myTest();).
بمجرد ما الدالة اشتغلت، الثابت GREETING انخلق وتلقائياً كسر حدود الدالة وصار Global، وعلشان هيك قدر يطبعه بأمر echo خارج الدالة بدون أي مشاكل.
ليش المبرمج ممكن يعمل هيك؟ مرات المبرمج ما بده ينشئ الثابت ويحجزله مساحة بالذاكرة من بداية الكود، بل بده إياه ينخلق بس إذا صار حدث معين (مثلاً إذا المستخدم دخل على صفحة معينة وتنفذت هاي الدالة).
يعني الخلاصة: دالة define() قوية جداً، وين ما حطيتيها (جوا دالة، أو جوا جملة If، أو برا) النتيجة وحدة ⬅️ الثابت بس ينخلق رح يكون متاح للكل (Global)!
This example declares a constant inside a function, and output it outside the function:
هذا المثال بيثبت فكرة "النطاق العام" اللي حكيناها فوق. الكود قام بإنشاء الثابت GREETING داخل دالة (Function) اسمها myTest(). بعدين قام بتشغيل هاي الدالة، ولما إجا يطبع الثابت بـ echo، طبعه خارج الدالة واشتغل معاه تمام. (لو كان هاد متغير عادي $greeting مش ثابت، كان أعطى Error لأنه المتغيرات بتظل محبوسة جوا الـ Function تبعتها).
GREETING
(لاحظي إننا كتبنا اسمه مباشرة بدون ما نحط قبله علامة $).
Welcome to W3Schools.com!
القيمة
GREETING
اسم المتغير
define(CONSTANT_NAME, value);
عشان تنشئي ثابت بتكتبي الدالة هيك: define(CONSTANT_NAME, value);
المدخلات (Parameters): بتاخذ شغلتين أساسيات:
CONSTANT_NAME: اسم الثابت (وهو حساس لحالة الأحرف، يعني GREETING غير عن greeting).
value: القيمة اللي بدك تخزنيها جواته.
cannot be changed or undefined.
لا يمكن تغييرها أو إلغاء تعريفها.
rand() function generates a random number:
بتنج 10 ارقام عشوائية
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 أقل من النص).
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 (لأنه نص بيحتوي على حروف مش أرقام)
is_float() function checks if the type of a variable is float.
$x = 10.365; echo is_float($x); OUTPUT: 1
is_int() Function
قال Gemini وظيفة الدالة is_int() باختصار شديد: بتفحص إذا المتغير عبارة عن "رقم صحيح" أو لأ.
الرقم الصحيح: هو أي رقم (موجب أو سالب) ما فيه فواصل وأعشار (مثل 5، 100، -20).
النتيجة: إذا كان الرقم صحيح بتعطيك النتيجة true (صح)، وإذا كان أي شيء ثاني (زي نص، أو رقم عشري مثل 5.5) بتعطيك false (خطأ).
مثال سريع:
is_int(5); ⬅️ رح تعطي true
is_int(5.5); ⬅️ رح تعطي false
the white space will also be present in the result
رح تطبعهم بحيث الكلمتين ما رح يكونو ملزقين ببعض
More readable for strings with many variables (do not need to use the concatenation operator (.))
أسهل وأكثر راحة للعين إذا عندك جملة طويلة وفيها متغيرات كثير، لأنك ما رح تضطري تقطعي الجملة كل شوي وتستخدمي النقطة . لدمج الكلمات.
Cleaner for simple, constant strings
شكلها أنظف وأفضل إذا بدك تطبعي نصوص عادية وثابتة ما فيها أي متغيرات.
Readability
سهولة القراءة (Readability) - متى أستخدم كل وحدة؟
Slightly slower (PHP must scan for variables and escape sequences)
أبطأ بشوي؛ لأن الـ PHP بتضطر تعمل "فحص" (Scan) وتقرأ النص كلمة كلمة عشان تكتشف إذا مخبي جواته متغيرات أو أوامر تنسيق.
Slightly faster (PHP does not need to parse the content)
أسرع بشوي! والسبب إنو لغة PHP بتاخد النص وبتطبعه مباشرة بدون ما تتعب حالها وتقرأ محتواه.
Supports many, like: \n, \t, \r, \$, \"
بتدعم كل الرموز الخاصة اللي بتنسق النص زي السطر الجديد \n والمسافة \t.
Only \' and \\ are supported
المفردة '': ما بتدعم إلا رمز الفاصلة نفسها \' والشرطة المائلة \
Escape sequences
رموز التخطي والتنسيق
Yes - variables are replaced with their values
المزدوجة "": بتدعم كل الرموز الخاصة اللي بتنسق النص زي السطر الجديد \n والمسافة \t.
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). الجملة مقسومة لفكرتين أساسيات:
استبدال المتغيرات (Substitute variables) وهاد الاشي اللي اتفقنا عليه؛ لو حطيتي متغير زي $name جوا الـ ""، الـ PHP رح تفهمه وتطبع قيمته الحقيقية (مش رح تطبع كلمة $name حرفياً).
الرموز الخاصة (Special characters) - الميزة الجديدة! علامات التنصيص المزدوجة بتسمحلك تستخدمي علامة الشرطة المائلة للخلف \ (Backslash) عشان تخلي الحرف اللي وراها يشتغل كـ "أمر مخفي" لتنسيق النص، بدل ما ينطبع كحرف عادي. هاي العملية اسمها (Escaping).
أشهر هدول الرموز اللي ذكرهم:
\n (New Line): معناها انزل سطر جديد.
\t (Tab): معناها اعمل مسافة كبيرة (زي كبسة Tab بالكيبورد).
\r (Carriage Return): بترجع المؤشر لأول السطر (استخدامها قليل حالياً، وغالباً بتيجي مع \n).
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).
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 لأنه أكثر من مقطع)
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
To get the data type and the value of a variable, use the var_dump() function
وظيفتها باختصار إنها بتعطيكِ "التقرير الكامل" عن أي متغير أو قيمة بتعطيها إياها. هاد التقرير بشمل شغلتين:
نوع البيانات (Data Type): هل هو رقم، نص، مصفوفة، أو غيره.
القيمة الفعالية (Value): شو المخزن جواته بالضبط (وإذا كان نص بتعطيك كم عدد حروفه كمان).
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) عشان تجبرك تصلحي الكود. هاد الاشي بساعدك تكتشفي الأخطاء بسرعة.
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;
In the example above, notice that we did not have to tell PHP which data type the variable is.
لاحظنا في المثال السابق أننا لم نضطر لإخبار PHP بنوع البيانات الخاص بالمتغير
PHP is a Loosely Typed Language
لغة PHP هي لغة "مرنة" في أنواع البيانات
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;
if your web server does not support PHP
install a web server: برنامج XAMPP نزّل لك سيرفر اسمه Apache (وهو الويب سيرفر اللي بتشغليه من لوحة تحكم XAMPP).
install PHP: نزّل لك المحرك اللي بيقرأ وبيفهم أكواد PHP.
install a database: نزّل لك نظام قواعد البيانات MySQL.
PHP can encrypt data
لغة PHP قوية جداً في موضوع حماية البيانات وتشفيرها، وفيها دوال (Functions) جاهزة ومبنية داخلها بتسهل هاي العملية
The :first-child pseudo-class matches a specified element that is the first child of another element.
الـ :first-child هي pseudo-class تُستخدم في CSS لتحديد العنصر الذي يكون الابن الأول لعنصر أب . هذا يعني أنها تطابق العنصر الأول داخل حاوية إذا كان هذا العنصر هو أول طفل لها.
normal flow
static
relative to the viewport
نسبي إلى نافذة العرض
djusted
يتم تعديلها
Other content will not be adjusted to fit into any gap left by the element.
لن يتم تعديل المحتوى الآخر ليتناسب مع أي فجوة يتركها العنصر.
unusable
غير صالح للاستخدام
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 العديد من الطرق لإضافة إدخال غير قانوني. لتقييد الإدخال بأمان، يجب أيضًا التحقق منه بواسطة المستقبل (الخادم)!
legal number
الرقم القانوني
The novalidate attribute is a boolean attribute.
عند إضافة الخاصية novalidate إلى عنصر <form>، يتم تجاوز جميع عمليات التحقق التلقائية التي يقوم بها المتصفح عند إرسال النموذج.
Useful for form submissions where a user wants to bookmark the result
عند استخدام method="get"، يتم إرسال بيانات النموذج كجزء من عنوان URL . هذا يجعل النتائج قابلة للمرجعة أو الحفظ (bookmarked) بسهولة.
Tip: If the action attribute is omitted, the action is set to the current page.
إذا لم يتم تحديد الخاصية action في <form>، سيتم إرسال النموذج إلى الصفحة الحالية.
indentation
المسافة البادئة
highest priority,
الأولوية القصوى
The <img> element is used by browsers that do not support the <picture> element, or if none of the <source> tags match.
يُستخدم عنصر بواسطة المتصفحات التي لا تدعم عنصر <picture>، أو إذا لم يتطابق أي من علامات <source>.
attribute that defines when the image is the most suitable.
تحدد متى تكون الصورة هي الأكثر ملاءمة.
the web page might flicker while the image loads.
قد تظهر صفحة الويب بشكل متقطع أثناء تحميل الصورة
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 إذا لم يتمكن المتصفح من العثور على الصورة.
The <img> tag creates a holding space for the referenced image.
علامة img تُنشئ مساحة مخصصة لعرض الصورة المشار إليها.
background: #ffffff url("img_tree.png") no-repeat right top;
background-color, background-image, background-repeat, background-attachment, background-position
background: #ffffff url("img_tree.png") no-repeat right top;
حفظ الترتيب
(will not scroll with the rest of the page):
قصدو بال fixed رح تضلها ثابتة مكانها
(will not scroll with the rest of the page):
قصدو بال fixed رح تضلها ثابتة مكانها
opaque).
معتم
0.3;}
القيمة الافتراضية للعتامة هي 1
exact value is not important
القيمة الدقيقة ليست مهمة
with no time zone.
بدون منطقة زمنية.
horizontally center the element within its container.
auto لجعل المتصفح يوزع هذه المساحة بالتساوي بين الجوانب الأيسر والأيمن، مما يؤدي إلى محاذاة أفقية (Horizontally Centering) للعنصر.
you can set the margins to auto
باستخدام margin: auto، يتم توزيع المساحة المتبقية على الجانبين الأيمن والأيسر بالتساوي.
hide and show elements without deleting and recreating them.
إخفاء العناصر وإظهارها دون حذفها وإعادة إنشائها.
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.
pixels/16=em
اذا بدي احول من em من % نضرب ب 100%
Set Font Size With Em
إذا كان حجم الخط الأساسي = 16px: 1em = 100% (لأن 1em يعني الحجم الكامل للعنصر الحاوي). 0.5em = 50%. 2em = 200%.
They create a mechanical look.
إنها تخلق مظهرًا ميكانيكيًا.
create a modern and minimalistic look.
خلق مظهر عصري وبسيط
create a sense of formality and elegance.
خلق إحساس بالرسمية والأناقة
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) للعنصر،
define the description term
describing the term of a definition list
Note: A link does not have to be text. A link can be an image or any other HTML element!
هذه العبارة تعني أن العنصر (الرابط) في HTML ليس مقتصرًا فقط على النصوص ليكون قابلًا للنقر. يمكن أن يحتوي الرابط على عناصر أخرى مثل الصور أو حتى أي عنصر HTML آخر لجعله قابلًا للنقر.
What is the highest HEX number of the following:
القاعدة: كلما ارتفعت الحروف الأبجدية أو الأرقام، زادت القيمة. وبالتالي، الحروف الأبجدية الأقل (مثل A) تعني قيمة أقل، وليس أعلى.
الخلاصة: كلما ارتفعت قيمة الأحرف أو الأرقام في الكود الست عشري، زادت القيمة العددية.
verbal stress.
الضغط اللفظي
Navigation
مش معنا
Equal Height Boxes
مش معنا
Grid of Boxes
شبكة
appear below it
تظهر تحتها
float
العناصر العائمة
containing a specified word.
الفرق بينها وبين * ال * value اما ال ~ word (كلمة مستقلة, منفصلة)
contains a specified value.
يعني الvalue لازم تكون محتوى موجود داخل ال value
whose value starts with the specified value.
معناها start with وبكتب الكلمة الي بدي اعمل للجملة تبعتها style
ends with a specified value.
معناها end with وبكتب الكلمة الي بدي اعملها style
selects the markers of list items.
تستخدم لادرج خصائص لل list
portion
جزء
The ::first-line pseudo-element is used to add a special style to the first line of a text.
ما بتتطبق على inline element
div ~ p
جميع عناصر ال p الي بتيجي بعد ال div مباشرة وبتكون ع نفس ال level
iv + p
عنصر ال p الي اجت مباشرة بعد ال div بستهدف ال p الي بتيجي بعد ال div مباشرة اذا اجى مثلا span وداخه h1 لن يستهدفه
Next Sibling
الاخ المباشر
Child Combinator (>)
ابن مباشر
div > p
يعني استهدفلي ال p بتيجي بعد ال div بشكل مباشر
The input autocomplete attribute specifies whether a form or an input field should have autocomplete on or off.
يعني لما اكبس ع اي box بال form بعطيني خيارات انا معبياها مسبقا ب form قبل هيك هاد اذا كنت مشغلة خاصية ال on ام ال off توقف هذا الاشي
The short hint is displayed in the input field before the user enters a value.
لما يكون ال box فاضي
title attribute to describe the pattern to help the user.
يعني اعطي hint بالاخير
regular expression
بدنا نشوف ال value هاي بتطابق نمط معين او لا
A read-only input field cannot be modified
ما بنقدر نعدل القيمة الابتدائية
Tel
رقم الهاتف
pattern
يعني القيمة الي بدخلها ال user لازم تطابق نمط معين
Restrictions
القيود
restrictions
قيود
Depending on browser support, a color picker can show up in the input field.
اذا كان ال browser بدعم رح يطلع عنا color picker ويجب ان يكون اللون بال HEX (السادس عشري)
omit the submit button's value attribute,
اذا احنا اهملنا ال value
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. العنصر الذي يأتي متأخرًا في الكود (أقرب إلى نهاية المستند) سيظهر أعلى العنصر الذي يسبقه
behind
خلف
overlap
تداخل
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، يتم تعديل موضع العنصر بعيدًا عن موضعه الطبيعي . هذا يعني أن العنصر يتحرك بالنسبة إلى مكانه الأصلي، لكنه يظل يشغل نفس المساحة في التدفق العادي. ملحوظة: عند تحريك العنصر بهذه الطريقة، لن يتم تعديل المحتوى الآخر لملء الفراغ الذي تركه العنصر. بمعنى آخر، المساحة الأصلية التي كان يشغلها العنصر قبل تحريكه تظل محفوظة كما هي.
, depending on the scroll position
يعني اول اشي ما رح يبين عندي الفرق بس لما انزل بالصفحة لتحت رح يبين
toggles
تبديلات
a gap
فراغا
Note: Absolute positioned elements are removed from the normal flow, and can overlap elements.
ملاحظة: تتم إزالة العناصر ذات الوضع المطلق من التدفق الطبيعي، ويمكن أن تتداخل العناصر.
An element with position: absolute; is positioned relative to the nearest positioned ancestor (instead of positioned relative to the viewport, like fixed).
يتحرك العنصر بالنسبة الى الشاشة او الى اقرب اب يحتوي على ال position باستثناء ال static
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; لا يتم وضعه في أي موقع خاص أو مميز؛ حيث يتم تحديد موضعه دائمًا وفقًا للتدفق الطبيعي للصفحة.
static
الافتراضية
and the remaining space will be split equally between the two margins:
سيشغل العنصر العرض المحدد، وسيتم تقسيم المساحة المتبقية بالتساوي بين ال margins
Setting the width of a block-level element will prevent it from stretching out to the edges of its container
سيؤدي ضبط عرض عنصر على مستوى الكتلة إلى منعه من الامتداد إلى حواف الحاوية الخاصة به
The element will be hidden, and the page will be displayed as if the element is not there:
ما رح يعطي تأثير بانه موجود كانو انحدف عكس visibility:hidden; رح تعطي تأثير ورح يتم اخفاء العنصر وليس حدفه
Sets this property to its default value
يعيد الخاصية إلى قيمتها الافتراضية.
Makes the container disappear, making the child elements children of the element the next level up in the DOM
يجعل العنصر يختفي كحاوية، ويعامل أبناءه كما لو كانوا أبناء العنصر الأعلى.
Displays an element as either block or inline, depending on context
يعتمد عرضه (block أو inline) على السياق.
list-item Let the element behave like a <li> element
يجعل العنصر يتصرف كعنصر
Let the element behave like a <colgroup> element
يجعل العنصر مثل colgroup لتجميع أعمدة الجدول.
table-caption Let the element behave like a <caption> element
يجعل العنصر مثل <caption> (عنوان الجدول).
Let the element behave like a <table> element
يعرض العنصر كجدول مثل <table>.
inline-table The element is displayed as an inline-level table
يعرض العنصر كجدول ولكنه يظهر كعنصر inline.
inline-grid
مشابه لـ grid، لكنه يعرض الحاوية كعنصر inline.
Displays an element as a block-level grid container
يجعل العنصر حاوية Grid Container لتنظيم العناصر على شكل شبكة
inline-flex
مشابه لـ flex، لكنه يعرض الحاوية كعنصر inline.
formatted
يعرض
flex
تُستخدم لتوزيع العناصر بمرونة
stretches out to the left and right as far as it can).
يمتد إلى اليسار واليمين بقدر ما يستطيع
radius of the circle
نصف القطر
coordinates
الاحداثيات
poly - defines a polygonal region
متعدد الاضلاع
Shape
الشكل
coords="34,44,270,350"
الاحداثيات
usemap="#workmap"
ال usemap بتساوي # مع ال name تبع ال map
you can create clickable areas on an image.
المناطق القابلة للنقر
disturb
يزعج
By default, the image is repeated so it covers the entire element.
بشكل افتراضي، يتم تكرار الصورة بحيث تغطي العنصر بأكمله.
opacity
القيمة الافتراضية عي 1
The list attribute of the <input> element, must refer to the id attribute of the <datalist> element.
عشان اربط بين ال input وال datalist بستخدم ال id ولازم يكونو نفس الاسم
The <datalist> element specifies a list of pre-defined options for an <input> element.
نفس فكرة ال select
Use the multiple attribute to allow the user to select more than one value:
اذا بدي اختار اكتر من خيار بضلني ضاغطة ع الماوس مع كبسة ctrl
drop-down list:
قائمة منفردة
width property visibility property background properties border properties
الاشياء الي بقدر استخدمها داخل ال colgroup
Hoverable Table
جدول قابل للتفاعل عند التمرير
Add the border-bottom property to all tr elements to get horizontal dividers:
يتم استخدام خاصية border-bottom مع العنصر tr (الصفوف) لتطبيق حدود أسفل كل صف.
Horizontal Dividers
الفواصل الافقية
overlapping
متداخلة
zebra stripes
جملة "Zebra Stripes" تعني "خطوط الحمار الوحشي".
في سياق تصميم الويب أو جداول HTML، يشير المصطلح إلى استخدام ألوان متناوبة للصفوف (عادةً لون فاتح ولون غامق) لجعل البيانات أكثر وضوحًا وسهولة في القراءة، كما تبدو مثل نمط خطوط الحمار الوحشي
non-secure data,
بيانات غير حساسة
Useful for form submissions where a user wants to bookmark the result
مفيدة اذا بدنا نعبت بيانات ال form وبدو يخزن هاي البيانات يعملها bookmark
in name/value pairs
زوج
The form-data can be sent as URL variables (with method="get") or as HTTP post transaction (with method="post").
الفرق بينهم ال get بعطيكي الموقع كامل https://www.w3schools.com/action_page.php?fname=John&lname=Doe زي هيك بضيف الاشياء الي عبيناها بال form
اما ال post ما بعطيني الموقع كامل https://www.w3schools.com/action_page.php زي هيك
method="get")
القيمة الافتراضية
action
القيمة الافتراضية انو ينبعت على نفس الصفحة
form-handler.
صفحة ال server الصفحة الي رح ارسلها ال form
who have difficulty clicking on very small regions
للاشخاص كبار السن الي بعانو يضغطو ع الاشياء الصغيرة
checkbox"
زر ع شكل مربع
"radio">
زر
<input>
القيمة الافتراضية عي text
The HTML <input> element is the most used form element.
القيمة الافتراضية لل input هي text
caption
عنوان
To avoid having double borders like in the example above, set the CSS border-collapse property to collapse.
اذا بدي اشيل ال double border بستخدم border collapse
arrange
يرتب
The white-space property specifies how white-space inside an element is handled.
خاصية white-space تُستخدم لتحديد كيفية التعامل مع الفراغات البيضاء (مثل المسافات الفارغة والأسطر الجديدة) داخل عنصر HTML nowrap: لا يتم لف النص، أي يتم عرضه على سطر واحد فقط بغض النظر عن طوله.
The white-space property specifies how white-space inside an element is handled.
خاصية white-space تحدد كيفية التعامل مع المسافات الفارغة داخل عنصر معين.
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.
إذا تم تعريف بعض الخصائص لنفس المحدد (العنصر) في أوراق أنماط مختلفة، فسيتم استخدام القيمة من ورقة الأنماط المقروءة الأخيرة.
surrounded
محاطة
(opacity).
العتامة والشفافية
href="https://www.w3schools.com"
in the start tag
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:
يسمح للمستخدم بتغيير حجم النص في المتصفحات. هذا الأمر يعد مهمًا لسهولة الوصول، حيث يمكن للمستخدمين تكبير أو تصغير النص حسب احتياجاتهم، خاصة للأشخاص الذين يعانون من ضعف البصر.
oblique - The text is "leaning" (oblique is very similar to italic, but less supported)
النص يكون "مائلًا" (يشبه الخط المائل italic ولكنه أقل دعمًا).
Then, add a blur effect (5px) to the shadow:
كل ما زاد الرقم زاد الضباب اكتر
blur
شىء ضبابي
shadow
ضل
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 تُستخدمان معًا لدعم تغيير اتجاه النص في العناصر التي تحتوي على لغات متعددة في نفس المستند، وهذا يساعد في جعل النص أكثر وضوحًا وقابلية للفهم، خاصة عند كتابة لغات تختلف في اتجاه الكتابة (مثل العربية والإنجليزية).