Menu
flag Ar iconالعربيةdown icon

لون الخلفية background-color في CSS: الصفحات والعناصر والشفافية

تملأ background-color صندوق العنصر بلون. تعلّم كيف تضبط لون خلفية صفحة كاملة، أو div، أو صف في جدول، أو كلمة واحدة، وكيف تعمل الشفافية، ولماذا bgcolor ملغاة، وما الفرق بين background-color والاختصار background.

تحتوي هذه الصفحة على محررات قابلة للتشغيل - حرّر، شغّل، وشاهد النتيجة فوراً.

كيف تضبط لون الخلفية

تملأ background-color صندوق العنصر بلون، بما فيه حشوه والمنطقة التي تحت حده. تقبل أي لون في CSS.

لون الصفحة مضبوط على body، والبطاقة والإشعار على عناصر div الخاصة بهما، والتظليل على عنصر سطري. العناصر السطرية تحصل على خلفية خلف نصها فقط، سطرًا بسطر.

لون خلفية الصفحة كلها

ضع background-color على body. إن لم يكن للعنصر <html> خلفية خاصة به، يطلي المتصفح خلفية body فوق النافذة كلها، حتى حيث ينتهي محتوى body:

body {
  background-color: #111827;
  color: #f9fafb; /* change the text color too, for contrast */
}

الطريقة القديمة في HTML كانت <body bgcolor="black">. السمة bgcolor ملغاة على كل العناصر، فاستخدم CSS بدلًا منها. ما زالت المتصفحات تحترمها للصفحات القديمة، ولهذا قد تبدو كأنها تعمل.

الخلفيات الشفافة

يبدأ كل عنصر بـ background-color: transparent، فترى الأب خلفه. لتلوين صندوق مع بقاء ما خلفه ظاهرًا، استخدم لونًا بقناة ألفا:

opacity: 0.5 ستُظهر الخطوط أيضًا، لكنها تبهت النص كذلك. لخلفية شفافة بنص صلب استخدم لونًا بقناة ألفا. تسرد صفحة الألوان كل طرق كتابته.

أين يُطلى اللون

افتراضيًا تصل الخلفية إلى الحافة الخارجية للحد (فتظهر عبر حد متقطع أو شبه شفاف). تغيّر background-clip ذلك:

في الصندوق الأول يظهر الكهرماني بين الشرطات. في الثاني يتوقف عند الحافة الداخلية للحد، وفي الثالث تُلوَّن منطقة المحتوى فقط. الهامش لا يُطلى أبدًا: فهو شفاف دائمًا.

صفوف جدول مخططة

خلفية على كل صف ثانٍ تجعل الجداول العريضة أسهل في التصفح:

background-color مقابل الاختصار background

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

.hero {
  background-image: linear-gradient(#2563eb, #1e40af);
  background: #111827;          /* also resets background-image to none */
}

.hero {
  background-image: linear-gradient(#2563eb, #1e40af);
  background-color: #111827;    /* only the color; the gradient stays */
}

استخدم background-color حين تقصد اللون فقط. واستخدم background حين تضبط الخلفية كلها في مكان واحد، غالبًا لون مع صورة؛ راجع background-image.

سهولة الوصول: اقرنه بلون النص

لون الخلفية لا يكون مقروءًا إلا بجانب لون نصه. كلما ضبطت أحدهما، افحص الآخر: يطلب WCAG نسبة تباين 4.5:1 على الأقل لنص الجسم. الخلفيات الداكنة تحتاج إلى نص فاتح مضبوط صراحة، لأن النص يحتفظ باللون الداكن الذي يرثه.

أخطاء شائعة

  • استخدام bgcolor. إنها ملغاة. استخدم background-color.
  • استخدام opacity لخلفية شفافة. تبهت المحتوى أيضًا. استخدم لونًا بقناة ألفا.
  • اختصار background بعد background-image. يعيد ضبط الصورة. اكتب background-color بدلًا منه.
  • توقع أن يُظهر الهامش اللون. الهامش خارج الخلفية. استخدم الحشو للمسافة الملونة.
  • خلفية داكنة مع النص الافتراضي. اضبط color فاتحًا أيضًا.

الأسئلة الشائعة

كيف أغيّر لون الخلفية في HTML؟

استخدم خاصية CSS المسماة background-color. للصفحة كلها: body { background-color: #f3f4f6; }. ولعنصر واحد: <div style="background-color: #fef3c7;">.

هل ما زالت bgcolor صالحة في HTML؟

لا. السمة bgcolor على <body> و<table> و<td> ملغاة في HTML5. ما زالت المتصفحات ترسمها للصفحات القديمة، لكن الطريقة الصحيحة هي background-color في CSS.

كيف أجعل لون الخلفية شفافًا؟

استخدم لونًا بقناة ألفا، مثل background-color: rgb(37 99 235 / 20%);. على عكس opacity، يبقي هذا النص الذي بالداخل مرئيًا بالكامل.

ما الفرق بين background وbackground-color؟

تضبط background-color اللون فقط. أما background فاختصار لكل خصائص الخلفية (اللون، الصورة، الموضع، الحجم، التكرار، الارتباط، الأصل، والقص)، لذلك تعيد background: red; أيضًا أي صورة خلفية إلى none.

لماذا يملأ لون خلفية body النافذة كلها؟

حين لا يكون للعنصر <html> خلفية خاصة به، يطلي المتصفح خلفية body عبر اللوحة كلها، حتى خارج صندوق body. أعطِ html خلفية إن أردت أن يختلفا.

Coddy programming languages illustration

تعلّم البرمجة مع Coddy

ابدأ الآن