Javascript 什么';隐藏/显示HTML元素或删除/插入HTML元素更快?
我正在开发一个导航栏,其中选定的按钮由三角形标记。我是否在导航栏的每个按钮中都放置了一个三角形,并且除了一个三角形外,其他所有三角形都不可见(或可见,但背景与按钮相同)?还是删除三角形并将其重新插入新按钮Javascript 什么';隐藏/显示HTML元素或删除/插入HTML元素更快?,javascript,html,dom,Javascript,Html,Dom,我正在开发一个导航栏,其中选定的按钮由三角形标记。我是否在导航栏的每个按钮中都放置了一个三角形,并且除了一个三角形外,其他所有三角形都不可见(或可见,但背景与按钮相同)?还是删除三角形并将其重新插入新按钮 我知道对性能的影响可能可以忽略不计,但我正在学习我的诀窍,所以我主要是出于好奇(并想学习最佳实践)我会用CSS做这类事情。创建一个“active”类,然后使用javascript添加/删除该类。这更干净,让您可以更好地控制所选指示器的样式(在本例中为三角形) 现在使用JS在特定选项卡上添加ac
我知道对性能的影响可能可以忽略不计,但我正在学习我的诀窍,所以我主要是出于好奇(并想学习最佳实践)我会用CSS做这类事情。创建一个“
active
”类,然后使用javascript添加/删除该类。这更干净,让您可以更好地控制所选指示器的样式(在本例中为三角形)
现在使用JS在特定选项卡上添加
active
类并从其他选项卡上删除。每个菜单项上都应该有一个三角形的空间。它应该设置为悬停时可见。将某些东西从不可见设置为可见几乎不需要时间。它比删除和加载选定内容上的图像更好。您可以在选定按钮上添加css类,并在性能方面显示带有css(例如背景图像)的三角形:只有您可以使用客观基准回答这一问题。你的问题的其余部分是基于观点的,因为没有“正确”的答案。就我个人而言,我可能会使用CSS类添加相关内容并在必要时应用它。通常情况下,删除原因隐藏和插入原因显示。由于这只是一个小三角形,而不是复杂的动画,您不应该看到性能上的巨大差异。但如前所述,CSS为您提供了一种更易于维护的方式来设置元素的样式(只需添加/删除一个类)。测量它并找出……?????????第二个点是一个逻辑“和”。是的。在CSS中,我们喜欢这样做。@titаааtit。不,点是CSS类选择器的一部分.active
。这不是一个逻辑和逻辑的问题。是什么使得它和两个类名都粘在一起,中间没有空间。code>.normal.active将选择.active
元素中的.normal
元素。把它们粘在一起,就可以得到两个类都有的元素。谢谢。(虽然它不是悬停,但更像是一个粘性按钮)
.normal{
//normal css for all tabs
}
.normal.active{
//triangle CSS for active one
}