如果我一直使用CSS Class而不是CSS ID,是否有利弊?

前端之家收集整理的这篇文章主要介绍了如果我一直使用CSS Class而不是CSS ID,是否有利弊?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在CSS中,我们可以使用ID和类。在语义,Web标准 – W3C,SEO,可访问性和未来的可维护性方面,如果我使用Class总是代替ID,是否有利弊?

解决方法

一个很大的区别:在CSS中,一个类的重要性低于ID。

想象一下,CSS声明中的每个规范都为该声明的值添加了一定数量的点。让我们说点要这样(完全弥补,无论如何):

>标签名称(‘a’,’div’,’span’):1点
>类名(‘.highlight’,’.error’,’.animal’):10分
> ID(‘#main-headline’,’#nav’,’#content’):100分

所以,以下声明:

a {
    color: #00f;
}

.highlight a {
    color: #0f0;
}

#nav .highlight a {
    color: #f00;
}

分别为1,11和111分。对于给定的标签,与其匹配的点数最多的声明“获胜”。所以例如,使用这些声明,所有的标签都将是蓝色的,除非它们位于具有“highlight”类的元素中,在这种情况下,它们将是绿色的,除非该元素在id =“nav “在这种情况下,他们会变红。

现在,如果你只使用课程,你可以把自己变成棘手的情况。假设您希望将内容区域中的所有链接显示为蓝色,但是您的foo区域中的所有链接均为红色:

.content a {
    color: #00f;
}

.foo a {
    color: #f00;
}

按照我以前(组成)的规模,这两个都有11点。如果你的内容中有一个foo,哪一个胜利?在这种情况下,由于后果而获胜。现在,也许这就是你想要的,但这只是幸运的。如果您稍后改变主意,并希望内容获胜,则必须更改其顺序,并且根据CSS文件中声明的顺序是一个坏主意。现在,如果相反,你有以下声明:

#content a {
    color: #00f;
}

.foo a {
    color: #f00;
}

内容总是会赢,因为该声明的值为101(击败foo的11)。无论他们进入什么秩序,内容声明都将永远都是愚蠢的。这为您提供了一些非常重要的一致性。获胜者不会根据文件中更改的订单进行任意更改,如果要更改获胜者,则必须更改声明(可能在.foo声明前添加一个#content,因此它将具有111点)。

因此,基本上,价值观的差异是重要的,如果你只是使用类,你会得到很多不一致和看似任意的赢家。

原文链接:https://www.f2er.com/css/218934.html

猜你在找的CSS相关文章