0Pricing
HTML Academy · درس

الربط بأقسام الصفحة ومعرّفات الأجزاء

انتقل إلى أقسام الصفحة باستخدام سمات id وروابط الهاش

الربط بأقسام الصفحة ومعرّفات الأجزاء درس مجاني في HTML Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في HTML Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة HTML Academy 4 دروس في المجموع.

ما معرّف الجزء؟

معرّف الجزء هو الجزء من عنوان URL الذي يأتي بعد الرمز #:

https://example.com/page#section-3
                          │
                          └─ Fragment: "section-3"

<!-- The browser: -->
<!-- 1. Loads the page -->
<!-- 2. Scrolls to the element with id="section-3" -->

إنشاء أهداف ارتساء باستخدام id

لإنشاء رابط إلى قسم، امنحه سمة id:

<!-- The target: give any element an id -->
<h2 id="installation">Installation</h2>
<h2 id="configuration">Configuration</h2>
<h2 id="faq">Frequently Asked Questions</h2>

<!-- The link: use # + id value -->
<a href="#installation">Jump to Installation</a>
<a href="#faq">Go to FAQ</a>

إنشاء رابط من صفحة أخرى

يمكنك إنشاء رابط إلى قسم موجود في صفحة أخرى:

<!-- From a different page -->
<a href="/docs/guide#installation">Installation Guide</a>
<!-- Loads /docs/guide and scrolls to #installation -->

<!-- Absolute URL to a section -->
<a href="https://example.com/docs#api">API Documentation</a>

قواعد تسمية id

قواعد قيم id الصحيحة:

  • يجب أن تكون فريدة في الصفحة — لا يجوز أن يشترك عنصران في id واحد
  • لا يمكن أن تبدأ برقم في CSS (مع أنها صالحة في HTML)
  • لا تستخدم المسافات — استخدم الشرطات: my-section
  • حسّاسة لحالة الأحرف: #FAQ و#faq مختلفان

نمط جدول المحتويات

تتيح روابط الأجزاء إنشاء جداول محتويات داخل الصفحة:

<nav aria-label="Table of Contents">
  <ol>
    <li><a href="#intro">Introduction</a></li>
    <li><a href="#setup">Setup</a></li>
    <li><a href="#usage">Usage</a></li>
    <li><a href="#api">API Reference</a></li>
  </ol>
</nav>

<h2 id="intro">Introduction</h2>
<h2 id="setup">Setup</h2>

التمرير السلس باستخدام CSS

أضف سلوك التمرير السلس إلى التنقّل بين الأجزاء:

/* Apply to the entire page */
html {
  scroll-behavior: smooth;
}

/* Or for specific containers */
.scrollable {
  scroll-behavior: smooth;
}

حشو التمرير للرؤوس الثابتة

تتداخل أشرطة التنقّل الثابتة مع الأقسام التي يتم التمرير إليها. أصلح ذلك باستخدام scroll-margin-top:

/* If you have a 60px fixed header */
:target {
  scroll-margin-top: 70px;
}

/* Or set globally for all headings */
h2, h3, h4 {
  scroll-margin-top: 70px;
}
/* scroll-margin-top offsets where the browser scrolls to */

الفئة الزائفة :target في CSS

نسّق القسم المستهدف حاليًا باستخدام :target:

/* Highlight the targeted section */
:target {
  background-color: #fff3cd;
  outline: 2px solid #ffc107;
  padding: 1rem;
}

<!-- Result: when user clicks #installation, -->
<!-- the installation section gets highlighted -->

رابط العودة إلى الأعلى

نمط شائع — رابط للعودة إلى الأعلى باستخدام جزء من عنوان URL:

<a href="#top" id="back-to-top">↑ Back to top</a>
<!-- Link to page top: either id="top" on body or use empty href # -->
<!-- Always give it meaningful text for accessibility -->

<!-- Position it fixed with CSS: -->
<!--
#back-to-top {
  position: fixed;
  bottom: 1rem;
  right: 1rem;
}
-->

الجزء وسجل المتصفح

يضيف التنقّل بين الأجزاء إدخالات إلى سجل المتصفح:

  • يؤدي النقر على رابط جزء إلى إضافة إدخال إلى السجل
  • يعيدك زر الرجوع في المتصفح إلى موضع التمرير السابق
  • هذا سلوك طبيعي — ويمكن لتطبيقات SPA استخدام pushState للتحكّم فيه

نقاط الارتساء المسمّاة (قديمة)

قبل استخدام سمات id، كان <a name> يُستخدم لنقاط الارتساء — وأصبح الآن مهجورًا:

<!-- Old way (do not use): -->
<a name="section-1"></a>
<h2>Section 1</h2>

<!-- Modern way: -->
<h2 id="section-1">Section 1</h2>
<!-- Use id on the target element, not a separate anchor tag -->

تحقّق سريعًا

ما خاصية CSS التي تمنع شريط التنقّل الثابت من تغطية القسم الذي تم التمرير إليه؟

مراجعة: معرّفات الأجزاء

أساسيات روابط الأجزاء:

  • يؤدي #id في href إلى التمرير إلى العنصر الذي يحمل id نفسه
  • يحتاج كل عنصر مستهدف إلى سمة id فريدة
  • يعمل ذلك داخل الصفحة نفسها ومن الصفحات الأخرى أيضًا
  • استخدم scroll-behavior: smooth للتمرير المتحرك
  • استخدم scroll-margin-top لتجنّب تداخل الرأس الثابت
  • استخدم الفئة الزائفة :target لإبراز القسم الحالي

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

هل درس «الربط بأقسام الصفحة ومعرّفات الأجزاء» مجاني؟

نعم — نص درس «الربط بأقسام الصفحة ومعرّفات الأجزاء» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة HTML Academy، انتقل إلى CoddyKit PRO. تتضمن دورة HTML Academy 4 دروس في المجموع.

ماذا ستتعلم في «الربط بأقسام الصفحة ومعرّفات الأجزاء»؟

انتقل إلى أقسام الصفحة باستخدام سمات id وروابط الهاش تتمرن على HTML Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ HTML Academy؟

لا تُشترط خبرة سابقة. HTML Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «الربط بأقسام الصفحة ومعرّفات الأجزاء»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس HTML Academy هذا؟

نعم. كل درس في HTML Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. عنصر anchor وسمته href
  2. عناوين URL المطلقة مقابل النسبية
  3. فتح الروابط في علامات تبويب جديدة وسمة Download
  4. الربط بأقسام الصفحة ومعرّفات الأجزاء
← العودة إلى HTML Academy