内容后导航标记

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 200 美元的免费积分!

我不是 SEO 专家。 我不久前说过,我认为这主要是一个 常识 的问题。 然而,我确实发现这个主题很有趣。 在搜索词中获得第一名的结果是一件大事。 这可能意味着巨额财富。 对于我们这些有客户的人来说,他们渴望这一点,并希望我们提供帮助。 因此,如果我们可以采取合理的措施来帮助解决这个问题,我认为我们应该这样做。

在我看来,SEO 原则之一确实很有道理,那就是将页面上最重要的内容尽可能地放在 HTML 标记的顶部。

请查看下面的网页布局。 常识会让我们以逻辑顺序排列标记,如下所示

此屏幕截图没有显示的是,菜单实际上是下拉导航。 它是一系列嵌套的无序列表。 **导航代码实际上有 142 行!** 在搜索引擎抓取到我们希望它看到的重要内容之前,这是很多“内容”。

理想的情况是,按照内容的重要性顺序获取我们的源代码。 就像这样

说起来容易做起来难。 我们将不得不求助于一些 CSS 技巧来实现它。 即绝对定位和相对定位。

这一切都从头部开始。 我们将充当页面标题的 h1 放入一个具有相对定位的包装 div 中。 然后,我们将 h1 标签绝对定位在其内部,并使用底部和左侧值。 这意味着如果它 **增长**,它将向上增长,而不是向下增长。

我们还将为头部提供过多的底部填充。 此底部填充的高度将等于导航栏的预期高度。 这确保了在页面标题之后和其余内容之前会有空间。

然后,我们为 page-wrap 本身设置相对定位,并将导航代码一直向下移动到关闭

标记之前。 然后,我们可以使用顶部和左侧值绝对定位 nav,使其显示在我们创建的间隙中。

瞧! 我们现在有这样的源代码开头

<body>

   <div id="page-wrap">
	
      <div id="header">
         <h1 id="mainPageTitle">Content is King</h1>
      </div>
		
      <div id="main-content">

      <h2>This Paragraph Appears Above Nav in HTML</h2>
		
      <p>Pellentesque habitant morbi tristique senectu.....

重要的内容就在顶部。 为了可访问性,我们应该在头部包含这样的链接

<a class="hide" href="#nav">Jump to Navigation</a>

“hide” 类正是这样做的,但没有使用 display: none,这实际上是不可访问的。

.hide   { 
   position: absolute; 
   left: -9999px; 
   top: -9999px; 
}

现在,屏幕阅读器首先读取的是“跳转到导航”链接,这可能很有用。

这真的有用吗?

我不知道。 在我看来,它似乎可以,但我没有任何确凿的证据。 我也不认为这样做会带来任何惩罚风险。 毕竟,这就是 CSS 的设计目的。

 

查看演示   下载文件