XHTML و CSS الجزء 1


سلسلة دورة CSS و XHTML

هذا الدرس مهم جداً لمتابعة دورة PHP الخاصة بتطوير مواقع وتطبيقات الإنترنت.

ما هي HTML؟

هي لغة ترميز تستخدم للرمز إلى العناصر الموجودة في صفحة الويب, آخر نسخة ثابتة هي HTML 4.01 والنسخة القادمة التي يتم العمل عليها حالياً وتطويرها هي HTML 5.

ما هي XHTML؟

هي HTML ولكن مضاف إليها تطابق شروط الـ XML, آخر نسخة ثابتة هي XHTML 1.1 والنسخة القادمة التي يتم العمل عليها وتطويرها حالياً هي XHTML 2.0.

ما هي CSS؟

هي لغة تنسيق أنماط تستخدم لشرح تصميم الموقع وبمعنى آخر يتم تلوين وتنسيق عناصر الرموز في لغة الترميز XHTML.

النسخة الأخيرة من هذه اللغة هي CSS 2.1 ويتم العمل والتطوير على CSS 3 والتي تحتوي أيضاً على مميزات إضافية جديدة قادمة.

لمعرفة النسخ الأخيرة والمميزات التي تحصل يتم متابعتها من خلال الويكيبيديا الموسوعة العالمية أو من خلال W3C المنظمة العالمية المعتمدة للمعايير القياسية لهذه اللغة الخاصة بترميز وتنسيق مواقع الإنترنت.

لماذا نتعلم XHTML و CSS؟

نحتاج لتعلم XHTML و CSS قبل تعلم أي لغة برمجة في تطوير المواقع, لأنها لغتين خاصة بتحديد أماكن وتنسيق وتصميم الموقع, وكذلك هما لغتين أساسيتين وليس تكميليتين ولأهمية إتقانها في البرمجة يجعل منك مطور ومبرمج تطبيقات ويب محترف, فلنقل أننا نريد عرض قائمة الأقسام بلغة البرمجة (PHP) حيث يتم عرض الأقسام من قاعدة البيانات فنعمل Loop أي حلقة دائرية على عنصر XHTML معين, سنتطرق إلى تفاصيل هذه العملية في دورة الـ PHP ولكن أحببت إضافة موضوع خاص ببعض تفاصيل XHTML و CSS قبل الدخول إلى عالم PHP.

ستجد هنا موضوع سابق للأخت صوت الحياة شرح ممتاز ورائع عن الـ HTML.

وسنشرح بعض التفاصيل الأخرى مع لغة XHTML هنا.

مالفرق بين XHTML و HTML؟

الفروقات شبه بسيطة جداً XHTML هي HTML العادية لكن باختلافات بسيطة حيث X تعني Extensible أي ممتدة لـ XML لتوافق وتطابق المعايير الخاصة بها بلغة XML. وهذه من أهم الفروق في XHTML :

  • العناصر في XHTML يجب أن تكون حروف صغيرة (lowercase) أي وليس
  • العناصر في XHTML يجب أن تكون مرتبة أي لا تكون هناك عناصر متداخلة على بعضها أي example وليس example
  • العناصر في XHTML يجب أن تكون مغلقة بإحكام في مكانها الصحيح وحتى لو كان عنصر بدون محتوى,كـ a وليس a
  • XHTML يجب أن يحتوي على عنصر واحد فقط رئيسي, كـ واحد فقط

هل استخدم XHTML أو HTML؟

قد يكون طبعاً XHTML في أغلب الأوقات بالفروقات التي تكون أفضل من HTML في سهولة تطويرها وغيرها من الفروقات, ولكن في بعض الأحيان قد تتطلب لاستخدام HTML عادية, ولكن في معظم الأوقات لن تواجه أي مشاكل.

هل أتعلم XHTML أو CSS أو كليهما؟

تأتيني أسئلة كثيرة بهذا الخصوص, هاتين اللغتين إذا كنت تنوي تصميم وتطوير مواقع إنترنت بشكل جدي فيجب عليك تعلم كليهما, مع العلم أنهما سهلة جداً كل ما عليك هو ممارستها بشكل بسيط حتى تعتاد عليها, بشكل مختصر يجب عليك تحديد العناصر اللازمة في الموقع باستخدام (XHTML) وبطريقة أخرى تحديد ألوان وتنسيق العناصر باستخدام (CSS).

كل ما سبق هو شرح نظري والآن سنقوم بتطبيق عملي بسم الله نبدأ… في هذا الدرس سيتم شرح طريقة عمل موقع باستخدام XHTML و CSS معاً بشكل جيد.

إلى التطبيق

سنتعلم تطبيق وإنشاء صفحة بالشكل التالي باستخدام اللغتين XHTML و CSS:

فلنقل أننا سنقوم بتصميم موقع خاص بالتعريف عن الرسول صلى الله عليه وسلم, فنبدأ بإنشاء المجلد الخاص بالموقع مثلاً في سطح المكتب باسم (prophet_muhmmad_pbuh):

وسنبدأ الآن بإنشاء صفحة جديدة بوضع رموز الموقع أو عناصر الموقع بلغة XHTML وذلك باستخدام أي محرر ويمكنك استخدام Notepad++ كما تم استخدامه في دورة الـبي اتش بي أو استخدام المفكرة بأقل تقدير أو استخدام برامج متقدمة مثل برامج متقدمة مثل MS Expression Web أو Adobe Dreamweaver أو MS Sharepoint Designer الذي تم الإعلان عن نشره مجاناً.

الصيغة الرئيسية لكل صفحة ويب هي :







عنوان الموقع






يجب دائماً عملها وعادة ما يتم إنشاءها مباشرة تلقائياً بمجرد إنشاء صفحة جديدة في برامج متقدمة مثل MS Expression Web أو Adobe Dreamweaver.

لا ننسى فقط في الصيغة الرئيسية أن نتأكد بأن العنصر html يحتوي على الخاصية dir=”rtl” وهذه الخاصية تجعل الصفحة من اليمين إلى اليسار للغة العربية.

سنبدأ الآن بكتابة عنوان الموقع ومن ثم إضافة العناصر الرئيسية للموقع داخل العنصر body أي بجسم الصفحة والعناصر هي (الجزء العلوي من الموقع وما يحتويه + قائمة جانبية + عنوان الصفحة + محتوى الصفحة + الجزء السفلي من الموقع وما يحتويه) وذلك كالتالي :

ستجد أن ما تم إضافته هو أولاً

وهذا العنصر يسمى div اختصاراً لـ division ومعناه قسم, فعند تحديد قسم أو جزء معين فنستخدم div مثل تحديد الجزء الأسفل أو الجز الأوسط أو الجزء العلوي.

وتم إعطاء هذا القسم العلوي اسم header للتعرف عليه عند تلوينه بالـ CSS وتم كتابة الخاصية id لإعطاءه اسم وهناك خاصية أخرى لإعطاء اسم باسم class, سيتم استخدامها بعد قليل وشرح الفرق بينهما, هنا أريدك أن تعرف فقط بأن كل قسم يجب أن يحمل اسم خاص به للتعريف به لأننا داخل body سنستخدم أكثر من قسم كالقسم العلوي والقسم السفلي وقسم محتوى الصفحة الذي هو القسم الأوسط…الخ

بعدها أضفنا

عادة ما يتم كتابة h1 في أي عنوان رئيسي وذلك لأنه يعني فقرة بخط رئيسي أول header1 وهناك header2 و header3 و header4 وتم استخدام العنوان الرئيسي رقم 4 لكتابة شرح مختصر عن الموقع أو الشعار النصي للموقع وذلك لأنه عنوان رئيسي لا نحتاج لتكبيره فـ 1 تعني كبير جداً و 2 أصغر و 3 أصغر .. الخ

انتهينا من شرح الكود البسيط السابق في لغة الـ XHTML حيث سيكون داخل body بهذه الطريقة







محمد صلى الله عليه وسلم








فنقوم بحفظ الصفحة في مجلد (prophet_muhmmad_pbuh) باسم index.htm ولماذا تم تسميته index؟ وذلك لأنه الصفحة هي الصفحة الرئيسية ودائماً يجب أن يكون اسم الصفحة الرئيسية index لماذا؟ لأن عند فتح موقع http://www.example.com فإنه يتم فتح index مباشرة لأنه هو الصفحة الرئيسية.

فبعد الحفظ وفتح الصفحة ستظهر النتيجة كالتالي :

الآن تقريباً فهمنا XHTML, أريد أن نفهم CSS قبل عرض العناصر المتبقية للـ XHTML

طرق استخدام الـ CSS

لكي نقوم باستخدام لغة CSS هناك 3 طرق

1/ أن ننشئ ملف جديد باسم style.css في المجلد (prophet_muhmmad_pbuh) * هذه افضل طريقة معتمدة بالمعايير القياسية العالمية

2/ أن نكتب الـ CSS داخل ملف الـ HTML أي مباشرة على ملف index.htm ولكن داخل الوسم وداخل وسم يكتب كالتالي (

)

3/ أن يتم كتابة الـ CSS داخل سطور الـ HTML على كل عنصر كالتالي (

)

نحن سنعتمد الطريقة الأولى والأفضل وسنكتب داخل ملف الـ style.css التالي :

#header {
	padding:20px;
	background:url(images/header_bg.gif);
	border:3px green solid;
}

بعد حفظها يجب علينا استدعاء الملف داخل ملف index.htm وذلك عن طريق كتابة الكود التالي داخل العنصر :



محمد صلى الله عليه وسلم

الآن ستظهر النتيجة كالتالي :

جميل هاه؟, طبعاً استخدمنا في أكواد لغة CSS حدود خضراء وخلفية بالصورة الموضحة أمامكم مع مسافة داخلية تساوي 20 بكسل أو نقطة فقط, فهذا هو التصميم للموقع باستخدام CSS وذلك للعنصر header فقط.

نرجع إلى إكمال عناصر الموقع بإضافة قائمة جانبية للموقع بأكواد XHTML كالتالي :



  • القائمة الرئيسية

    • مولده ونشأته
    • دعوته
    • حياته في المدينة
    • أهم غزواته
    • عام الوفود
    • حجة الوداع
    • وفاته
    • معجزاته
    • زوجات الرسول بالترتيب
    • أولاده
    • أسماؤه

أحب أضيف نقطة مهمة بعد مشاهدة هذا الكود, وهي النقطة التي تتعلق بجمال الكود ونظافته من الشوائب وكذلك توزيع وترتيب الأكواد باستخدام XHTML و CSS بشكل مستقل, بعض المطورين يقومون بجعل صفحة htm تحتوي على جميع خصائص التصميم وتكون مشوه كثيراً فلذلك هنا يمكنك ملاحظة مدى جودة التعامل مع المعايير القياسية وأفضلية تطويرها.

عموماً كذلك هناك نقطة أخرى تتعلق بأكواد XHTML حيث يمكنك اختيار العناصر المناسبة لك, أقوم شخصياً بكتابة صيغة العناصر التي يتم عملها من قبل مطورين عالميين ومراجعة الأكواد في مواقعهم لمشاهدة أفضل الطرق لتصميم المواقع. فلذلك أأمل أن تعجبكم الصيغة المطروحة باستخدام

    وغيرها من العناصر.

    طبعاً كل عنصر يرمز باختصار لشيء فـ ul يرمز إلى unorderd list أي قائمة غير مرتبة بأرقام وهي القائمة التي نريد استخدامها في موقعنا لذلك تم استخدامها.

    تم استخدام class للتعريف عن العنصر بدل id وذالك لأن class هي خاصية تعريف تستخدم عندما يكون العنصر يستخدم عدة مرات وليس لمرة واحدة فالـ id هو تعريفي لشيء واحد أما القائمة الجانبية فهي متكررة لذلك يتم وضعها في class وسيتم إضافة قائمة جانبية متكررة أخرى بعد قليل.

    الآن يمكنك مشاهدة نتيجة ما تم إضافته بالـ XHTML

    الآن لتنسيق هذا الجزء بالـ CSS يتم ذلك من خلال ملف style.css الذي تم استدعاءه قبل قليل, فنضيف فيه التالي :

    .side_menu, .side_menu h2, .side_menu li,  .side_menu li ul,  .side_menu li ul li {
    	list-style:none; margin:0px; padding:0px;
    }
    
    .side_menu {
    	width:180px;
    }
    
    .side_menu h2 {
    	margin:10px 0 0 0;
    	padding:4px 0;
    	border-bottom:1px gray dotted;
    	color:#999999;
    }
    
    .side_menu li ul li {
    	border-bottom:1px green solid;
    	padding:5px 0;
    	font-weight:bold;
    	color:#006600;
    }

    لتصبح النتيجة كالتالي :

    الآن انهينا القائمة الجانبية والتي مع العلم والفائدة المهمة يمكنك إعادة استخدامها بنفس التصميم بشكل ممتاز سواء قائمة جانبية على اليمين أو اليسار دون الحاجة لإعادة كتابة أكواد التصميم الخاصة بها التي تم كتابتها بالـ CSS وهنا تكمن قوة CSS ويتم إعادة استخدام القائمة بالطريقة التالية :

    • القائمة الرئيسية

      • مولده ونشأته
      • دعوته
      • حياته في المدينة
      • أهم غزواته
      • عام الوفود
      • حجة الوداع
      • وفاته
      • معجزاته
      • زوجات الرسول بالترتيب
      • أولاده
      • أسماؤه
    • مواقع صديقة

      • موقع رسول الله
      • صيد الفوائد
      • طريق الإسلام
      • الشبكة الإسلامية

    والنتيجة :

    ستلاحظون أن القائمة بدون روابط فيجب علينا إضافة الروابط الخاصة بصفحات القائمة وذلك بالعنصر كالتالي :

    
    
    

    فبعد إضافة الروابط ستلاحظون أن الروابط ظهرت :

    ولكن تغير شكل الموقع بالروابط, وذلك لأننا أضفنا العنصر فلكل عنصر في XHTML يحتوي على تنسيق خاص به بشكل افتراضي فتنسيق a هو اللون الأزرق وخط أسفل النص, يمكننا تحرير ذلك من خلال جعل أي رابط في الموقع يحتوي على الخصائص الخاصة بنا كقالب فبمجرد إضافة أي رابط في الموقع داخل العناوين وغيرها نريد أن يكون اللون الأخضر وبدون خط أسفل النص بالكود التالي :

    a {
    	color:#006600;
    	text-decoration:none;
    }

    ليظهر بصورته الطبيعية التي نريدها كالتالي :

    الأن نريد أن نضيف محتوى الصفحة أولاً يجب علينا إدخال القائمتين الجانبيتين إلى قسم جانبي ومن ثم نضيف قسم الصفحة كالتالي :

    جداً عمليه سهلة وواضحة, بعد ذلك يجب علينا تنسيق أماكنها باستخدام لغة CSS وذلك بكتابة الكود التالي :

    #side_right {
    	width:180px;
    	float:right;
    }
    
    #content {
    	margin-right:180px;
    	padding:10px
    }

    لتظهر النتيجة كالتالي :

    وبهكذا قد قمنا بتصميم قالب بسيط جداً وجميل للموقع باستخدام الـ XHTML و الـ CSS ويمكنك الرجوع للرابطين السابقين لمعرفة عناصر وخصائص اللغتين لاستخدامها في موقعك.

    عموماً نكمل الدرس لآخره بإضافة محتوى الصفحة بشكل مناسب وذلك داخل القسم

    بكتابة الكود التالي

    الصفحة الرئيسية

    مرحباً بكم في الصفحة الرئيسية للموقع التعريفي عن رسول الله صلى الله عليه وسلم, نتشرف بزيارتكم دائماً ويمكنكم التواصل معنا للمساعدة والمشاركة في تطوير الموقع بأي شكل كان, الحمد لله الذي أوضح لنا سبيل الهداية، وأزاح عن بصائرنا ظلمة الغواية، والصلاة والسلام على النبي المصطفى والرسول المجتبى، المبعوث رحمة للعالمين، وقدوة للمالكين، وعلى آله وصحبه ومن تبعهم بإحسان إلى يوم الدين, أيها المسلمون: إن من خير ما بذلت فيه الأوقات، و شغلت به الساعات هو دراسة السيرة النبوية العطرة، والأيام المحمدية الخالدة، فهي تجعل المسلم كأنه يعيش تلك الأحداث العظام التي مرت بالمسلمين، وربما تخيل أنه واحد من هؤلاء الكرام البررة التي قامت على عواتقهم صروح المجد ونخوة البطولة.

    لماذا أسس الموقع؟

    أوجب الله سبحانه وتعالى على المؤمنين طاعته والإقتداء بهديه واتِّباع سُنَّته و توقيره ومحبته صلى الله عليه وسلم فوق محبة الآباء والأبناء والأزواج والعشيرة ، والتجارة والأموال ، وأوعد من تخلف عن تحقيق ذلك بالعقاب ، فقال سبحانه وتعالى : { قُلْ إِنْ كَانَ ءابَاؤُكُمْ وَأَبْنَاؤُكُمْ وَإِخْوَانُكُمْ وَأَزْوَاجُكُمْ وَعَشِيرَتُكُمْ وَأَمْوَالٌ اقْتَرَفْتُمُوهَا وَتِجَارَةٌ تَخْشَوْنَ كَسَادَهَا وَمَسَاكِنُ تَرْضَوْنَهَا أَحَبَّ إِلَيْكُمْ مِنَ اللَّهِ وَرَسُولِهِ وَجِهَادٍ فِي سَبِيلِهِ فَتَرَبَّصُوا حَتَّى يَأْتِيَ اللَّهُ بِأَمْرِهِ وَاللَّهُ لا يَهْدِي الْقَوْمَ الْفَاسِقِينَ } التوبة: 24.

    وكذلك كتابة التنسيق الخاص بالعناصر من خلال الـ CSS كالتالي

    #content h2 {
    	margin:0px;
    	border-bottom:2px green solid;
    	padding:5px 0;
    	margin-bottom:5px;
    }
    
    #content .content_post {
    	font-family:Tahoma;
    	font-size:10pt;
    	line-height:16pt;
    	text-align:justify;
    }
    
    .ayat {
    	color:#009900;
    }

    لتكون النتيجة النهائية كالتالي

    نأمل بأن يكون الدرس مفيد في تعلم أساسيات XHTML و CSS البسيطة وذلك لمتابعة دورة PHP بشكل أفضل,

    لتحميل الملف الخاص بنتيجة هذا الدرس البسيط من هنا وشكراً لكم.

    تم طرح الدرس الثاني ←