2011-07-16 31 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值与散列匹配的元素,或a name=元素与name等于标记(请注意,这是一个锚点,而不是任何标记)。您的li标记与这些标准中的任何一个都不符。 (其实,我不相信li elements允许有一个name属性。)

如果这种结构在页面上独一无二的,尝试改变

<li name="services"> 

<li id="services"> 

Live example

多年来这是一个保存完好的秘密(我当然不知道它的10年),但它covered in the HTML 4.10 spec

+0

啊.. 。好的,谢谢,我认为这是名字的价值不是ID,谢谢! – chromedude

0

您需要使用锚<a>标签:

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

是的,在1997年左右。 ;-)严重的是,浏览器通过带有片段标识符(hash)的'id'来指向元素的事实似乎是一个非常保守的秘密,然而,即使是IE6也是如此。在HTML 4.01规范中这种用法[已被覆盖](http://www.w3.org/TR/html401/struct/global.html#adef-id)。 (当时我还没意识到它。) –

0

您应该创建一个a标签与name元素 - 你不能只重视name任何标签

<li><a name="packages"></a> 
    <h1>Packages</h1> 
    <p>text</p> 
</li> 
相关问题