javascript - 如何阻止 HTML 表格调整大小?

标签 javascript jquery html css

我正在尝试创建一个井字游戏。

用户可以点击网格来放置十字。我很难弄清楚如何在表格自动调整大小的情况下放置十字 (X):

正如在 codepen 演示中所见,只要单击“td”元素,表格就会展开以填充“X”。

我试过 table-layout: fixedwhite-space: nowrap 都无济于事。任何人都可以启发我,或者提供一个工作变体吗?

代码笔:https://codepen.io/anon/pen/ppXgKZ

HTML

<table>
<tr>
    <td style="white-space: nowrap;"></td>
    <td></td>
    <td></td>
</tr>

<tr>
    <td></td>
    <td></td>
    <td></td>
</tr>

<tr>
    <td></td>
    <td></td>
    <td></td>
</tr>

CSS

table {
    width: 20%;
    table-layout: fixed;
    border-collapse: collapse;
  }
  td {
    width: 33.333%;
    border: 6px solid black;
  }
  td::after {
    content: '';
    display: block;
    margin-top: 100%;
  }

JS (jquery)

$("td").on("click", function() {
  $(this).text("X");
});

最佳答案

我已经更新了你的代码。

代码笔:https://codepen.io/anon/pen/BJgjbm

HTML

<table>
    <tr>
        <td style="white-space: nowrap;"></td>
        <td></td>
        <td></td>
    </tr>

    <tr>
        <td></td>
        <td></td>
        <td></td>
    </tr>

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

CSS

table {
    width: 20%;
    table-layout: fixed;
    border-collapse: collapse;
  }
  td {
    width: 33.333%;
    border: 6px solid black;
  }
  td::after {
    content: '';
    display: block;
    margin-top: 100%;
  }
  
.nopos{
  position:absolute;
}

JS

$("td").on("click", function() {
  $(this)
    .html("<div class='nopos'>XXX</div>");
});

关于javascript - 如何阻止 HTML 表格调整大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48436168/

相关文章:

javascript - tablesorter sticky header 移出列的 css 问题

jquery - 如何防止第一次点击时的链接操作并仅使用 jquery 允许第二次点击

javascript - JQuery Mobile 自动添加奇怪的加载消息

html - 需要边框与 td 对齐

html - CSS 页面布局 - div 在调整大小时移动

html - 如何为站点添加缓存?

javascript - D3 - 将圆的最左侧与 x 轴时间刻度对齐

javascript - 复制原型(prototype)需要一个新对象? javascript

javascript - d3.js 按汇总字段排序

javascript - Electron 和 Babel 6 异步/等待抛出意外 token