当前位置: 首页 > 面试题库 >

项目中列出的类的顺序会影响CSS吗?

闻人修明
2023-03-14
问题内容

我知道CSS选择器具有最高的优先级(即.classname< #idname)。

我还知道,如果事物具有相同的特异性,那么最后一个调用的语句将具有优先权:

.classname1 { color: red; }
.classname1 { color: blue; } // classname1 color will be blue

HTML类在DOM元素上的排序是否会影响语句优先级?


问题答案:

我不得不不同意乔恩和沃森的回答,因为…

是的, 可以 (取决于声明)

您的问题是:

CSS类在DOM元素上的排序是否会影响语句优先级?

哪个确实取决于所讨论的语句。

HTML排序通常不重要

当直接调用一个类(即或)或组合调用(即或)时,以下 是等效的
.class1``.class2``.class1.class2``.class2.class1

<div class="class1 class2"></div>
<div class="class2 class1"></div>

可以基于HTML顺序影响上述HTML的语句优先级的情况

在HTML中进行排序最重要的地方是在CSS中使用 属性 选择器。

示例1:使用以下代码尝试 属性值 匹配的
提琴手将不会对字体颜色进行任何更改,并且div由于类的顺序,每个字体都会具有不同的属性:

[class="class1"] {
    color: red;
}

[class="class1 class2"] {
    background-color: yellow;
}

[class="class2 class1"] {
    border: 1px solid blue;
}

示例2使用以下代码尝试 属性值的 开头匹配的

在第二个中不会改变字体颜色div,并且div由于类的顺序,每个都将具有不同的属性:

[class^="class1"] {
    color: red;
}

[class^="class1 class2"] {
    background-color: yellow;
}

[class^="class2 class1"] {
    border: 1px solid blue;
}

示例3使用以下代码尝试 属性值的 末尾匹配的
不会对first的字体颜色进行任何更改div,并且div由于类的顺序,每个字体都会具有不同的属性:

[class$="class1"] {
    color: red;
}

[class$="class1 class2"] {
    background-color: yellow;
}

[class$="class2 class1"] {
    border: 1px solid blue;
}

关于“优先”的明确声明

需要明确的是,在上述情况下,就“陈述优先权”而言,真正受到影响的实际上是该陈述是否确实 适用
于该元素。但是,由于html" target="_blank">应用程序在某种意义上是基本优先级,并且由于上述情况是这种应用程序实际上是基于HTML Dom元素上的 顺序
(而不是该类的存在或不存在)的情况,我认为值得将此作为答案。

可能有效使用类订购?

根据BoltClock的评论,这是我想到的想法。考虑根据对不同样式至关重要的任何因素,仅考虑两个用于样式化元素的类。从理论上讲,这两个类可以使用属性选择器的组合来代替使用11个不同的单独类(实际上,如稍后所述,只有一个类,可能性几乎是无限的,但我将在稍后讨论帖子是关于多个类的排序)。对于这两个类,我们可以为元素设置不同的样式,如下所示:

假设这些HTML组合

<div class="class1">Element 1</div>
<div class="class2">Element 2</div>
<div class="class1 class2">Element 3</div>
<div class="class2 class1">Element 4</div>

CSS的可能性

/* simply has the class */
.class1 {} /* affects elements 1, 3, 4 */
.class2 {} /* affects elements 2-4 */
/* has only a single class */
[class="class1"] {} /* affects element 1 only */
[class="class2"] {} /* affects element 2 only */
/* simply has both classes */
.class1.class2 {} /* affects elements 3-4 */
/* has both classes, but in a particular order */
[class="class1 class2"] {} /* affects element 3 only */
[class="class2 class1"] {} /* affects element 4 only */
/* begins with a class */
[class^="class1"] {} /* affects elements 1 & 3 only */
[class^="class2"] {} /* affects elements 2 & 4 only */
/* ends with a class 
   NOTE: that with only two classes, this is the reverse of the above and is somewhat
   superfluous; however, if a third class is introduced, then the beginning and ending 
   class combinations become more relevant.
*/
[class$="class1"] {} /* affects elements 2 & 4 only */
[class$="class2"] {} /* affects elements 1 & 3 only */

如果我计算正确,则3个类可以至少提供40个选择器选项组合。

为了阐明我对“无限”可能性的注释,如果逻辑正确,则单个类可能已嵌入通过[attr*=value]语法查找的代码组合。

这一切太复杂了吗?可能吧 这可能取决于确切实现方式的逻辑。我想带出的一点是,它是可能的CSS3有类排序是显著如果需要的话,并计划于它,它可能不是 _可怕的_错误要利用CSS的权力的方式。



 类似资料:
  • 本文向大家介绍在css中哪个属性会影响dom读取文档流的顺序相关面试题,主要包含被问及在css中哪个属性会影响dom读取文档流的顺序时的应答技巧和注意事项,需要的朋友参考一下 1.direction, writing一mode 前端页面由哪三层构成,分别是什么,作用是什么 Html (结构) : 超文本标记语言, 由 HTML 或 xhtml之类的标记语言负责创建。标签,也就是那些出现在尖括号里的

  • 问题内容: 说,我有以下mixin通过触摸彼此重叠: 如果我希望我的视图通过该命令,请检查A->检查B,我的代码应该是还是? 为什么我们总是将其子类或子类放在mixins之后?(我通过阅读django通用视图的源代码注意到了这一点,但我不知道其背后的原理,如果有的话) 问题答案: MRO基本上是深度优先,从左到右。有关更多信息,请参见新型Python类中的方法解析顺序(MRO)。 你可以查看要检查

  • 我有一个有600万行的表,我需要查找六列来选择项目。所以我创建了一个包含六列的索引。 更改索引中列的顺序是否影响查询速度? 查询的速度是否取决于每列所具有的唯一项的数量?或者列上的条件具有的可能结果的总数? 我尝试重新排序索引中的列,查询速度似乎有一些重大变化 表:pic_tag_relations 列: tag_id(int)(1-1,000,000)(基数:最低) contrast_score

  • 我正在为学院实现DFS和边缘分类(基于本文提供的代码:https://courses.csail.mit.edu/6.006/fall11/rec/rec14.pdf)。 斜体字母只是顶点的名称,而顶点内部的数字分别是发现时间和完成时间。边缘分为后、前或交叉;其他都是树边。 正如您所看到的,该图是按照以下顺序访问的:首先是,然后是它的邻居(在DFS之后);当没有更多可访问的邻居时,访问开始于。 为

  • 我试图谷歌这个,但运气不好。 我有一个很大的转变,有些病例明显比其他病例更常见。 所以我想知道订单是否真的保持原样,并且“上层”案例在“下层”案例之前得到测试,因此评估得更快。 我想保留我的订单,但如果这会影响速度,那么重新排序分支将是一个好主意。 举例说明:

  • 问题内容: 我在表中有两个索引字段- 和(单个索引,不是复合索引)。 的字段值非常有限(假设它仅为0或1),因此50%的表记录具有相同的。另一方面,值来自更大的集合,因此具有相同值的记录量很小。 这些查询中的任何一个都会比另一个查询运行得更快吗? 另外,如果两个字段都没有索引,是否会改变行为? 问题答案: SQL被设计为一种声明性语言,而不是一种过程性语言。因此,查询优化器应该 不会 考虑在决定如