jquery - <tr> slideUp/slideDown 导致列宽跳跃

标签 jquery html css

我有一个表格,当点击一个 TR 时,它会滑动打开以显示更多数据。 问题是列宽略有“断断续续”。

我找到的一个解决方案是为每列设置宽度,但我希望表格是流动的,但我无法为所有列设置宽度。

HTML:

    Click on a row for more info:
<table>
    <tr><td><p>Name</p></td><td><p>Age</p></td><td><p>Info</p></td></tr>
    <tr><td colspan="3"><p>Blah blah blah blah blah blah blah blah blah blah blah
        blah blah blah blah blah blah blah blah blah blah blah blah blah blah
        blah blah blah blah blah blah blah blah blah blah blah blah blah blah.</p>
    </td></tr>

    <tr><td><p>Name</p></td><td><p>Age</p></td><td><p>Info</p></td></tr>
    <tr><td colspan="3"><p>Blah blah blah blah blah blah blah blah blah blah blah
        blah blah blah blah blah blah blah blah blah blah blah blah blah blah
        blah blah blah blah blah blah blah blah blah blah blah blah blah blah.</p>
    </td></tr>

    <tr><td><p>Name</p></td><td><p>Age</p></td><td><p>Info</p></td></tr>
    <tr><td colspan="3"><p>Blah blah blah blah blah blah blah blah blah blah blah
        blah blah blah blah blah blah blah blah blah blah blah blah blah blah
        blah blah blah blah blah blah blah blah blah blah blah blah blah blah.</p>
    </td></tr>    
</table>

CSS:

table{ width: 624px; border-collapse: collapse;}
tr {border: 1px solid #AEAEAE;}

JQuery:

$(function() {
    $("td[colspan=3]").find("p").hide();
    $("table").click(function(event) {
        event.stopPropagation();
        var $target = $(event.target);
        if ( $target.closest("td").attr("colspan") > 1 ) {
            $target.slideUp();
        } else {
            $target.closest("tr").next().find("p").slideToggle();
        }                    
    });
});

请看这个 fiddle : http://jsfiddle.net/jcghqfau/1/

我已经尝试了 this 中建议的解决方案问题,但这对列宽没有帮助。 设置 table-layout:fixed; 解决了跳跃但阻止我使用流体 css。

注意:我需要一个跨浏览器的解决方案,包括 IE8 及更高版本。

最佳答案

尝试添加以下样式

td p {
 margin: 0 -1px;
}

我还添加了一个更新的示例

http://jsfiddle.net/jcghqfau/4/

关于jquery - <tr> slideUp/slideDown 导致列宽跳跃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25607569/

相关文章:

php - preg_replace div(或任何东西)与 class=removeMe

javascript - 使用单个 html 文件显示本地文件夹中的所有图像

javascript - insertHTML 与隐藏元素

html - 如何将垂直文本导航栏粘贴到右边而没有间隙?

javascript - parseInt(x,10) 导致最大调用堆栈/太多递归错误

javascript - 全宽和高度固定的幻灯片图像 (<img>) 响应迅速且始终居中

javascript - 无限 Ajax 滚动 : Only loads one page, 然后停止工作

jquery - 如何更改div中的所有子元素

CSS 高度在移动设备上从设置值更改为动态值

css - 是否可以从单独的文件向 Jupyter Notebook 添加 .css 样式?