سؤال

لا يحب Visual Studio علامات المرساة على الصفحة:

التحقق من الصحة (XHTML 1.0 الانتقالية): تعتبر السمة "الاسم" عفا عليها الزمن. ينصح بناء أحدث.

أنا استخدم name سمات بهذه الطريقة ...

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd" xml:lang="en">
    ...
    <body>
        ...
        <p>On this page&hellip;</p>
        <ul>
            <li><a href="#one">Section One</a></li>
            ...
        </ul>
        ...
        <h2><a name="one">Section One</a></h2>
        ...
    </body>
</html>

هل هناك حقًا طريقة أكثر حداثة للقيام بذلك؟ أم أن Visual Studio مليء بالحماقة؟

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

المحلول

يجب عليك استخدام id ميزة بدلا من ذلك. يعمل بنفس الطريقة ، ولا تحتاج إلى فني <a name=...>, ، ولكن ببساطة

<h2 id="one">Section One</h2>

نصائح أخرى

يتم إهمال سمات الاسم في XHTML 1.0 - يمكنك استخدام سمة معرف بنفس الطريقة ، راجع معرفات الشظايا في ال إرشادات التوافق HTML من المواصفات XHTML.

لذلك يمكنك ببساطة استخدام

<h2><a id="one">Section One</a></h2>

لكن لاحظ أن المواصفات 1.0 توصي بلعبها بأمان مع شيء مثل هذا:

<h2><a name="one" id="one">Section One</a></h2>

ومع ذلك ، فإن شظبك تستخدم XHTML 1.1, ، حيث كانت سمة الاسم تمت إزالته بالكامل من a و map العناصر - حتى لا يمكنك استخدام معرف إلا.

أعتقد أن النهج الحديث هو استخدام id السمة ، والتي سيتم تقييمها كمرساة. على سبيل المثال ، إذا تغيرت

<h2><a name="one">Section One</a></h2>

إلى

<h2><a id="one">Section One</a></h2>

ستظل معالجته page.html#one.

يمكنك أيضًا الارتباط على رأس قسم:

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

<P>
    <A href="#section1">Introduction</A><BR>
    <A href="#section2">Some background</A><BR>
    <A href="#section2.1">On a more personal note</A><BR>
    ...the rest of the table of contents...
    ...the document body...

    <H2 id="section1">Introduction</H2>
    ...section 1...

    <H2 id="section2">Some background</H2>
    ...section 2...

    <H3 id="section2.1">On a more personal note</H3>
    ...section 2.1...

[...]
</P>

مصدر: http://www.w3.org/tr/rec-html40/struct/links.html

أعتقد أن الطريقة الصحيحة للقيام بذلك هي

نعم إنه قديم. يجب استبدال سمة "المعرف".

نقلا عن صفحة W3Schools:

"تحل سمة المعرف محل سمة الاسم HTML 4.01 تحدد سمة الاسم للعناصر A و Applet و Frame و IFRAME و IMG والخريطة. في XHTML ، يتم إهمال سمة الاسم. استخدم المعرف بدلاً من ذلك."

http://www.w3schools.com/xhtml/xhtml_syntax.asp

الاسم = السمات لعناصر وضع العلامات في نموذج ، ولا يمكن استخدامها إلاu003Cform style=";text-align:right;direction:rtl"> العناصر (الإدخال ، textarea ، حدد إلخ). لكل شيء آخر ، معرف = يستخدم. بالضبط سبب اعتقاد الناس W3C طريقتين مختلفتين لتسمية عنصر (مع مجموعات مختلفة من الشخصيات المسموح بها) لم تكن معروفة بسهولة.

لكن هنا http://www.w3.org/tr/html4/struct/links.html#h-122.2 قرأت هذا: "بعض وكلاء المستخدمين الأكبر سنا لا يدعمون المراسي التي تم إنشاؤها باستخدام سمة المعرف." لذا؟

حتى <a name="..."></a> لم يعد مدعومًا بمعيار HTML (X) الذي تستخدم name و id على المراسي التي تربط بجزء من نفس الصفحة. من W3C's XHTML 1 spec:

في XML ، المراجع URI RFC2396 تلك الغاية مع معرفات جزء من النموذج "#foo" لا تشير إلى العناصر ذات السمة name="foo"; ؛ بدلاً من ذلك ، يشيرون إلى عناصر ذات سمة محددة لتكون من نوع معرف ، على سبيل المثال ، id السمة في HTML 4. لا يدعم العديد من عملاء HTML الحاليين استخدام سمات نوع المعرف بهذه الطريقة ، لذلك قد يتم توفير قيم متطابقة لكل من هذه السمات لضمان أقصى توافق للأمام والخلف (على سبيل المثال ، <a id="foo" name="foo">...</a>).

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