最好根本不呈现HTML,还是添加display:none?

最好根本不呈现HTML,还是添加display:none?,html,css,displayattribute,Html,Css,Displayattribute,据我所知,根本不呈现元素的HTML,或者添加display:none,似乎具有完全相同的行为:两者都会使元素消失,并且不会与HTML交互 我试图禁用并隐藏一个复选框。因此HTML的总量很小;我无法想象性能会成为一个问题 就编写服务器代码而言,编码工作大致相同 考虑到这两种选择,一种做法比另一种更好吗?或者我用哪一个都不重要吗?我的意思是你需要那个复选框吗?如果没有,那么.hide()就是在地毯下刷东西。您正在使HTML和CSS变得混乱。但是,如果它需要在那里,那么当然,但是如果你可以不使用复选框

据我所知,根本不呈现元素的HTML,或者添加display:none,似乎具有完全相同的行为:两者都会使元素消失,并且不会与HTML交互

我试图禁用并隐藏一个复选框。因此HTML的总量很小;我无法想象性能会成为一个问题

就编写服务器代码而言,编码工作大致相同


考虑到这两种选择,一种做法比另一种更好吗?或者我用哪一个都不重要吗?

我的意思是你需要那个复选框吗?如果没有,那么
.hide()
就是在地毯下刷东西。您正在使HTML和CSS变得混乱。但是,如果它需要在那里,那么当然,但是如果你可以不使用复选框,那么我就不会在HTML中使用它


保持简单易读。

我的意思是你需要那个复选框吗?如果没有,那么
.hide()
就是在地毯下刷东西。您正在使HTML和CSS变得混乱。但是,如果它需要在那里,那么当然,但是如果你可以不使用复选框,那么我就不会在HTML中使用它


保持简单易读。

对于这样一个小场景,结果几乎是一样的。但是用CSS隐藏控件并不是你想要养成的习惯

将代码及其输出的效率提高到实用的程度始终是一个好主意。因此,如果通过添加一点条件,可以很容易地在输出中不包含一些控件,那么可以尝试这样做。当然,这不会扩展到接收输入的代码部分,因为在那里,您应该随时准备处理任何任意数据(至少对于公共应用程序)

另一方面,在某些情况下,生成输出的代码很难修改;特别是,赋予其确定所做操作的能力可能涉及以以下不良做法的形式进行破坏:可能添加一个全局变量,或者修改/覆盖多个函数,以便可以通过以下方式传递条件。在这种情况下,仅仅添加一点CSS就可以再次以一种简短且本地化的方式实现解决方案,这并不是不合理的


值得注意的是,在某些情况下,决策可能是基于硬的外部因素。例如,检测垃圾邮件的一个非常基本的机制是包含一个字段,该字段在HTML中与其他字段没有什么不同,但在CSS中是不可见的。在这种情况下,spambot可能会填充不可见的区域,从而暴露自己。

对于这样一个微小的场景,结果几乎是一样的。但是用CSS隐藏控件并不是你想要养成的习惯

将代码及其输出的效率提高到实用的程度始终是一个好主意。因此,如果通过添加一点条件,可以很容易地在输出中不包含一些控件,那么可以尝试这样做。当然,这不会扩展到接收输入的代码部分,因为在那里,您应该随时准备处理任何任意数据(至少对于公共应用程序)

另一方面,在某些情况下,生成输出的代码很难修改;特别是,赋予其确定所做操作的能力可能涉及以以下不良做法的形式进行破坏:可能添加一个全局变量,或者修改/覆盖多个函数,以便可以通过以下方式传递条件。在这种情况下,仅仅添加一点CSS就可以再次以一种简短且本地化的方式实现解决方案,这并不是不合理的


值得注意的是,在某些情况下,决策可能是基于硬的外部因素。例如,检测垃圾邮件的一个非常基本的机制是包含一个字段,该字段在HTML中与其他字段没有什么不同,但在CSS中是不可见的。在这种情况下,spambot可能会填充不可见字段,从而暴露自己。

我不喜欢在HTML中添加无法看到且没有任何用途的标记。在您的问题中,您没有提供这样做的任何好处,因此简单的答案是:如果您不需要复选框作为页面的一部分,那么不要将其包含在标记中

我怀疑隐藏的复选框不会为服务器的下载或工作增加任何明显的时间。所以我同意这不是一个真正的考虑。然而,许多页面确实有额外的内容(评论、视图状态等),而且这些内容都可以累加起来。因此,如果有人认为他们会继续添加用户不需要、也从未看到的内容,我希望他们创建的页面总体速度明显较慢

现在,您还没有提供任何关于为什么要包含不需要的标记的信息。虽然您没有提到客户机脚本,但我可能会在页面中留下隐藏的元素的一种情况是,当我编写客户机脚本以删除它们时。在这种情况下,我可以
隐藏它()
并将其保留在标记中。其中一个原因是,如果需要,我可以很容易地再次展示它


这是我的答案,但我认为如果您描述了在页面上包含标记时所考虑的问题,而没有人会看到,您会得到一个更好的答案。当然,它一定提供了一些您没有透露的好处,否则您就没有理由这么做。

我不喜欢在HTML中添加无法看到且没有任何用途的标记。在您的问题中,您没有提供这样做的任何好处,因此简单的答案是:如果您不需要复选框作为页面的一部分,那么不要将其包含在标记中

我怀疑隐藏的复选框不会为服务器的下载或工作增加任何明显的时间。所以我同意这不是一个真正的考虑。然而,许多页面确实有ex