【问题标题】:Do next to floated elements get padding by default?默认情况下,浮动元素旁边是否有填充?
【发布时间】:2012-06-06 01:19:06
【问题描述】:

I have setup a container and three divs inside. First two are floated and third one is not floated。 (添加第四个 div 只是为了详细说明我的问题)

I have changed border of first two divs to be transparent to depict it more clearer that thirdDiv is starting right from the firstDiv while placing content of itself ('THIRD') right after secondDiv.

thirdDiv ('THIRD') 的内容放在 secondDiv 之后

你可以看到 thirdDiv 实际上是从一开始就开始了边框

所以,我的问题是,浮动元素 (thirdDiv) 旁边的 do 默认情况下会从该方向获得填充?因为它在我的代码中显示为 155px。

【问题讨论】:

  • 在什么浏览器中?在FF10中我没有看到这个。
  • Chrome 就是显示这个“问题”的家伙。我不明白问题或问题。
  • 可能我的问题没有说清楚,所以我添加了图片。
  • 还是不清楚。你能制作一个模型来展示你认为应该发生的事情吗?
  • 好吧,我不想更正任何事情。我只想知道,如果它的默认行为是浮动元素旁边的,是否可以从该方向获得填充,正如我在代码和图像中所阐述的那样。我不想更正任何东西,只想了解它。

标签: css css-float padding


【解决方案1】:

不,默认情况下,非浮动元素不会得到填充。容器从您的浮动 div 下方开始。但是,div 中的 content 尊重浮动并被推到右侧。如果您将overflow:hidden 应用于非浮动容器,则它具有“自动边距”,尊重浮动的 div。 (你可以看到这个here - 出现左边框。)

编辑:实际上它是一个填充,虽然没有填充!

Example with overflow hidden.

Example without overflow hidden and no padding

Example without overflow hidden and padding left

注意边框和额外文本的位置!

编辑 2:根据较大的值,应用由您的 css 定义的填充或计算的填充(浮动的宽度)。在任何情况下,您定义的填充和“计算浮动填充”都会崩溃!

【讨论】:

  • 那么 push 和 padding 不一样?就像我对fourthDiv所做的那样?如果它只是推动并且没有正式的填充然后why padded version doesn't work?
  • 没错。这对于背景图像也是如此,因为它将从浮动后面的位置 0 0 开始 - 而不是应用“自动边距”的位置。
  • @Shawn Taylor - 推送是浮动 div 的组合计算宽度。内容将围绕您的花车流动。
  • @ShawnTaylor 看看例子,这应该说清楚了。
  • 但是当显式设置填充时,为什么它没有生效,而是似乎随着推送而崩溃? jsfiddle.net/jR3bf/7
猜你喜欢
  • 2013-02-22
  • 2015-08-06
  • 2023-01-22
  • 2014-05-28
  • 2022-12-21
  • 1970-01-01
  • 2013-02-16
相关资源
最近更新 更多