انتقل إلى محتوى الدرس
الدرس 58
تاريخ النشر: تاريخ التحديث:
دورة جافا سكريبت

تعديل تنسيقات CSS عبر DOM في JavaScriptJavaScript DOM CSS Styling طريقة كتابة وحدات القياس النصية، وإظهار وإخفاء عناصر الواجهة، وقراءة التنسيق getComputedStyle

عدّل تنسيقات CSS عبر شجرة DOM في JavaScript بإتقان خصائص element.style ووحدات القياس وطرق الإخفاء وقراءة القيم المحسوبة بـ getComputedStyle() ومتغيرات setProperty.
أقسام الدرس
6
الأمثلة
2
اللغة
العربية
المشاهدات
5,854
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

يمتلك كل عنصر في الصفحة كائناً مدمجاً باسم el.style يمثل سمة التنسيق السطرية style="..." الخاصة به. يتيح لك تعديل خاصية مفردة مثل el.style.color دون المساس ببقية الأنماط السطرية، كما يعيد إسناد النص الفارغ "" الخاصية إلى وضعها الأصلي في ملفات التنسيق.

مخطط تنسيق عناصر DOM بين النمط السطري element.style وقراءة getComputedStyle ومتغيرات setProperty

نظراً لأن الشرطة العادية - تعني عملية الطرح الحسابية في JavaScript، تُحذف الشرطات من أسماء خصائص CSS المركبة وتُكتب بصيغة الجمل camelCase:

الاسم في ملف CSSالمقابل في el.styleمثال القيمة المسندة
background-colorel.style.backgroundColor"#f2ebf9"
font-sizeel.style.fontSize"18px"
border-radiusel.style.borderRadius"12px"
z-indexel.style.zIndex"10"

من أكثر الهفوات شيوعاً كتابة رقم مجرد مثل bar.style.width = 75؛ إذ يتجاهل المتصفح الأرقام الخالية من الوحدات بصمت! أرفق دائماً وحدة القياس كنص مثل "75%" أو "24px" (باستثناء الخصائص العديمة الوحدة بطبيعتها مثل opacity).

JavaScript
let pct = 40;
function advanceProgress() {
  pct = pct >= 100 ? 20 : pct + 20;
  const bar = document.getElementById('prog-fill');
  bar.style.width = pct + '%';
  bar.textContent = pct + '%';
}

ميز بدقة بين طرق الإخفاء: فإن تفعيل el.hidden = true أو el.style.display = "none" يطوي مساحة العنصر تماماً فتقترب العناصر المجاورة مكانه، بينما el.style.visibility = "hidden" يخفي رسمه فقط مع إبقاء مساحته محجوزة في التخطيط.

انتبه لحقيقة جوهرية: لا تقرأ el.style.fontSize سوى ما كُتب مباشرةً داخل سمة style="..." السطرية، وترجع نصاً فارغاً للأنماط القادمة من ملفات CSS! ولقراءة التنسيق النهائي الفعلي المحسوب على الشاشة استدعِ الدالة المخصصة للقراءة window.getComputedStyle(el).

تعتمد أنظمة التصميم الحديثة على متغيرات CSS المبدوءة بشرطتين مثل --card-accent؛ وبما أن اسمها يبدأ بشرطتين، نحدثها برمجياً عبر الدالة النظيفة el.style.setProperty("--card-accent", "#0f766e").

JavaScript
function switchTealAccent() {
  const card = document.getElementById('theme-demo');
  card.style.setProperty('--box-tone', '#0f766e');
  const realBg = window.getComputedStyle(card).borderColor;
  document.getElementById('css-out').textContent = 'Computed border: ' + realBg;
}
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

أتقنت في هذا الدرس تعديل الأنماط المباشرة عبر el.style وصياغة camelCase ووحدات القياس النصية وطرق الإخفاء وقراءة القيم الفعلية عبر getComputedStyle() وتحديث متغيرات CSS بـ setProperty(). الخطوة التالية: انتقل إلى درس «إدارة الفئات عبر classList في JavaScript» للتحكم النظيف بفئات التنسيق الجاهزة.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات3

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 3 مفهومةأول بطاقة، أول خطوة
01 HTMLElement.style كائن التنسيق السطري element.style
كائن يمثل سمة التنسيق السطرية للعنصر ويتيح قراءة وتعديل الخصائص المباشرة بصيغة camelCase.
للمراجعة
02 window.getComputedStyle() دالة التنسيق المحسوب getComputedStyle
دالة مخصصة للقراءة ترجع القيم النهائية الفعلية لتنسيق العنصر بعد دمج ملفات CSS والأنماط السطرية.
للمراجعة
03 style.setProperty() دالة ضبط متغيرات التنسيق setProperty
دالة على كائن style تُستخدم لتحديث خصائص التنسيق ومتغيرات CSS المخصصة المبدوءة بشرطتين.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات2

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 2 مفهومةأول بطاقة، أول خطوة
01 PX PX
CSS Pixels Unit
وحدة قياس البكسل النصية التي يجب إرفاقها عند تعيين الأبعاد وأحجام الخطوط برمجياً.
للمراجعة
02 RGB RGB
Red Green Blue Color Model
الصيغة اللونية القياسية التي توحد بها دالة getComputedStyle قيم الألوان المحسوبة.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. افتح مثال شريط التقدم وانقر الزر عدة مرات لمشاهدة تحديث خاصية العرض مع وحدة النسبة المئوية.

  2. افتح مثال متغير اللون وانقر الزر لتغيير --box-tone وقراءة لون الإطار المحسوب بالصيغة الفعلية.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

10أسئلة 2أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي10 أسئلة تنتظرك
01

كيف تُكتب خاصية CSS المركبة "background-color" عند الوصول إليها عبر el.style في JavaScript؟

02

لماذا يفشل السطر "box.style.width = 200;" في تغيير عرض العنصر بالمتصفح؟

03

ما الدالة التي تقرأ حجم الخط الفعلي المطبق على العنصر من ملف تنسيق خارجي (.css)؟

04

يمكن تغيير لون العنصر بالكتابة المباشرة داخل window.getComputedStyle(el).color = "red".

05

أي استدعاء مما يلي يحدث قيمة متغير CSS المخصص --brand-primary بصورة صحيحة؟

06

بمَ يختلف الإخفاء عبر visibility: "hidden" عن الإخفاء عبر display: "none" في تخطيط الصفحة؟

07

إسناد نص فارغ إلى el.style.color يزيل التخصيص السطري ليعود اللون الأصلي المعرف في ملف CSS.

08

إذا كانت الحشوة معرفة فقط داخل وسم <style> وليست سطرية، فإن قراءة el.style.padding ترجع نصاً فارغاً "".

09

ما الطريقة الأنظف لاستعادة نمط العرض الأصلي للعنصر بعد إخفائه بـ el.style.display = "none"؟

10

ضبط el.style.display = "none" يحمي الرموز السرية الحساسة ويمنع قراءتها من أدوات مطوري المتصفح.