【问题标题】:How do I get a CSS float to overlap a table?如何让 CSS 浮点数与表格重叠?
【发布时间】:2010-12-03 04:40:17
【问题描述】:

如何让浮动元素与表格重叠?它可以很好地与其他 div 重叠,但该表似乎强制使用 clear

在我的示例中,div 是重叠的(我想要的),但下表清除了浮动元素(我没有。)

此处的示例:http://cssdesk.com/9rZVs。 (IE好像会炒这个所以我也贴在这里。)

HTML:

<div>
  <span style="float:right;width:40%;">
    content content content content content
    content content content content content
    content content content content content
  </span>
  content content content content...
</div>

<div>
content content content content content 
content content content...
</div>

<table ><tr><td>1</td></tr></table>

CSS:

table {
 width:300px;
 border: 1px solid black;
}
span {
 border:2px solid black;
 background-color: #ddd;
 margin: 2px solid gray;
}
div {
 border:2px solid black;
 background-color: #fff;
 margin: 2px solid gray;
 width: 200px;
 padding: 10px;
}

【问题讨论】:

  • 你试过负边距吗??

标签: html css css-float tablelayout


【解决方案1】:

你可以像这样得到你想要的功能:

<div style="position:relative">
  <span style="position:absolute;right:0;width:40%;">
    content content content content content
    content content content content content
    content content content content content
  </span>
  content content content content...
</div>

here。似乎表格显示清除了任何浮动(来自我运行的所有测试)。我建议使用上述解决方案来实现此结果 - 而不是使用浮点数。

【讨论】:

  • @Josiah Ruddell:你的例子有效,但我认为你的理由是错误的,否则第二个
    也会清楚,对吧?它似乎只适用于相对定位,而不是浮动......
  • @Scott Stafford - 是的。这很有趣。我尝试了几件事。 1.)制作表格显示块 - 没有变化。 2.) 使 div 显示:表 - 这使 div 的行为与表相同。 3.) 将 clear:both 添加到 div - 与 display: 表相同的结果。显示为表格的元素似乎会清除任何浮动。
  • @Josiah,“显示:块”就足够了。我不知道你为什么不这么认为。
  • @ANeves - 在 FireFox 中这是真的。不适用于 webkit (chrome/safari)
  • @Josiah 啊,我明白了……很好的旧浏览器不兼容。 :) 谢谢!
【解决方案2】:

我不确定这是否正确,但给你的桌子display: block; 就足以让它按照你的意愿工作。

您可以通过编辑示例中的样式来测试这一点。

【讨论】:

  • 这在 chrome 和 safari 中无效。
  • 考虑到@Josiah 的宝贵意见,我用 chrome 进行了检查。我找不到用浮动元素重叠表格的方法。我倾向于说这是 Chrome 处理表格的方式的一个缺陷,但我对 CSS 来说太绿了 不能这么说。我在 CSS2 中找不到任何可以解释这种行为的东西。 :(
猜你喜欢
相关资源
最近更新 更多
热门标签