2011-07-16 11 views
0

私はこのHTMLを持っている:相対的に配置されている要素のhtmlのアンカーにスクロールできますか?

 <li name="services"> 
      <h1>Services</h1> 
      <p>text</p> 
     </li> 
     <li name="about"> 
      <h1>About</h1> 
      <p>text</p> 
     </li> 
     <li name="portfolio"> 
      <h1>Portfolio</h1> 
      <p>text</p> 
     </li> 
     <li name="team"> 
      <h1>Team</h1> 
      <p>text</p> 
     </li> 
     <li name="process"> 
      <h1>Process</h1> 
      <p>text</p> 
     </li> 
     <li name="packages"> 
      <h1>Packages</h1> 
      <p>text</p> 
     </li> 
    </div> 

このHTMLページ上の比較的位置です。私がページを '#services'に向けると、絶対に何もしません。ページを再びロードするだけです。私は、問題が比較的ポジティブであると仮定しています。この仕事をする方法はありますか?

答えて

3

ページを '#services'にすると、全く何もありません。

私は相対的な配置が問題だとは思わない。フラグメント識別子(ハッシュ)は、idの値がハッシュと一致する要素、またはnameがタグと等しいa name=要素(アンカーであることに注意してください。aタグで、タグだけではありません)。 liタグがこれらのいずれの基準とも一致しません。 (実際には、私はli elementsname属性を持つことが許されていることを信じていません。)

この構造は、ページ上で一意である場合は、

<li id="services"> 

<li name="services"> 

を変更してみてくださいLive example

何年もの間、それはよく知られた秘密でした(私は確かにそれについて知らなかった)が、covered in the HTML 4.10 specであった。

+0

ああnameを添付することはできません。.. 。okありがとう、私はそれがIDではなく、名前の値であると思った、ありがとう! – chromedude

0

あなたがアンカー<a>タグを使用する必要があります。

<a name="services"></a> 
+0

はい... 1997年にそうです。 ;-)真剣に言えば、ブラウザがフラグメント識別子(ハッシュ)で 'id 'で要素をターゲットにしているという事実は、非常によく知られた秘密であるようですが、IE6でもそうです。この使用方法は、HTML 4.01仕様では(http://www.w3.org/TR/html401/struct/global.html#adef-id)適用されていました。 (私はそれも当時分かっていませんでした。) –

0

あなたはname要素とaタグを作成する必要があります - あなただけの任意のタグ

<li><a name="packages"></a> 
    <h1>Packages</h1> 
    <p>text</p> 
</li> 
関連する問題