跨度作为内联块浮动,依赖于看似不相关的代码


Spans as inline-blocks floating dependent on seemingly unrelated code

>我创建了一个包含标签的div,标签是"显示:内联块,浮点:左"的跨度。标签在我的项目中无处不在,除了当我使用 php 编写一个div"tag_block"并将标签跨度放在里面时,奇怪的是,对于渲染的第一个元素,跨度居中,然后当我向下滚动其他元素时,位置慢慢向右移动, 停在右边,偶尔跳来跳去。

这听起来像是浏览器问题吗?我很困惑!

"float: left"似乎被任意的东西所取代,这些东西会随着标签块打印的每个元素而变化。

<div class="tag_block">
    <span class="tag">Tag0</span>
    <span class="tag">Tag1</span>
</div>

这是我的JSFiddle,代码中的注释(http://jsfiddle.net/livvyjeffs/4uAp4/5/)

所以我真的把问题最小化了,出于某种原因,顶部块内的文本会影响跨度在其下方块中开始显示的位置。有什么想法吗?

既然你正在使用display: inline-block,你就不应该浮动。浮点数适用于块级元素。这可能是导致问题的原因。 无论如何,display: inline-block在技术上都与float: left做同样的事情,因为它将元素彼此相邻。

另一个问题可能是您的浮标堆叠在 tag_blockdiv 内。如果您将所有元素浮动在div 内,它将不会自行清除。如果是这种情况,您可以让下一组元素与前一组元素对接。您可以使用清除修复来解决此问题。将该代码添加到 CSS 中,并将 clearfix 类添加到父元素 tag_block 。同样,您应该能够通过简单地删除浮点数来避免这种情况。

呜...问题在于容器中出现问题的div 之一扩展到了框的边界之外,导致其下方的div(问题div)的对齐依赖于它上面的div。

这是突出的问题。

解决方案是将问题div 设置为高度:0(或不与边界重叠的内容)。

.poster{
     height: 0;
}

叠礼仪?我试图删除我的帖子,而不是回答我自己的问题。似乎我的问题现在卡在这里。感谢所有的帮助!