用fetch处理的流,放到div中会有样式丢失的问题

233 阅读2分钟

最近在做fetch处理流的问题,发现接收到得流,在div中渲染得时候样式会丢失,特别是空格、换行之类的。因为在控制台打印的时候空格和换行都是存在的。当时就想到应该是div渲染时将流中的空格和换行样式处理了,才导致丢失的。为了解决这个问题就去看了css有关这个方面样式的处理,然后发现css中有个属性white-space,然后就去看了这个属性的定义和取值情况。

一:css中属性white-space

在css中white-space属性是用来控制容器的文本中带有空白符、制表符、换行符等的显示。

white-space的默认值为:normal。

二:css中属性white-space的属性值

关于white-space的属性值有以下解释:

  1. normal:默认,忽略文本中所有的空白、换行符;只有文本存在
    或文本达到框的约束时,文本才会换行
  2. nowrap:和normal类似,忽略文本中所有的空白、换行符;遇到框的宽度约束时不会自动换行,文本只有在有 br 时才会换行
  3. pre:保留文本中的空白、换行符;遇到框的宽度约束时不会自动换行,文本存在
    或文本中有换行符时,文本才会换行
  4. pre-wrap:和pre类似,保留文本中的空白、换行符;文本存在
    或文本中有换行符时,或者遇到框的宽度约束时,文本都才会换行
  5. pre-line:会略文本中的空白符;文本存在
    或文本中有换行符时,或者遇到框的宽度约束时,文本都才会换行

三:总结

由于一开始div中的 white-space:normal,所以在文字流渲染的时候样式都没有了。将div中的 white-space:pre-wrap,就解决了这个问题。