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

وسم div في HTML: ما هو، وdiv class، والتخطيط والتنسيق

الوسم <div> حاوية كتلية عامة بلا معنى خاص بها. تعلّم كيف تجمّع به المحتوى، وتنسّقه باستخدام class، وتبني التخطيطات بعناصر div وflexbox، ومتى يكون الوسم الدلالي أو الزر خيارًا أفضل.

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

ما وظيفة وسم div

<div> (اختصار لكلمة division أي قسم) حاوية عامة. يجمّع العناصر معًا كي تنسّقها أو تضعها في مكانها أو تتحكم بها بسكربت كوحدة واحدة. وحده لا يبدو كأي شيء: لا هامش ولا حدود ولا خط خاص. هو عنصر كتلي، أي يبدأ في سطر جديد ويمتد على العرض المتاح.

احذف سطر border من التنسيق وستصبح عناصر div غير مرئية: هذا هو المظهر الافتراضي لـ div. كل ما يفعله بصريًا يأتي من CSS.

div class وid

يحصل div عادةً على class، وهو الاسم الذي يستهدفه CSS. عناصر div التي تشترك في فئة تشترك في التنسيق:

.card ينسّق الصندوقين، و.card.highlight يضيف إطارًا أزرق إلى div الذي يحمل الفئتين. استخدم id عندما تحتاج إلى الإشارة إلى div محدد، مثلًا كهدف لرابط (href="#pro"). تقارن صفحة السمات بين class وid بالتفصيل.

عناصر div جنبًا إلى جنب

بما أن div عنصر كتلي، فإن العناصر تتكدس عموديًا. لوضعها في صف، اجعل العنصر الأب حاوية flex:

display: flex على .row يصفّ الأبناء، وgap يباعد بينهم، وقيم flex تقسّم العرض (1 : 2 : 1 هنا). نمط الأب والأبناء هذا هو الاستخدام الأشيع لـ div في المواقع الحقيقية. لتوسيط div، راجع كيف توسّط div.

تداخل عناصر div

يمكن لـ div أن يحتوي على عناصر div أخرى بأي عمق. كل مستوى صندوق داخل صندوق، ويمكنك رؤية ذلك بإعطاء كل div حدودًا وبعض الحشو:

اجعل التداخل سطحيًا بقدر ما يسمح التخطيط. كل غلاف إضافي صندوق آخر عليك التفكير فيه حين لا يعمل هامش أو عرض كما تتوقع.

div أم وسم دلالي؟

لا يقول div شيئًا عن محتواه. في HTML وسوم تؤدي مهمة التجميع نفسها وتقول أيضًا ما هي المجموعة:

بدلًا مناستخدممن أجل
<div class="header"><header>مقدمة الصفحة أو القسم أو الشريط العلوي
<div class="nav"><nav>مجموعة روابط تنقل
<div class="main"><main>المحتوى الرئيسي، مرة واحدة في الصفحة
<div class="post"><article>عنصر مستقل بذاته: تدوينة، تعليق، بطاقة منتج
<div class="footer"><footer>تذييل الصفحة أو القسم

تبدو هذه الوسوم مثل div تمامًا حتى تنسّقها، لكن قارئات الشاشة تعلن عنها وتتيح للمستخدمين التنقل بينها، ومحركات البحث تقرأ البنية. استخدم div للصناديق الموجودة للتخطيط أو التنسيق فقط، مثل الغلاف .row أعلاه. تغطي صفحة HTML الدلالي المجموعة كاملة.

div ليس زرًا

div مع معالج نقر يبدو قابلًا للنقر لمستخدم الفأرة، لكن مستخدم لوحة المفاتيح لا يصل إليه بمفتاح Tab ولا يضغطه بـ Enter، وقارئ الشاشة لا يعلن عنه كزر:

استخدم <button> للإجراءات و<a href> للتنقل. كلاهما يقبل التركيز ويعمل مع لوحة المفاتيح من دون أي جهد إضافي.

أخطاء شائعة

  • div داخل <p>. تُغلق الفقرة قبل div. اجعل div العنصر الخارجي، أو استخدم <span> داخل الفقرة.
  • صفحة من div فقط. الصفحة المبنية من div وحدها لا بنية فيها لقارئات الشاشة. استبدل div بـ <header> و<nav> و<main> و<footer> حيث تناسب.
  • عناصر div قابلة للنقر. استخدم <button> أو رابطًا بدلًا منها.
  • توقع أن يكون عرض div بعرض نصه. يأخذ div كامل العرض. استخدم display: inline-block أو width: fit-content أو <span> إذا أردته أن يتقلص.
  • تكرار id على عدة عناصر div. استخدم class لأي شيء يتكرر.

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

ما هو div في HTML؟

<div> حاوية عامة. يجمّع عناصر أخرى كي تنسّقها أو تضعها في مكانها معًا، وليس له معنى خاص به: تعرضه المتصفحات ككتلة تبدأ في سطر جديد وتأخذ كامل العرض المتاح.

ماذا يعني div class؟

<div class="card"> هو div يحمل سمة class. الفئة اسم يستخدمه CSS لتنسيقه (.card { ... }) وتستخدمه JavaScript لإيجاده. يمكن لعدة عناصر div أن تشترك في فئة، ويمكن للعنصر الواحد أن يحمل عدة فئات: class="card featured".

كيف أضع عنصري div بجانب بعضهما؟

ضعهما داخل div أب وأعطِ الأب display: flex. عندها يصطف الأبناء في صف واحد. أضف gap لوضع مسافة بينهما وflex: 1 على الأبناء لتقسيم العرض بالتساوي.

هل أستخدم div أم section؟

استخدم <section> أو <header> أو <nav> أو <main> أو <article> أو <footer> عندما يؤدي المحتوى ذلك الدور، لأن قارئات الشاشة ومحركات البحث تفهمها. واستخدم <div> عندما تحتاج فقط إلى صندوق للتنسيق أو التخطيط.

هل يمكنني وضع div داخل وسم p؟

لا. الفقرة لا تحتوي إلا على محتوى سطري. يغلق المتصفح <p> بمجرد أن يرى <div>، وهذا يفسد التنسيق. استخدم div كعنصر خارجي، أو <span> داخل الفقرة.

Coddy programming languages illustration

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

ابدأ الآن