نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
AN

منهج Angular

دليل مرجعي شامل

كل اللغات
مدرسة البرمجة/منهج Angular /تنسيق المكونات وعزل الأنماط

تنسيق المكونات وعزل الأنماط

تنسيق المكوناتStyles, View Encapsulationالعزل البرمجي

جدول مرجعي سريع

1
استراتيجية العزلطريقة التطبيقالأثر المباشر على المتصفح
Emulated (الافتراضية)توليد سمات برمجية فريدة للعناصر لمنع تسرب الأنماطمحاكاة Shadow DOM بلغة CSS عادية
ShadowDomاستخدام تقنية المتصفح الأصلية Shadow DOM للعزل الكاملفصل تام للأنماط داخل حاوية مغلقة
Noneإلغاء العزل نهائياً وجعل الأنماط عامة على مستوى التطبيقتطبيق قواعد CSS بشكل شمولى وعام

الشرح

ننتقل في هذا الدرس إلى جانب حيوي في تصميم واجهات المستخدم داخل بيئة المكونات المستقلة (Standalone Components)، وهو كيفية تطبيق الأنماط البرمجية (CSS/SCSS) وضمان عزلها تماماً لكي لا تتداخل مع بقية أجزاء التطبيق. يوفر أنجولر أنظمة مرنة للغاية لإدارة الأنماط مع دعم كامل لأحدث معايير الويب.

تفصيل استراتيجيات View Encapsulation

الاستراتيجية الافتراضية (Emulated):

يقوم إطار العمل تلقائياً بإضافة سمات فريدة (Attributes) لعناصر الـ HTML وملفات الـ CSS الخاصة بالمكون، مما يمنع الأنماط من التسرب إلى الخارج أو التأثر بملفات خارجية.

الاستراتيجية الشاملة (None):

تستخدم عندما ترغب في كتابة ملفات CSS عامة تخص المكون الحالي وتؤثر على باقي عناصر الصفحة، تماماً مثل ملفات الأنماط العامة (Global Styles).

أمثلة برمجية: تطبيق الأنماط واستراتيجيات العزل

المثال الأول: تفعيل استراتيجية العزل في المكون المستقل

typescript
1import { Component, ViewEncapsulation } from '@angular/core';
2
3@Component({
4 selector: 'app-styled-card',
5 standalone: true,
6 template: `
7 <div class="card-container">
8 <h3>عنوان البطاقة المعزولة</h3>
9 <p>هذا النص يحافظ على تنسيقاته الخاصة دون تداخل.</p>
10 </div>
11 `,
12 styles: `
13 .card-container {
14 padding: 16px;
15 border: 1px solid #ccc;
16 border-radius: 8px;
17 background-color: #f9f9f9;
18 }
19 h3 {
20 color: #007bff;
21 }
22 `,
23 encapsulation: ViewEncapsulation.Emulated
24})
25export class StyledCardComponent {}

المثال الثاني: استخدام ملف أنماط خارجي مع إلغاء العزل (None)

typescript
1import { Component, ViewEncapsulation } from '@angular/core';
2
3@Component({
4 selector: 'app-global-banner',
5 standalone: true,
6 template: `
7 <div class="global-banner">
8 <span>تنبيه عام يؤثر على كافة عناصر الصفحة عند إلغاء العزل.</span>
9 </div>
10 `,
11 styleUrl: './global-banner.component.css',
12 encapsulation: ViewEncapsulation.None
13})
14export class GlobalBannerComponent {}

نصائح احترافية

  • —التزم دائماً بالاستراتيجية الافتراضية (Emulated) إلا للضرورة القصوى!
  • —الاعتماد على العزل الافتراضي يحمي بنية تطبيقك البرمجية من الأخطاء العشوائية الناتجة عن تداخل أسماء الـ CSS Classes، ويضمن لك صيانة أسهل للملفات على المدى الطويل.

الدرس السابق

استخدام مكون مستقل بدلاً من NgModules

الدرس التالي

مقدمة إلى دورة حياة المكونات وأهمية ngOnInit

نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر