سؤال
لا يحب 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…</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>
أعتقد أن الطريقة الصحيحة للقيام بذلك هي
نعم إنه قديم. يجب استبدال سمة "المعرف".
نقلا عن صفحة W3Schools:
"تحل سمة المعرف محل سمة الاسم HTML 4.01 تحدد سمة الاسم للعناصر A و Applet و Frame و IFRAME و IMG والخريطة. في XHTML ، يتم إهمال سمة الاسم. استخدم المعرف بدلاً من ذلك."
الاسم = السمات لعناصر وضع العلامات في نموذج ، ولا يمكن استخدامها إلا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>)
.