javascript - 如何在使用 React 时将表格行转换为列

标签 javascript css reactjs html-table

我有一个简单的 react 表,目前以下列格式显示:

[1][2][3][4]
[1][2][3][4]
[1][2][3][4]
[1][2][3][4]

但我想添加一个媒体查询,以便在移动 View 中将其转换为以下格式:

[1]
[2]
[3]
[4]

[1]
[2]
[3]
[4]

[1]
[2]
[3]
[4]

[1]
[2]
[3]
[4]

问题是我无法让它工作。我搜索和搜索,发现唯一可能的解决方案是向每个表格单元格添加一组顺序 CSS 值,例如:

<td className="cell-one"> One </td>

.cell-one {
  order: 1;
}

但是还是不行。逻辑就在那里,我可以看到一半,但我就是做不对。任何有关如何实现这一目标的见解都将不胜感激!

<table className="table-container">
  <tbody>
    <tr className="row">
      <th className="header-row">First Name</th>
      <th className="header-row">Surname</th>
      <th className="header-row">Age</th>
      <th className="header-row">Town</th>
    </tr>
    <tr className="row">
      <td className="table-content">James</td>
      <td className="table-content">Stout</td>
      <td className="table-content">35</td>
      <td className="table-content">Camden</td>
    </tr>
    <tr className="row">
      <td className="table-content">Karen</td>
      <td className="table-content">Smith</td>
      <td className="table-content">40</td>
      <td className="table-content">Stevenage</td>
    </tr>
  </tbody>
</table>

最佳答案

添加这个 CSS

   @media screen and (min-width: 480px) {
     tbody tr th {
        display: none;
    }

    td, th {
        display: block;
    }

    td[data-th]:before  {
        content: attr(data-th);
        margin-right: 10px;
        font-weight: bold;
    }
}

@media screen and (min-width: 480px) {
     tbody tr th {
        display: none;
    }

    td, th {
        display: block;
    }

    td[data-th]:before  {
        content: attr(data-th);
        margin-right: 10px;
        font-weight: bold;
    }
}
<table className="table-container">
  <tbody>
<tr className="row">
  <th className="header-row">First Name</th>
  <th className="header-row">Surname</th>
  <th className="header-row">Age</th>
  <th className="header-row">Town</th>
</tr>
<tr className="row">
  <td data-th="First name" className="table-content">James</td>
  <td data-th="Surname" className="table-content">Stout</td>
  <td data-th="Age" className="table-content">35</td>
  <td data-th="Town" className="table-content">Camden</td>
</tr>
<tr className="row">
  <td data-th="First name" className="table-content">Karen</td>
  <td data-th="Surname" className="table-content">Smith</td>
  <td data-th="Age" className="table-content">40</td>
  <td data-th="Town" className="table-content">Stevenage</td>
</tr>
  </tbody>
</table>

关于javascript - 如何在使用 React 时将表格行转换为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50801469/

相关文章:

javascript - 如何从 angularjs 中的 ajax 调用的响应 header 中检索授权 token ?

html - 尝试使=“margin-left:{{data}};”样式起作用

javascript - 使用 velocity.js 时是否可以对动画进行排队?

reactjs - 我一直在尝试使用 npx create-react-app 创建一个新的 React 项目,但出现错误

node.js - React 浏览器兼容性低至 ie11

javascript - 如何在 React Native 中使用 .reduce() 修改内部状态?

javascript - 如何确保我的 textarea 值应始终包含 javascript 中的单词 "india"?

javascript - 如何选择另一个元素内的一个元素?

javascript - 从 JavaScript 中的对象返回两个单独的数组

javascript - 应用不同的复选框过滤器来显示/隐藏 div