質問

Visual Studioはページ上のアンカータグを好みません:

  

検証(XHTML 1.0 Transitional):   属性「名前」が考慮されます   時代遅れ。新しいコンストラクトは   推奨。

この方法で 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 属性を使用する必要があります。同じように機能し、人工的な&lt; a name = ...&gt; は必要ありませんが、単純に

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

他のヒント

name属性は、 XHTML 1.0 で非推奨です-同じでid属性を使用できますただし、フラグメント識別子を参照してください。 .w3.org / TR / xhtml1 /#guidelines "rel =" noreferrer "> XHTML仕様のHTML互換性ガイドライン。

したがって、単純に使用できます

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

ただし、1.0仕様では、次のようなもので安全にプレイすることを推奨しています。

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

ただし、フラグメントは XHTML 1.1 を使用します。name属性は a および map code>要素-したがって、idのみを使用できます。

現代のアプローチは、アンカーとして評価される id 属性を使用することだと思います。たとえば、変更した場合

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

to

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

引き続き page.html#one としてアドレスします。

適切な方法は&lt; a id =&quot; one&quot;&gt;であると信じています

はい、古いです。 &quot; id&quot;と置き換える必要があります。属性。

w3schoolsページの引用:

  

&quot; id属性はname属性を置き換えます   HTML 4.01は、要素a、アプレット、フレーム、iframe、img、およびmapのname属性を定義しています。 XHTMLでは、name属性は非推奨です。代わりにidを使用してください。&quot;

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

name =属性は、フォーム内の要素にラベルを付けるためのもので、&lt; form&gt;でのみ使用できます。要素(入力、テキストエリア、選択など)。それ以外の場合は、ID =が使用されます。 W3Cの人々が(許容文字の異なるセットで)要素に名前を付ける2つの異なる方法が必要だと思った正確な理由は、すぐにはわかりません。

ただし、 http://www.w3。 org / TR / html4 / struct / links.html#h-12.2.3 これを読みました:&quot;一部の古いユーザーエージェントはid属性で作成されたアンカーをサポートしていません。&quot;だから?

&lt; a name =&quot; ...&quot;&gt;&lt; / a&gt; は、廃止されただけでなく、使用している(X)HTML標準ではサポートされなくなりました-同じページの一部にリンクしているアンカーで name id の両方を使用するのが最も安全かもしれません。 W3CのXHTML 1仕様から:

  

XMLでは、フラグメントで終わるURI参照 RFC2396   &quot;#foo&quot; という形式の識別子は、属性 name =&quot; foo&quot; を持つ要素を参照しません。むしろ、   タイプIDとして定義された属性を持つ要素を参照します。たとえば、HTMLの id 属性   4.多くの既存のHTMLクライアントは、この方法でのIDタイプ属性の使用をサポートしていないため、同一です   これらの属性の両方に値を指定して、最大の前方および後方を確保することができます   互換性(例:&lt; a id =&quot; foo&quot; name =&quot; foo&quot;&gt; ...&lt; / a&gt;)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top