当前位置:  开发笔记 > 前端 > 正文

为什么HTML要求多个空格在浏览器中显示为单个空格?

如何解决《为什么HTML要求多个空格在浏览器中显示为单个空格?》经验,为你挑选了6个好方法。

我早就认识到HTML文件中的任何一组空格都只会显示为一个空格.例如,这个:

Hello. Hello. Hello. Hello. Hello.

显示为:

你好.你好.你好.你好.你好.

这非常好,就像你需要多个预格式化文本空间一样,你可以使用

标签.但是原因是什么?更准确地说,为什么这是HTML规范?



1> tristan..:

空格在HTML中压缩,因为HTML的格式化方式和渲染方式之间存在区别.考虑这样的页面:


    
        A link
    

例如,如果HTML使用空格缩进,则链接前面会有几个空格.


@roe只有在它之前有东西的时候.浏览器不会呈现前导空格.

2> Turnkey..:

试图解决"为什么"可能是因为HTML基于SGML,它已经指定了这种方式.它反过来基于60年代早期的GML.白色空间处理的原因很可能是因为数据一次被输入一张"卡片",这可能导致不希望的句子和段落分解.旧GML的一个不同之处在于它指定句子之间必须有两个空格(如旧的打字机规则),这些空格可能已经建立了空格独立于标记的先行词.



3> Zach Hirsch..:

正如其他人所说,它在HTML规范中.

如果要在输出中保留空格,可以使用

标记:

This     text has              extra spaces

and

    newlines

但这通常也会以不同的字体显示文本.


你也可以使用"white-space:pre;" css指令只是为现有元素获取
文本格式:http://www.w3.org/TR/CSS21/text.html#white-space-prop 
可以用css修复.

4> S.Lott..:

"为什么多个空间转换为单个空格?"

首先,"为什么"的问题很难回答.这是在规范中.这几乎就是它的结束.

考虑到有几种白色空间.

标签之间的空白区域.

\nhi\n

标签内容中的空格.

Hi everyone.

a

或CDATA部分中的空格.

前两个很难区分.标签之间的空格,即使是XML,也是"可选的".但是当你拥有所谓的"混合内容模型" - 与内容混合的标签时 - "标签之间"和"在内容中但在标签之间"和"在内容中但不在标签之间"的微妙之处是不可能的整理.

所以他们不解决它.标签和内容中的空格之间的空格都是可选的.



5> enobrev..:

它不仅是在该 规范,但是有一些感觉吧.如果没有压缩空格,则必须将所有html放在一行上.所以这样的事情:

Title

This is some text Read More

会有一些奇怪的对齐空间到处都是.要做到正确的唯一方法是压缩代码,这很难维护.



6> Michael..:

如果浏览器没有这样做,可能很难格式化HTML代码以使其易于阅读.例如,您可能希望像这样格式化代码:



    
I like to indent all content that is inside div tags.

如果浏览器没有忽略div标签内文本之前的八个空格,那么您的网页可能看起来不像您希望的那样.

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有