javascript - 如何使用css使表格不溢出

标签 javascript html css

我有this fiddle 。它用于了解您想要了解的某个万智牌卡牌或系列的信息。如果您要在输入中输入 LEA,然后点击 Find Set 按钮,它会返回有关 Limited Edition Alpha 集的信息。唯一的问题是这不会将表格保留在窗口内; table 溢出来了。如果您输入 Sen Triplets 并点击Find Card,它会返回Sen Triplets 的卡片信息。这张 table 位于窗口内,如何让设置的 table 也这样做?

最佳答案

出现显示问题是因为 LEA“助推器”数据集被解释为一个长词。诸如“common,common,common,...”之类的东西被浏览器视为一个事物而不是多个不同的词。 CSS 在大多数现代浏览器中使用 word-break 属性来处理这个问题。 Here is one possible solution所有更改的地方都是 CSS。因为 word-break 允许将单词换行到多行,所以您的表格不会再搞砸了。此外,必须在规则中添加宽度,否则最左边的列看起来很糟糕。

tr, th, td { 
    border: 1px solid black;
    text-align: center;
    word-break: break-word;
    min-width: 200px;
}

但是,您遇到的真正问题是您试图使一个数组(助推器数据集)显示为一个字符串。默认情况下,当您试图强制它成为一个字符串时,它只用一个逗号连接在一起。如果您处理数据是数组的情况 like so ,您根本不必更改 CSS...因为您不再有一个冗长的单词,因此您可以更轻松地允许换行。

for(var i in set) if(i != "cards") {
    row = $("<tr>").appendTo(con);
    row.append($("<th>").text(i));
    if(typeof set[i] === 'string') {
        row.append($("<td>").text(set[i]));
        // note, you shouldn't assume everything in your data is ONLY a
        // string or an array... other cases should be handled.
    } else {
        // join arrays together with ", " instead of ","
        row.append($("<td>").text(set[i].join(", ")));
    }
}

关于javascript - 如何使用css使表格不溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29901139/

相关文章:

javascript - Phaser - 街机碰撞物理

javascript - 如果 body 有灰度滤镜,有没有办法让图像具有原始颜色?

javascript - 在某些窗口宽度处偏移 1 个像素

javascript - (按钮 || 输入) type=submit - jQuery AJAX 中 $_POST 变量缺少值

html - 如何更改 <a href> 颜色/删除格式

css - 什么是 .htc 文件?它在 Internet Explorer 中的工作原理

javascript - 我想知道 WebKitCSSMatrix 是如何工作的

javascript - jQuery - 顺序运行多个方法

javascript - Airbnb/ react 日期 |有没有办法无限滚动月份而不是点击下个月?

html - 不同视口(viewport)中的段落不在一起