سؤال

في صفي ، كنت ألعب حولها واكتشفت أن CSS تعمل مع عناصر مكياج.

مثال:

imsocool {
    color:blue;
}
<imsocool>HELLO</imsocool>

عندما رآني أستاذي لأول مرة باستخدام هذا ، فوجئ قليلاً من أن عناصر مكياج نجحت وأوصى بها ببساطة أغير جميع عناصراتي المكونة إلى الفقرات مع ID's.

لماذا لا يريدني أستاذي أن أستخدم عناصر مكياج؟ انهم يعملون بفعالية.

أيضا ، لماذا لم يكن يعلم أن هناك عناصر مكياج موجودة والعمل مع CSS. هل هم غير شائعين؟

هل كانت مفيدة؟

المحلول

لماذا تعمل CSS مع عناصر مزيفة؟

(معظم) تم تصميم المتصفحات لتكون (إلى حد ما) متوافقة مع الإضافات المستقبلية إلى HTML. يتم تحليل العناصر غير المعترف بها في DOM ، ولكن ليس لها دلالات أو تقديم افتراضي متخصص مرتبط بها.

عندما تتم إضافة عنصر جديد إلى المواصفات ، يمكن استخدام CSS و JavaScript و ARIA أحيانًا لتوفير نفس الوظائف في المتصفحات القديمة (ويجب أن تظهر العناصر في DOM لتكون هذه اللغات قادرة على التلاعب بها لإضافة هذه الوظيفة ).

(هناك مواصفات ل عناصر مخصصة, ، لكن لديهم متطلبات تسمية محددة ويتطلبون التسجيل باستخدام JavaScript.)

لماذا لا يريدني أستاذي أن أستخدم عناصر مكياج؟

  • لا يسمح بها مواصفات HTML
  • قد يتعارضون مع العناصر القياسية المستقبلية بنفس الاسم
  • ربما يكون هناك عنصر HTML موجود أكثر ملاءمة للمهمة

ايضا؛ لماذا لم يعلم أن عناصر مكياج كانت موجودة وعملت مع CSS. هل هم غير شائعين؟

نعم. لا يستخدمها الناس لأن لديهم المشكلات المذكورة أعلاه.

نصائح أخرى

TL ؛ د

  • العلامات المخصصة غير صالحة في HTML. هذا قد يؤدي إلى تقديم القضايا.
  • يجعل التنمية في المستقبل أكثر صعوبة لأن الكود غير محمول.
  • يقدم HTML صالح الكثير من الفوائد مثل كبار المسئولين الاقتصاديين والسرعة والكفاءة المهنية.

اجابة طويلة

هناك بعض الحجج هذا الرمز مع العلامات المخصصة أكثر قابلية للاستخدام.

ومع ذلك ، فإنه يؤدي إلى HTML غير صالح. وهو ليس جيدًا لموقعك.

نقطة CSS/HTML صالحة | Stackoverflow

  • تفضل Google ذلك ، لذا فهي جيدة لكبار المسئولين الاقتصاديين.
  • إنه يجعل صفحة الويب الخاصة بك أكثر عرضة للعمل في المتصفحات التي لم تختبرها.
  • يجعلك تبدو أكثر احترافًا (لبعض المطورين على الأقل)
  • يمكن للمتصفحات المتوافقة تقديم [HTML صالحة أسرع
  • إنه يشير إلى مجموعة من الأخطاء الغامضة التي ربما فاتتها والتي تؤثر على الأشياء التي ربما لم تختبرها على سبيل المثال مجموعة الأدوات أو اللغة اللغوية في الصفحة.

لماذا التحقق من صحة | W3C

  • التحقق من الصحة كأداة تصحيح الأخطاء
  • التحقق من الصحة كتحقق من الجودة المقاومة في المستقبل
  • التحقق من الصحة يخفف الصيانة
  • يساعد التحقق من الصحة في تعليم الممارسات الجيدة
  • التحقق من صحة علامة الاحتراف

يادا (إجابة أخرى (مختلفة))

تحرير: يرجى الاطلاع على التعليق من BoltClock أدناه بخصوص Type vs Tag vs Element. عادة لا تقلق بشأن الدلالات ولكن تعليقه مناسب للغاية وغني بالمعلومات.

على الرغم من وجود مجموعة من الردود الجيدة بالفعل ، فقد أشارت إلى أن الخاص بك دكتور جامعى دفعتك إلى نشر هذا السؤال حتى يبدو أنك (رسميًا) في المدرسة. اعتقدت أنني سوف أشرح أكثر قليلاً ليس فقط عن CSS ولكن أيضًا علم الميكانيكا من متصفحات الويب. وفق ويكيبيديا, ، "CSS هي لغة ورقة أنماط تستخدم لوصف ... وثيقة مكتوبة في أ لغة الترميز. "(أضفت التركيز على" A ") لاحظ أنه لا يقول" مكتوبة في HTML "أقل بكثير من نسخة محددة من HTML. CSS يمكن استخدامها على HTML ، XHTML ، XML ، SGML ، XAML ، إلخ بالطبع ، تحتاج إلى شيء سوف يجعل كل من أنواع المستندات هذه التي ستطبق أيضًا التصميم. بحكم التعريف ، فإن CSS لا تعرف / فهم / يهتم علامات لغة ترميز محددة. لذلك ، قد تكون العلامات "غير صالحة" فيما يتعلق بـ HTML ، ولكن لا يوجد مفهوم لعلامة/عنصر/نوع "صالح" في CSS.

عصري المتصفحات البصرية ليست برامج متجانسة. إنها مزيج من "محركات" مختلفة لها وظائف محددة. في الحد الأدنى يمكنني التفكير في 3 محركات ، ومحرك تقديم ، ومحرك CSS ، ومحرك JavaScript/VM. لست متأكدًا مما إذا كان المحلل جزءًا من محرك العرض (أو العكس) أو إذا كان محركًا منفصلًا ، لكنك تحصل على الفكرة.

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

هذه طريقة سهلة للتفكير في أساسي التدفق من المحرك إلى المحرك: محلل -> CSS -> التقديم. في الواقع ، إنه أكثر معقدة ولكن هذا جيد بما يكفي للمبتدئين.

هذه الإجابة طويلة جدًا بالفعل ، لذا سأنتهي عند هذا الحد.

يتم التعامل مع عناصر غير معروفة باسم divS بواسطة المتصفحات الحديثة. لهذا السبب يعملون. هذا جزء من معيار HTML5 القادم الذي يقدم بنية معيارية يمكن إضافة عناصر جديدة.

في المتصفحات القديمة (أعتقد أن IE7-) يمكنك تطبيق رحلة JavaScript وبعدها ستعمل أيضًا.

هنا السؤال ذي الصلة لقد وجدت عند البحث عن مثال.

هنا سؤال حول إصلاح JavaScript. اتضح أنه في الواقع IE7 لا يدعم هذه العناصر خارج الصندوق.

ايضا؛ لماذا لم يعلم أن العلامات المكياج موجودة وعملت مع CSS. هل هم غير شائعين؟

نعم تماما. ولكن بشكل خاص: لا تخدم غرضًا إضافيًا. وهي جديدة على HTML5. في الإصدارات السابقة من HTML ، كانت علامة غير معروفة غير صالحة.

أيضا ، يبدو أن المعلمين لديهم فجوات في معرفتهم ، في بعض الأحيان. قد يكون هذا بسبب حقيقة أنهم يحتاجون إلى تعليم الطلاب الأساسيات حول موضوع معين ، ولا يؤتي ثماره حقًا لمعرفة جميع خصوصيات وعمومياتها وأن تكون محدثة حقًا. أحصل على الاحتجاز ذات مرة لأن أحد المعلمين ظنوا أنني قمت ببرمجة فيروس ، لمجرد أنني أستطيع عمل موسيقى كمبيوتر باستخدام play القيادة في gwbasic. (القصة الحقيقية ، ونعم ، منذ فترة طويلة). ولكن مهما كان السبب ، أعتقد أن نصيحة عدم استخدام عناصر Custome هي صوتية.

في الواقع يمكنك استخدام عناصر مخصصة. هنا هو مواصفات W3C حول هذا الموضوع:

http://w3c.github.io/webcomponents/spec/custom/

وهنا برنامج تعليمي يشرح كيفية استخدامها:

http://www.html5rocks.com/en/tutorials/webcomponents/customelements/

كما أشار @Quentin: هذا هو مسودة المواصفات في الأيام الأولى من التطوير ، وأنه يفرض قيودًا على ما يمكن أن تكون عليه أسماء العناصر.

هناك بعض الأشياء حول الإجابات الأخرى التي تتم صياغتها بشكل سيء أو ربما غير صحيحة بعض الشيء.

خطأ (ISH): عناصر HTML غير القياسية "غير مسموح بها" أو "غير قانوني" أو "غير صالحة".

ليس بالضرورة. هم "غير متطابق". ماهو الفرق؟ شيء ما يمكن أن "لا يتوافق" ولا يزال "مسموحًا". لن ترسل W3C شرطة HTML إلى منزلك ونقلك بعيدًا.

ترك W3C الأمور بهذه الطريقة لسبب ما. يتم تعريف المطابقة والمواصفات من قبل المجتمع. إذا كان لديك مجتمع أصغر يستهلك HTML لأغراض أكثر تحديداً ، فإنهم يتفقون جميعًا على بعض العناصر الجديدة التي يحتاجون إليها لتسهيل الأمور ، يمكنهم الحصول على ما يشير إليه W3C AS "المواصفات الأخرى المعمول بها". (هذا أمر إجمالي على التبسيط ، لكنك تحصل على الفكرة)

ومع ذلك ، سيعلن المدققون الصارمون أن عناصرك غير القياسية "غير صالحة". ولكن هذا لأن وظيفة المدقق هي ضمان المطابقة لأي مواصفات يتم التحقق منها ، وليس لضمان "الشرعية" لـ متصفح أو ل استعمال.

خطأ (ISH): عناصر HTML غير القياسية إرادة يؤدي إلى تقديم القضايا

ربما ، ولكن من غير المحتمل. (استبدال "Will" بـ "May") الطريقة الوحيدة التي يجب أن تؤدي ذلك إلى مشكلة تقديم هي إذا كان العنصر المخصص الخاص بك يتنافس مع مواصفات أخرى ، مثل التغيير في مواصفات HTML أو مواصفات أخرى يتم تكريمها داخل نفس النظام (مثل SVG ، الرياضيات ، أو شيء مخصص).

في الواقع، السبب في أن CSS يمكنها تصميم العلامات غير القياسية هو لأن مواصفات HTML يصرح بوضوح الذي - التي:

يجب على وكلاء المستخدمين التعامل مع العناصر والسمات التي لا يفهمونها على أنها محايدة بشكل دلالي ؛ تركهم في DOM (لمعالجات DOM) ، وتصميمها وفقًا لـ CSS (لمعالجات CSS) ، ولكن لا تستنتج أي معنى منها

ملحوظة: إذا كنت ترغب في استخدام علامة مخصصة ، فقط تذكر تغييرًا في مواصفات HTML في وقت لاحق ، يمكن أن تهب التصميم الخاص بك ، لذا كن مستعدًا. من غير المحتمل حقًا أن تنفذ W3C <imsocool> علامة ، ومع ذلك.

علامات غير قياسية وجافا سكريبت (عبر DOM)

السبب في أنه يمكنك الوصول إلى العناصر المخصصة وتغييرها باستخدام JavaScript يتحدث المواصفات حتى عن كيفية التعامل معها في DOM, ، وهي واجهة برمجة تطبيقات (الرهيبة حقًا) التي تتيح لك معالجة العناصر الموجودة على صفحتك.

يجب استخدام واجهة htmlunknownelement لعناصر HTML التي لم يتم تعريفها بواسطة هذه المواصفات (أو غيرها من المواصفات المعمول بها).

TL ؛ DR: يتم التوافق مع المواصفات لأغراض الاتصال والسلامة. لا يزال كل شيء مسموح به من قبل كل شيء ما عدا أ المدقق, ، الذي غرضه الوحيد هو فرض المطابقة ، ولكن استخدامه اختياري.

فمثلا:

var wee = document.createElement('wee');
console.log(wee.toString()); //[object HTMLUnknownElement]

(أنا متأكد من أن هذا سوف يرسم النيران ، ولكن هناك سنتان)

وفقا للمواصفات:

CSS

أ اكتب المحدد هو اسم نوع عنصر لغة المستند المكتوب باستخدام بناء جملة أسماء CSS المؤهلة

اعتقدت أن هذا كان يسمى عنصر المحدد ، ولكن يبدو أنه في الواقع يكتب المحدد. تستمر المواصفات للحديث عنها CSS qualified names التي لا تضع أي قيود على الأسماء في الواقع. وهذا يعني أنه طالما أن محدد النوع يطابق بناء جملة الاسم المؤهلين CSS ، فهو صحيح من الناحية الفنية وسيطابق العنصر في المستند. لا يوجد قيود خاصة بـ CSS على العناصر غير الموجودة في مواصفات معينة-HTML أو غير ذلك.

لغة البرمجة

لا يوجد قيود رسمية على تضمين أي علامات في المستند الذي تريده. ومع ذلك ، فإن الوثائق تقول

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

ويقول لاحقًا

يجب ألا يستخدم المؤلفون عناصر أو سمات أو قيم السمات التي لا يسمح بها هذه المواصفات أو غيرها من المواصفات المعمول بها ، لأن القيام بذلك يجعل من الصعب للغاية تمديد اللغة في المستقبل.

لست متأكدًا على وجه التحديد من أين أو إذا كانت المواصفات تقول أن العناصر غير المألوفة مسموح, ، لكنه يتحدث عن htmlunknownelement واجهة للعناصر غير المعترف بها. قد لا يتعرف بعض المتصفحات على العناصر الموجودة في المواصفات الحالية (تتبادر إلى الذهن).

هناك مسودة للعناصر المخصصة, ، رغم ذلك ، لكنني أشك في أنه يتم تنفيذه في أي مكان حتى الآن.

هذا ممكن مع HTML5 ولكن عليك أن تأخذ في الاعتبار المتصفحات القديمة.

إذا قررت استخدامها ثم ، تأكد من التعليق على HTML الخاص بك !! قد يواجه بعض الأشخاص بعض المتاعب في معرفة ما هو عليه ، لذا فإن التعليق يمكن أن يوفر لهم الكثير من الوقت.

شيء من هذا القبيل،

<!-- Custom tags in use, refer to their CSS for aid -->

عندما تصنع العلامة/العناصر المخصصة الخاصة بك ، لن يكون للمتصفحات القديمة أي فكرة عما يشبه عناصر HTML5 nav/section.

إذا كنت مهتمًا بهذا المفهوم ، فإنني أوصي بذلك بالطريقة الصحيحة.

ابدء

تسمح العناصر المخصصة لمطوري الويب بتحديد أنواع جديدة من عناصر HTML. هذه المواصفات هي واحدة من العديد من بدايات API الجديدة التي تهبط تحت مظلة مكونات الويب ، لكنها ربما تكون الأكثر أهمية. مكونات الويب غير موجودة بدون الميزات التي تم فتحها بواسطة عناصر مخصصة:

تحديد عناصر HTML/DOM جديدة إنشاء عناصر تمتد من العناصر الأخرى تجمع بشكل منطقي بين وظائف مخصصة إلى علامة واحدة تمديد واجهة برمجة التطبيقات لعناصر DOM الحالية

هناك الكثير الذي يمكنك القيام به به ويجعل البرنامج النصي جميلًا لأن هذه المقالة تحب وضعها. العناصر المخصصة التي تحدد عناصر جديدة في HTML.

لذلك دعونا نلخص ،

الايجابيات

  • أنيقة جدا وسهلة القراءة.

  • من الجيد ألا ترى الكثير divs. : ص

  • يسمح بشعور فريد للرمز

سلبيات

  • دعم المتصفح الأقدم هو شيء قوي يجب مراعاته.

  • قد لا يكون لدى المطورين الآخرين أي أدنى فكرة عما يجب فعله إذا لم يعرفوا العلامات المخصصة. (اشرح لهم أو أضف تعليقات لإبلاغهم)

  • أخيرًا ، شيء واحد يجب مراعاته ، لكنني غير متأكد ، هو العناصر الحكومية والمضمنة. باستخدام العلامات المخصصة ، ستنتهي بكتابة المزيد من CSS بسبب العلامة المخصصة لن يكون لها جانب افتراضي لها.

الخيار متروك لك تمامًا ويجب أن تبنيه على ما يطلبه المشروع.

تحديث 1/2/2014

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

تعلم التكنولوجيا لماذا العناصر المخصصة؟ تتيح العناصر المخصصة للمؤلفين تحديد عناصرهم الخاصة. يربط المؤلفون رمز JavaScript بأسماء العلامات المخصصة ، ثم استخدم أسماء العلامات المخصصة هذه كما يفعلون أي علامة قياسية.

على سبيل المثال ، بعد تسجيل نوع خاص من الزر يسمى Super-Button ، استخدم الزر Super تمامًا مثل هذا:

العناصر المخصصة لا تزال عناصر. يمكننا إنشاءها واستخدامها ومعالجتها وتكوينها بنفس السهولة مثل أي معيار أو اليوم.

يبدو هذا وكأنه مكتبة جيدة جدًا لاستخدامها ، لكنني لاحظت أنها لم تمر بحالة بناء النافذة. هذا أيضًا في ما قبل الألف ، وأعتقد أني سأراقب ذلك أثناء تطوره.

لماذا لا يريدك أن تستخدمها؟ فهي ليست شائعة ولا جزء من معيار HTML5. من الناحية الفنية ، لا يُسمح لهم. هم اختراق.

أنا أحبهم بنفسي. قد تكون مهتمًا بـ XHTML5. يتيح لك تحديد العلامات الخاصة بك واستخدامها كجزء من المعيار.

أيضا ، كما أشار الآخرون ، فهي غير صالحة وبالتالي ليست محمولة.

لماذا لم يعلم أنها موجودة؟ لا أعرف ، إلا أنها ليست شائعة. ربما لم يكن يدرك أنك تستطيع ذلك.

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

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

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

أعتقد أن علامات المكياج هي مجرد مربكة أو غير واضحة من P مع IDS (بعض كتلة النص بشكل عام). نعلم جميعًا أن AP بمعرف عبارة عن فقرة ، لكن من يدري ما هي العلامات المخصصة المخصصة لها؟ على الأقل هذا هو تفكيري. :) لذلك هذا هو أكثر من قضية الأسلوب / الوضوح من وظيفة الوظائف.

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

CSS هي لغة ورقة أنماط يمكن استخدامها لتقديم مستندات XML ، وليس فقط (x) مستندات HTML. يمكن أن يكون المقتطف الخاص بك مع علامات المكياج جزءًا من وثيقة XML قانونية ؛ سيكون واحدًا إذا أرفقته في عنصر جذر واحد. ربما لديك بالفعل <html> ...</html> حولها؟ يمكن لأي متصفح حالي عرض مستندات XML.

بالطبع ، إنها ليست وثيقة XML جيدة جدًا ، فهي تفتقر إلى قواعد اللغة وإعلان XML. إذا كنت تستخدم رأس إعلان HTML بدلاً من ذلك (وربما تكوين الخادم الذي يرسل نوع MIME الصحيح) ، فسيكون بدلاً من ذلك HTML غير قانوني.

(X) HTML له مزايا على XML العادي لأن العناصر لها معنى دلالي مفيد في سياق عرض صفحة الويب. يمكن أن تعمل الأدوات مع هذه الدلالات ، ويعرف المطورين الآخرون المعنى ، فهو أقل عرضة للخطأ وأفضل قراءة.

ولكن في سياقات أخرى ، من الأفضل استخدام CSS مع XML و/أو XSLT للقيام بالعرض التقديمي. هذا ما فعلته. نظرًا لأن هذه لم تكن مهمتك ، فأنت لا تعرف ما كنت تفعله ، و HTML/CSS هو أفضل طريقة للذهاب معظم الوقت الذي يجب أن تلتزم به في السيناريو الخاص بك.

يجب عليك إضافة رأس (x) HTML إلى المستند الخاص بك حتى تتمكن الأدوات من منحك رسائل خطأ ذات مغزى.

... أنا ببساطة أغير جميع العلامات المكونة الخاصة بي إلى الفقرات مع ID's.

أنا في الواقع أواجه مشكلة في اقتراحه حول كيفية القيام بذلك بشكل صحيح.

  1. أ <p> العلامة للفقرات. أرى أشخاصًا يستخدمونه طوال الوقت بدلاً من Div - ببساطة لأغراض التباعد أو لأنه يبدو لطيفًا. إذا لم تكن فقرة ، فلا تستخدمها.

  2. لا تحتاج أو ترغب في التمسك بكل شيء ما لم تكن بحاجة إلى استهدافه على وجه التحديد (على سبيل المثال مع JavaScript). استخدم الفصول أو مجرد div مباشرة.

منذ أيامها الأولى ، تم تصميم CSS ليكون علامة لادروسية بحيث يمكن استخدامها مع أي لغة إنتاج لغة على حد سواء على حد سواء هياكل DOM (SVG على سبيل المثال). أي علامة تتوافق مع name token الإنتاج صالح تماما في CSS. لذا فإن سؤالك يدور حول HTML من CSS نفسها.

يتم دعم العناصر ذات العلامات المخصصة بواسطة مواصفات HTML5. يقوم HTML5 بتوحيد الطريقة التي يجب أن يتم بها تحليل العناصر غير المعروفة في DOM. لذا فإن HTML5 هي أول مواصفات HTML التي تمكن العناصر المخصصة بالمعنى الدقيق للكلمة. تحتاج فقط إلى استخدام HTML5 Doctype <!DOCTYPE html> في المستند الخاص بك.

اعتبارا من أسماء العلامات المخصصة نفسها ...

هذا المستند http://www.w3.org/tr/custom-elements/ يوصي العلامات المخصصة التي تختارها لاحتواء رمز واحد على الأقل "-" (DASH). بهذه الطريقة لن يتعارضوا مع عناصر HTML المستقبلية. لذلك من الأفضل تغيير مستندك إلى شيء كهذا:

<style>
so-cool {
    color:blue;
}
</style>

<body>
    <so-cool>HELLO</so-cool>
</body> 

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


يبدو أن أحداً لم يذكرها ، لذلك سأفعل.

هذا منتج ثانوي حروب المتصفح.

في التسعينيات من القرن العشرين عندما بدأ الإنترنت لأول مرة في السقد ، زادت المنافسة في سوق المتصفح. للبقاء قادرين على التنافسية ورسم المستخدمين ، حاولت بعض المتصفحات (أبرزها Internet Explorer) أن تكون مفيدة و "سهلة الاستخدام" من خلال محاولة معرفة مصممي الصفحات عنى وبالتالي سمحت بالارتياح غير الصحيحة (على سبيل المثال ، <b><i>foobar</b></i> من شأنه أن يقدم بشكل صحيح كما الجريئة).

كان هذا منطقيًا إلى حد ما لأنه إذا استمر أحد المتصفح في الشكوى من أخطاء بناء الجملة بينما أكل آخر أي شيء ألقيته فيه ويبصقون نتيجة صحيحة (أكثر أو أقل) ، فإن الناس سيتدفقون بشكل طبيعي إلى الأخير.

بينما اعتقد الكثيرون أن حروب المتصفح قد انتهت ، فقد استعادت حرب جديدة بين بائعي المتصفح في السنوات القليلة الماضية منذ إطلاق سراح Chrome ، وبدأت Apple في النمو مرة أخرى ودفع Safari ، وفقدت أي هيمنةها. (يمكنك تسميتها "حرب باردة" بسبب التعاون ودعم المعايير من قبل بائعي المتصفح.) لذلك ، ليس من المفاجئ حتى المتصفحات المعاصرة التي من المفترض تتوافق بشكل صارم مع معايير الويب في الواقع تحاول أن تكون "ذكيًا" وأن تسمح بسلوك قياسي مثل هذا من أجل محاولة الحصول على ميزة كما كان من قبل.

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

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

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

لا يوجد شيء من الناحية الفنية في هذا من منظور CSS. ومع ذلك ، فإن استخدام العلامات المكونة هو شيء يجب ألا تفعله في HTML.

HTML هي لغة ترميز ، مما يعني أن كل علامة تتوافق مع نوع معين من المعلومات.

لا تتوافق علاماتك المكونة مع أي نوع من المعلومات. سيؤدي ذلك إلى خلق مشاكل من زحف الويب ، مثل Google.

اقرأ المزيد من المعلومات حول أهمية الترميز الصحيح.

يحرر

تشير divs إلى مجموعات من العناصر المتعددة ذات الصلة ، والتي تعني عرضها في شكل كتلة ويمكن معالجتها على هذا النحو.

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

لا ترتبط العلامات المخصصة بأي معايير ، وبالتالي يجب استخدام SPAN/DIV مع خصائص الفئة/المعرف بدلاً من ذلك.

هناك جداً إعفاءات محددة لهذا ، مثل الزاوي ي

على الرغم من أن CSS لديه شيء يسمى "محدد العلامات" ، إلا أنه لا يعرف في الواقع ما هي العلامة. لقد ترك هذا لغة الوثيقة لتحديدها. تم تصميم CSS ليتم استخدامه ليس فقط مع HTML ، ولكن أيضًا مع XML ، حيث (على افتراض أنك لا تستخدم DTD أو مخطط التحقق من الصحة الأخرى) ، يمكن أن تكون العلامات حول أي شيء. يمكنك استخدامه بلغات أخرى أيضًا ، على الرغم من أنك ستحتاج إلى التوصل إلى دلالاتك الخاصة لتحديد الأشياء التي تتوافق مع "العلامات" و "السمات".

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

لماذا تعمل CSS مع عناصر مزيفة؟ لأنه لا يؤذي أي شخص لأنه ليس من المفترض أن تستخدمها على أي حال.

لماذا لا يريدني أستاذي أن أستخدم عناصر مكياج؟ لأنه إذا تم تعريف هذا العنصر من خلال مواصفات في المستقبل ، فسيكون لعنصرك سلوكًا لا يمكن التنبؤ به.

أيضا ، لماذا لم يكن يعلم أن هناك عناصر مكياج موجودة والعمل مع CSS. هل هم غير شائعين؟ لأنه ، مثله مثل معظم مطوري الويب الآخرين ، يفهم أنه يجب ألا نستخدم الأشياء التي قد تنكسر بشكل عشوائي في المستقبل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top