html - <span> "float: right"里面有 "white-space: pre"

标签 html css word-wrap

以下 HTML:

<div style="white-space: pre">
  long time; <span style="float: right;">// know C?</span>
</div>

在 WebKit 和 Gecko 中呈现不同。使用 WebKit,span 的内容与前面的文本保持在同一行,但使用 Gecko,它们被移到新的一行。

哪种行为是正确的,为什么?

最佳答案

我会再次尝试这个答案...

white-space 前置指令从字面上解释空白。换行符、空格和制表符由浏览器显示(br 标签也被视为换行符)。所以

<div>   hello

world</div>

...显示为

    hello

world

float:right 指令将元素从正常的文本流中取出,并将其放置在容器的右侧,指示文本和元素应该环绕它。

Firefox 将水平填充可用空间,因此 float 的 div 会转到下一行。 Chrome 不会选择这样做,而是将 float 元素保持在同一行上(尽管两个 div 都显示为 block ,因此显示为完整的可用宽度)。这解释了你的不同之处。看到这个 fiddle 。

http://jsfiddle.net/k5aueocr/

由于 white-space:pre 指令告诉浏览器按字面解释随后找到的每个字符(如果您查看源代码可能会显示,减去标签),抛出一个向右浮动的范围可能让你陷入困境。两者都没有表现不正确,这是将本来不应该混合的 CSS 元素混合在一起的结果。

关于html - <span> "float: right"里面有 "white-space: pre",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30145515/

相关文章:

javascript - 来自 xhr 循环中的多个 onprogress 事件处理程序

javascript - 仅第一次触发的连续 Html5 音频 .play()

html - 为什么黄色/白色背景会弄乱我的形象?

html - 如何围绕文本换行范围缩小 flex 元素?

ios - 在 XenMobile 失败的情况下包装 iOS 应用程序

javascript - 组合组件上的 onBlur 事件(输入 + 按钮)

jquery - 以父类为目标并向其添加类

html - 为 IE8 使用媒体 ="print"

javascript - jquery shake 效果与 bootstrap 问题

css - 如何在适用于 IE7、IE8 和 FF 的 jqGrid 上实现 wordwrap