当前位置: 首页 > 面试题库 >

表格行将不包含具有position:absolute的元素

李经国
2023-03-14
问题内容

我有一张这样的桌子:

<table cellspacing="0">
    <tr>
        <td>Row 1</td>
        <td><button>Button 1</button></td>
    </tr>
    <tr>
        <td>Row 2</td>
        <td><button>Button 2</button></td>
    </tr>
    <tr>
        <td>Row 3</td>
        <td><button>Button 3</button></td>
    </tr>
</table>

我想将每个按钮绝对定位在表格行的右上角,因此我使用了此CSS,期望<tr>中包含<button>

tr {
    position:relative;
}
button {
   position:absolute;
   top:0;
   right:0;   
}

但是,这些按钮都在同一位置彼此堆叠。通常使用<div>s 可以正常工作,除了display:table- row在测试时发现使用s时仍会以这种方式运行,这让我感到惊讶。

演示:http://jsfiddle.net/QU2zT/1/

注意
:我的实际标记更加复杂,并且我尝试放置的元素可能会出现在该行的任何表单元格中的任何位置,这就是为什么我认为需要这样做的原因position:absolute

  1. 为什么会这样?
  2. 如何在不更改标记的情况下使用CSS来解决此问题?

编辑
:Firefox中的结果与Chrome和IE9中的结果不同(未经过测试)。FF完全失败,而其他浏览器仅无法包含“具有表显示的div”设置,如演示中所示。


问题答案:

显然,只有纯CSS的解决方案是设置display:blocktr(包括隐式地通过使用的float)。但是,这严重破坏了表的布局,对我而言效果不佳。

<tr>
    <td>
        <div style="position:relative">
            <button style="position:absolute"></button>
        </div>
    </td>
</tr>

这仍然有一个缺点:由于我们的position:relative元素必须在表格单元格内,因此它仅在表格行的最后一个单元格中起作用(当目标是将绝对元素相对于整个行放置在右上角时)

这似乎是我们可以做的最好的事情,而不会放弃表标记或破坏它的呈现。



 类似资料:
  • 如果集合包含具有特定属性值的元素,我想断言(使用JUnit,而不是任何其他依赖项,如hamcrest)。 我发现这个问题如何断言迭代包含具有特定属性的元素?使用危害冠。 一种选择是重写< code>equals方法,只检查我想要比较的属性,但这不是一个好的解决方案。 有没有一种优雅的方法可以使用JUnit 4来实现这一点,或者我应该对其进行编码并循环访问集合以检查值?

  • 我有行编辑的dataTable,但我不需要编辑我的一个单元格(user.username)。我怎样才能做到这一点?这可能吗?我尝试删除一个单元格的p:cellEditor,但它在我的平板电脑上不起作用,因为当我在DataTable中使用它时,该列为空。 谢谢 我的代码:

  • 问题内容: 有没有一种使用HTML / CSS(具有相对大小)的方法来使一行单元格拉伸包含它的表的整个宽度? 单元格的宽度应相等,并且外部表格的大小也应使用来动态变化。 目前,如果我没有指定固定大小,单元格会自动调整大小以适合其内容。 问题答案: 您甚至不必为单元格设置特定的宽度,足以均匀地分布单元格。 请注意,要使用表格样式的元素,必须设置宽度(在我的示例中为100%)。

  • 假设我想用这个签名对一个方法进行单元测试: 假设是一个具有许多属性的Pojo,其中一个属性是,通过访问。 我所关心的只是验证

  • 问题内容: 我是Apache POI的初学者,想在Word模板文件中扩展现有表,并添加一些行。如果我在下面使用该代码,则将使用新的行单元格创建的普通样式扩展行位。 我的目标是单元格具有相同的表格单元格样式等(字体,带有,高度…) 感谢您的回答。R. 问题答案: 以下代码获取文档中第一个表中第二行的精确副本。然后,它更改此行中单元格的文本内容。然后将此复制的行插入到此表的第2行和第3行之间。 不断变