有没有理由不删除HTML中的空白

有没有理由不删除HTML中的空白,html,Html,这个问题不言自明。为什么我不能把它脱掉?在我看来,大部分空白纯粹用于文本编辑器中的格式设置,对最终页面没有影响 更重要的是,当这些空白的随机节点确实对最终页面产生影响时,这通常是我不想要的影响,例如内联块之间神秘的一个字符(空白折叠后)间隙 我可以很容易地去除所有这些空白文本节点。有什么理由我不应该这样做吗 编辑: 这主要是针对空格出现的奇怪行为,而不是性能。一个例子是,我希望使用内联块而不是浮点将图像并排放置,同时防止换行到下一行,并允许它们从父级溢出 空白造成了这些神秘的空白,基本上可以通过

这个问题不言自明。为什么我不能把它脱掉?在我看来,大部分空白纯粹用于文本编辑器中的格式设置,对最终页面没有影响

更重要的是,当这些空白的随机节点确实对最终页面产生影响时,这通常是我不想要的影响,例如内联块之间神秘的一个字符(空白折叠后)间隙

我可以很容易地去除所有这些空白文本节点。有什么理由我不应该这样做吗

编辑:

这主要是针对空格出现的奇怪行为,而不是性能。一个例子是,我希望使用内联块而不是浮点将图像并排放置,同时防止换行到下一行,并允许它们从父级溢出


空白造成了这些神秘的空白,基本上可以通过缩小HTML源代码来手动消除内联块之间的空白(并在过程中完全弄乱源代码格式)来消除这些空白。

从生产页面中去掉空白的唯一缺点是可读性,以及在编辑该页面时跟随您的人员的可维护性;但是,如果您维护一个“正确的”/“可读的”空白版本进行编辑,然后缩小后期编辑以形成生产页面,那么它实际上不会造成重大问题


我不确定这项技术有多有效或有用,但没有什么可以阻止你尝试它。

真的,没有理由不尝试。这可以很容易地用类似的东西来完成

但是,假设您通过gzip交付所有html、css和js文件,那么从去除空白中所节省的实际带宽将非常少。然后问题就变成了,值得麻烦吗

更新:

也许这会影响你的决定。我在我的网站的一个页面上做了一个测试,看看它会带来什么样的变化。结果如下:

缩小前

  • 22232字节(未压缩)
  • 5276字节(gzip)
缩小后

  • 19207字节(未压缩)
  • 5146字节(gzip)130字节已保存
缩小后,未压缩的文件大约小3KB。但这并不重要。gzip压缩文件是通过网络发送的。您可以清楚地看到,gzip即使在使用非精简HTML时也做得相当好


我看到了缩小js库的好处,或者那些不会不断变化的东西。但我认为,为了区区130个字节而对HTML这样做是不值得的。

简短回答:没有任何理由

空白的唯一真正用途是使代码更具可读性。随着时间的推移,您可以通过去除文档中所有不必要的空白来节省大量带宽,这应该被视为生产代码的良好实践。如果你压缩你的内容,节省会更少,但即使1GB的1%也是10MB。。。如果你在一个月内在一个繁忙的网站上运行100GB,那么删除1%的数据可能是两个托管定价层之间的差异


正如您所说,一些浏览器(通常是IE、grrrr……)在呈现页面时偶尔会解释空白,但通常情况下,这种情况发生时,您宁愿它没有…。

让我给出一个不应该缩小html的原因:

html最终的呈现方式与应用在其上的CSS密切相关,但小型化程序通常不会受到CSS的影响。在撰写本文时,您可以使用的所有缩略器,它们根据您的编码和CSS样式的某些假设删除html中的空格,如果您没有按照预期的方式编码,浏览器中的缩略渲染结果将与缩略之前不同

例如,一些缩微器假设“块元素”(例如

)之间的空间可以删除,这通常是正确的,因为它们之间的空间对渲染最终结果没有影响。但是,如果在CSS中为默认显示属性为block的元素设置“display:inline”或“inline block”,该怎么办

如果删除
s之间的空格,下面的html代码段是否仍会呈现出应有的效果

<div style="display: inline">will</div> <div style="display: inline">this</div> <div style="display: inline">still</div> <div style="display: inline">work?</div>
这还能用吗?
您可能会争辩说,我们可以保留至少1个空间,并删除剩余的连续空间,这样仍然可以节省大量字节。那么
标签和
空白:pre
怎么样

尝试从下面的url复制html代码片段并粘贴到缩微器中,查看是否产生缩微前的结果:


为什么要脱衣?只需gzip页面。它比剥皮更好更容易。但是:
我不确定这项技术会有多有效或有用?如果他能像那样保存两份,他肯定会这样做。这些空白字符只是增加了页面的总下载大小!它们是,但不显著;这不是问题的重点(我想…)。他谈到了空白(“神秘的一个字符间隔”)所带来的问题,这将通过删除空白来减少,但不一定通过压缩/压缩页面(取决于压缩工具的设置)来防止。在可读性方面,我考虑了我生成HTML的方式,原始HTML缩进已经完全搞砸了,但是Inspect Element/Firebug/IE9开发工具将很好地格式化和缩进它。我基本上没有花时间看原始HTML;通过上面的一个工具查看它完全是浪费时间。IE9正是让我想到这一点的!我不完全熟悉规范;是否要渲染这些空白节点?在Chrome/Safari/Firefox中它们不是,但是