Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 隐藏元素还是动态创建?_Javascript_Html_Css - Fatal编程技术网

Javascript 隐藏元素还是动态创建?

Javascript 隐藏元素还是动态创建?,javascript,html,css,Javascript,Html,Css,哪种选择最好: 在标记中有一个元素,用CSS隐藏。如果启用了JS,则显示该元素 如果启用了JS,则在标记中没有元素并动态创建它 如果用户没有JS,我不希望显示div。我的问题不是如何编写不同的案例,而是哪一个是最好的以及为什么 编辑: 当我说“最好”时,我的意思是支持你的答案,为什么它对你来说是最好的。可以是速度/语义/等等。我想要的是能够更好地了解每种方法的优缺点。而且速度也不是问题,因为它只是一个元素,所以它就像毫秒 对于第一个选项,它可能更快,但是我们有不必要的标记和CSS规则。因为如

哪种选择最好:

  • 在标记中有一个元素,用CSS隐藏。如果启用了JS,则显示该元素

  • 如果启用了JS,则在标记中没有元素并动态创建它

如果用户没有JS,我不希望显示div。我的问题不是如何编写不同的案例,而是哪一个是最好的以及为什么

编辑: 当我说“最好”时,我的意思是支持你的答案,为什么它对你来说是最好的。可以是速度/语义/等等。我想要的是能够更好地了解每种方法的优缺点。而且速度也不是问题,因为它只是一个元素,所以它就像毫秒

对于第一个选项,它可能更快,但是我们有不必要的标记和CSS规则。因为如果没有JS,那么拥有元素就没有任何意义,更不用说隐藏它了


现在,第二个选项,尽管可能没有那么快,但我将不同的部分分开,只真正加载必须加载的部分。

DOM操作是最昂贵的。显示现有代码比注入代码要快。

你说的“最佳”是什么意思?速度/性能,还是语义?如果你只想在用户有javascript的情况下显示元素,我会将它插入dom,就像你用css隐藏它一样,你会因此受到搜索引擎的惩罚。此外,禁用css的用户(或某些屏幕阅读器)也可以访问内容。但这只是我的问题opinion@Pete,搜索引擎足够聪明,可以忽略使用
显示隐藏的内容:无
,但如果使用
文本对齐
将大量内容推到看不见的地方,它们可能会惩罚您。当然,“搜索引擎”我指的是“谷歌”。@jonnysooter你不是自己列出了利弊吗?@Liam我想知道我没有从我的研究中得到任何其他原因。尽管这是真的,由于页面通常有多少空闲时间,JavaScript中的性能很少成为问题。还允许您在每次要设置特定元素的样式时都不运行js来设置页面样式。此外,很少有人没有js,因此会经常使用额外的代码。所以大多数加载都会调用一个JS函数,它会生成一个元素,然后将CSS规则分配给它。。。这肯定比只显示一个隐藏的div效率低。