css - 将 div 绝对定位在 tr 内

标签 css css-float css-position

我有一个表格,用于显示类似 excel 的数据。我需要在每一行的顶部中央完全放置两个图标——我想在用户将鼠标悬停在任何行上时显示编辑/删除图标。

当我尝试向 TR 添加相对位置并为我的内部 float div 添加绝对定位时,css 忽略父 td 的相对定位并简单地 float 到屏幕顶部:

http://jsfiddle.net/85aTs/2/


HTML

<table>
     <tr>
        <td>
            fooasfdasdfasf
        </td>
        <td>
            barasdfasfas
        </td>
    </tr>
    <tr>
        <td>
            fooasfdasdfasf
        </td>
        <td>
            barasdfasfas
        </td>
        <div class="absolute">
            I should be in a row
        </div>
    </tr>
</table>

CSS:

table, td{
    border: 1px solid #000;
}

tr {
    position:relative;
}
.absolute {
    position: absolute;
    top: 0;
    right: 0;
    border: 1px solid #000;
    background-color: yellow;
}

我知道这不是有效的 html,因为它是当前设置的,但是如何在不切换到具有表格显示属性的 div 的情况下实现我想要的?

最佳答案

这是我会做的:

See working jsFiddle demo


HTML

<table>
    <tr>
        <td>
            <div class="icons">
                <img class="checkmark" />
                <img class="crossmark" />
            </div>
            <table>
                <tr>
                    <td>fooasfdasdfasf</td>
                    <td>barasdfasfas</td>
                </tr>
            </table>
        </td>
    </tr>
    <tr>
        <td>
            <div class="icons">
                <img class="checkmark" />
                <img class="crossmark" />
            </div>
            <table>
                <tr>
                    <td>fooasfdasdfasf</td>
                    <td>barasdfasfas</td>
                </tr>
            </table>
        </td>
    </tr>
</table>



CSS

table, td 
{
    border: 1px solid #000;
}
.icons 
{
    height: 16px;
    text-align: center;
    background: #bbb;
}
.checkmark
{
    display: inline;
    height: 16px;
    width: 16px;
    border: none;
    background: url('http://www.actuary.com/directory/template/default/images/icon_checkmark.gif');
}
.crossmark
{
    display: inline;
    height: 16px;
    width: 16px;
    border: none;
    background: url('http://researchautism.net/img/rating_icons/crossmark_sm.png');
}



结果

jsFiddle Results

关于css - 将 div 绝对定位在 tr 内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20573793/

相关文章:

css - 如何防止带有 float 子项的 float 父项在 IE6 中扩展到 100% 宽度?

html - 当位置设置为绝对时元素消失?

css - 为什么 CSS 位置属性会影响旋转动画?

javascript - 粘性导航栏问题

php - 帖子下方同一类别的 Wordpress 帖子

html - 如何将 2 个独立的浮子放在一起?

css - 使用 Foundation 4 框架清除 css float

javascript - 左右两侧分别放置两个div容器,每个div之间有间隙

javascript - 使用正则表达式去除 HTML tagName

html - CSS 拉伸(stretch)内容容器高度如果为空则溢出如果太大