选择类还是<nav>元素更好?

6
我曾多次被告知不要选择像<nav><body>这样的元素,而是使用类选择器。例如,“<nav>标签不是用于显示/样式目的,而是为了使导航部分明确分离。”但这难道不是违背语义化元素的一部分吗?
假设我只有一个项目列表,并将它们水平排列、添加背景等,是否仍然可以选择nav元素而非类呢?
    <nav class="navigation">
        <ul class="links">
            <li><a href="">Shop</a></li>
            <li><a href="">Discounts</a></li>
            <li><a href="">Profile</a></li>
            <li><a href="">Blog</a></li>
        </ul>
    </nav>

而且,如果你要给我点踩,请提供一个解释,而不是假设我能够直观地知道你为什么这样做。


相关文章: CSS性能反思。话虽如此,我认为这个问题应该关闭,因为它基本上鼓励主观性。 - raina77ow
不,这是一个好问题。它遵循了帮助中心的规则。 - Ian Hazzard
“主观性”难道不能通过涵盖不同的情况来使其更加客观吗?例如,“是的,在这些情况下选择<nav>是可以的,但普遍认为会出现问题,因此使用类选择器。” - Padawan
Alohci,很少有东西可以被认为是真正的客观。即使是医生的客观意见也是主观的,因此有短语“寻求第二意见”,强调关键词“意见”。一个例子是使用ID或Class。https://dev59.com/bHRB5IYBdhLWcg3wtZIV 只因为它们都符合CSS规范,并不意味着其中一个比另一个更好,这是许多人的看法。我认为许多规则纳粹分子忽略了问题的要点,这些问题是为了遵守某些协议而提出的,最终会阻碍而不是帮助。 - Padawan
2个回答

7

添加一个类可以更容易地扩展页面。该类本身应具有语义意义。

如果您仅选择元素,然后稍后添加相同类型的更多元素,则无论如何都必须添加类。


谢谢Jakub,听起来你的意思是说选择语义元素是可以的,但是当你添加重复元素时会出现问题,这就是为什么类选择器更可取的原因,因为它可以精确地锁定你想要的元素,而语义元素则太广泛了。这样理解对吗? - Padawan
@Padawan 是的,但请记住您可以重复使用一个类。它不仅适用于单个元素,而是适用于某种类型的元素。例如,您可能会为主按钮创建一个类,该类可能出现在50个不同的页面上,有时甚至在页面上出现多次,但它仍然非常具体,因为该类表示该按钮是主要的。 - Jakub Arnold
好的,谢谢,这很有帮助。我不知道如何使问题更客观,如果您有任何建议,请告诉我。 - Padawan

1

类选择器比元素选择器具有更高的优先级,因此您可以根据需要使用它。

假设有以下 HTML 代码:

<nav class="nav"></nav>
<ul class="nav"></ul>
<nav class="footer-nav"></nav>

现在,如何使用css样式来为<nav class="nav"></nav>进行样式设计? .nav{...}?不行,有两个类都是nav。
接下来:nav{}?不行,有两个nav元素。
那么,怎么办呢?
像这样:nav.nav{}现在它选择了我们想要的特定元素。
所以,这完全取决于我们要选择的元素。
所以,它完全取决于您页面中拥有的元素。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接