Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何获得内联块来为浮动留出空间?_Html_Css_Cross Browser_Css Float - Fatal编程技术网

Html 如何获得内联块来为浮动留出空间?

Html 如何获得内联块来为浮动留出空间?,html,css,cross-browser,css-float,Html,Css,Cross Browser,Css Float,我有一个内联块元素,其中包含一个浮动元素和一些围绕它流动的文本: <div style="background: yellow; display: inline-block"> <div style="float: left; width: 128px; height: 128px; background: cyan">Float</div> Lorem ipsum dolor sit amet, consectetur adipiscing elit

我有一个内联块元素,其中包含一个浮动元素和一些围绕它流动的文本:

<div style="background: yellow; display: inline-block">
  <div style="float: left; width: 128px; height: 128px; background: cyan">Float</div>
  Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br><br>
  Vivamus blandit porta rhoncus.<br><br>
  Integer egestas, lectus ac finibus sagittis, nisl diam scelerisque risus, id malesuada odio tortor in elit.<br><br>
  Sed pellentesque ligula enim, at porta nibh viverra quis.<br><br>
  Integer egestas, lectus ac finibus sagittis, nisl diam scelerisque risus, id malesuada odio tortor in elit.
</div>

浮动
Lorem ipsum dolor sit amet,是一位杰出的献身者。

菱形门布朗迪特万岁。

整型埃格斯塔斯、矢状面上的莱克特斯、斜角上的尼斯直径、艾利特岛上的马莱苏达·奥迪奥·托托。

塞德·佩伦茨克·利古拉·埃尼姆,在维韦拉·奎斯港。

整型埃吉斯塔斯、矢状面上的莱克特斯、直径上的十字节杖、Elite中的奥迪奥托托托托(malesuada odio tortor)。
在Internet Explorer上,这将按预期呈现: Firefox和Chrome以不同方式呈现相同的HTML:

请注意,在Firefox渲染中,内联块的宽度是如何精确匹配文本的,而不带浮点。这会导致添加浮动后不合适的线不必要地断开

Firefox和Chrome呈现这种结构的方式似乎是:首先(1)计算内联块的首选宽度,就像不存在浮点一样,(2)添加浮点,以及(3)使用(1)中计算的宽度作为内联块的宽度,在浮点周围布置流动文本


这里我想要的行为是由Internet Explorer实现的行为。在其他浏览器(如Firefox和Chrome)中,有没有办法达到相同的效果?

我认为您应该为文本指定一个特定的字体大小,否则它将采用浏览器中设置的默认大小,这可能会有所不同。还要为包装器元素指定一些宽度,以便文本流在所有情况下都获得相同的空间。

我认为您应该为文本指定特定的字体大小,否则它将采用浏览器中设置的默认大小,这可能会有所不同。还要为包装器元素指定一些宽度,以便文本流在所有情况下都获得相同的空间。

永远不要将IE用作工作方式的参考。第一个问题,你使用的是doctype吗?哪一个?@Rob:我不是用IE作为事情应该如何运作的参考,我只是用它作为我希望事情如何运作的一个例子。我很确定CSS规范没有对这个细节进行详细说明,这两种行为都是允许的。这是使用html5 doctype.No的IE11。CSS并没有做到这一点。我的评论只是为了确保你知道没有一个版本的IE可以被信任去做很多正确的事情。@Rob:在CSS 2.2规范的第10.3.5节中描述了收缩到适合的宽度,“CSS 2.2没有定义精确的算法。”字体大小是一样的吗?它们在图像中看起来不一样。检查开发工具。但是,是否曾将IE作为工作方式的参考。第一个问题,你使用的是doctype吗?哪一个?@Rob:我不是用IE作为事情应该如何运作的参考,我只是用它作为我希望事情如何运作的一个例子。我很确定CSS规范没有对这个细节进行详细说明,这两种行为都是允许的。这是使用html5 doctype.No的IE11。CSS并没有做到这一点。我的评论只是为了确保你知道没有一个版本的IE可以被信任去做很多正确的事情。@Rob:在CSS 2.2规范的第10.3.5节中描述了收缩到适合的宽度,“CSS 2.2没有定义精确的算法。”字体大小是一样的吗?它们在图像中看起来不一样。检查开发工具我不希望内联块在两个浏览器中具有相同的空间量。我希望他们有足够的空间来容纳文本,如果可能的话不要断行。我不希望内联块在两个浏览器中有相同的空间。我希望他们有足够的空间来容纳文本,如果可能的话,不要断行。