【问题标题】:Navigation with <nav-ul-li> vs. navigation with <div> [closed]使用 <nav-ul-li> 导航与使用 <div> 导航 [关闭]
【发布时间】:2017-08-20 09:38:37
【问题描述】:

1.版本(&lt;nav-ul-li&gt;):

HTML:

<nav>
  <ul>
    <li>1.1 Menu</li>
    <li>1.2 Menu</li>
    <li>1.3 Menu</li>
    <li>1.4 Menu</li>
  </ul>
</nav>

CSS:

ul {
 padding: 0;
}

li { 
 display: inline;
 width: 24%;
 float: left;
    border-style: solid;
    border-width: 1px;
    background-color: red;
}



2.版本(&lt;div&gt;):

HTML:

<div class="navigation">
     <div class="menu">1.1 Menu</div>
     <div class="menu">1.2 Menu</div>
     <div class="menu">1.3 Menu</div>
     <div class="menu">1.4 Menu</div>
</div>

CSS:

.navigation {
 width: 100%;
 float: left;
 margin-top: 5%;
    border-style: solid;
    border-width: 1px;
    background-color: green;
}

.menu {
 float: left;
 width: 24%;
    border-style: solid;
    border-width: 1px;
    background-color: green;
}

我有一个关于网站导航的一般性问题。我以两种不同的方式为网站创建了 same 导航。在1。版本 我使用了 HTML 标签&lt;nav-ul-li&gt;2。版本 我只使用了HTML标签&lt;div&gt;。使用 两个版本,我得到了一个有效的导航。

由于我是网络开发的新手,我真的不明白为什么我应该使用&lt;nav-ul-li&gt; 标签对导航进行编码,因为由于它们的标准属性,它们似乎更难以处理。因此,我更愿意使用&lt;div&gt; 解决方案。

&lt;div&gt; 解决方案是否会导致网站出现任何问题?
或者使用&lt;nav-ul-li&gt; 解决方案的原因是什么?

(到目前为止,我唯一能想到的是它可能会导致谷歌排名下降,因为谷歌只能根据&lt;nav-ul-li&gt; 标签检查网站是否有正确的导航)

你也可以在这里找到我的代码:https://jsfiddle.net/uss8uxur/14/

【问题讨论】:

  • 想想可访问性和屏幕阅读器的东西。如果您需要将微数据合并到您的页面中,请查看微数据。使用 nav 是正确的方法,因为每个浏览器或 html 阅读器都已学会理解 nav 意味着导航。 div 现在只是页面上的一个多用途阻塞元素。使用它不会给最终用户带来任何麻烦。
  • css-tricks: Navigation in Lists: To Be or Not To Be阅读这篇文章,包括后面的长评论,你会更好地理解它为什么重要。
  • @Amit:如何将导航的
    更改为
  • @Alohci:感谢您的链接。现场似乎掀起了热议。我喜欢 的解决方案,而将
      排除在外。你怎么看?
  • 原则上,我认为无障碍工具创建者可以比他们现在做的更多的事情来帮助他们的用户。但是我们必须使用最先进的技术,这意味着现在使用 nav-ul-li。

标签: html css seo


【解决方案1】:

除了阿米特的回答。根据W3 about nav的文档:“标签定义了一组导航链接”,而W3 about div:“标记定义 HTML 文档中的分部或部分”。 Element nav 是 HTML5 的 semantic element。此元素专门设计用于包含与主题相关的内容。元素 div 对所包含的内容没有任何价值。 Mozilla's documentation 提供了有关这些标签的更多详细信息:“HTML 元素表示页面的一部分,其目的是在当前文档或其他文档中提供导航链接。导航部分的常见示例是菜单、目录和索引”和“HTML 元素是流内容的通用容器,本质上并不代表任何东西”。使用语义元素,您可以对网页的源代码进行分段和/或分段。搜索引擎和浏览器使您更容易理解网页的结构。语义标签是机器可读的,有助于机器学习。

【讨论】:

    【解决方案2】:

    我在这里给出一个更长的答案,其中包括我上面提到的评论。 想想可访问性和屏幕阅读器的东西。如果您需要将微数据合并到您的页面中,请查看微数据。使用 nav 是正确的方法,因为每个浏览器或 html 阅读器都已学会理解 nav 意味着导航。 div 现在只是页面上的一个多用途阻塞元素。使用它不会给最终用户带来任何麻烦。

    此外,正如您上面提到的,您可以有效且非常轻松地在 nav 标签内使用 div 进行导航。如果手头的要求不希望您迎合辅助技术,请务必这样做。正如上面@Alohci 提供的文章曾经提到的那样,在这种情况下,“您可以将其留给专家”。

    总体而言,在 HTML 5 中,HTML 在含义上变得更加语义化,起草 HTML 的人选择为用于特定目的的内容提供特定含义。之前,它是关于使用 table、div 和 span 等创建 HTML。你可能会用作

    <div id="menu">
    <div id="main">
    <div id="aside">
    <div id="page">
    <div id="main-content">
    <div id="main-content-part-one">
    

    现在相当于

    <nav>
    <main>
    <aside>
    <page>
    <article>
    <section>
    

    所以,是的,它需要学习更多,但对于开发它的人来说绝对不会无聊。但是您的 HTML 的每个部分都将满足特定且易于识别的目的,用于辅助事物或维护它们的人。您还可以将 ARIA 角色放在这些项目中以获取辅助技术。从 HTML 到 HTML 5,HTML 从理论上的 变得更加实用。它想要理解其中所写的内容以呈现内容。

    并非所有屏幕阅读器、搜索引擎都可能使用正确的 HTML5 结构,但迟早会出现这种情况。搜索引擎算法不断变化和发展,随着旧的 HTML 页面开始在网络上越来越少,他们可以做的一件事就是要求严格遵守 HTML5 结构以进行 SEO 排名。目前,我们只能推测。

    我的建议是你应该使用 nav 和 ul-li、ol-li 之类的东西进行导航,并使用 css 样式(库,可能是引导程序)使它们看起来像某种方式,但开始使用 HTML5正确的语义。任何重新开始的人都需要一些时间才能掌握 HTML5 中提供的许多内容。

    要查看(或多或少)各个标签的确切用途,您可以前往下面的链接并检查第 4 点中的内容,HTML 的元素

    http://w3c.github.io/html/index.html#contents

    【讨论】:

    • 嗨,阿米特,非常感谢关于我的主题的详细回答。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签