Html 如何在我的表中有两行跨越多列,同时仍然与引导程序兼容?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/18748750/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-29 13:17:26  来源:igfitidea点击:

How can I have two rows in my table that span multiple columns, while still being compatible with bootstrap?

htmltwitter-bootstraphtml-table

提问by daveomcd

I'm using bootstrap with my web application. I'm trying to get a table design layout to work while still being able to use bootstrap's table-stripedclass. Currently I'm using the following:

我在我的网络应用程序中使用引导程序。我正在尝试使表格设计布局正常工作,同时仍然能够使用引导程序的table-striped类。目前我正在使用以下内容:

<table>
  <thead>
    <th>ID</th>
    <th>Name</th>
    <th>Department</th>
    <th>Started</th>
  </thead>
  <tbody>
    <tr>
      <td>6</td>
      <td>
         <div>John Doe</div>
         <div>12 Sales Total; 4 March, 3 April, 12 July, 14 August</div>
      </td>
      <td>Sales</td>
      <td>Feb. 12th 2010</td>
    </tr>
  </tbody>
</table>

However, I'm wanting the 12 Sales Total; 4 March, 3 April, 12 July, 14 Augustof the table to appear below John Doe Sales Feb. 12th 2010and not wrap within the column it's in now. If I use two separate <tr>elements to get the layout to work then the table-stripedno longer works properly.

但是,我希望12 Sales Total; 4 March, 3 April, 12 July, 14 August表格的 出现在下面,John Doe Sales Feb. 12th 2010而不是包含在它现在所在的列中。如果我使用两个单独的<tr>元素来使布局正常工作,则table-striped不再正常工作。

Edit:

编辑:

So here is the current setup. This gets what I want except for the issue where the text on the div doesn't span the other columns, and just wraps within the column it's currently in. http://jsfiddle.net/AkT6R/

所以这是当前的设置。这得到了我想要的,除了 div 上的文本不跨越其他列的问题,并且只是在它当前所在的列中换行。http://jsfiddle.net/AkT6R/

I've tried something earlier that was mentioned in a submitted answer by @Bryce, but this isn't compatible with Bootstrap it seems. http://jsfiddle.net/AkT6R/1/

我之前尝试过@Bryce 在提交的答案中提到的一些东西,但这似乎与 Bootstrap 不兼容。http://jsfiddle.net/AkT6R/1/

回答by Bryce

Like so. You need rowspan plus colspan:

像这样。您需要 rowspan 和 colspan:

<table border=1>
  <thead>
    <th>ID</th>
    <th>Name</th>
    <th>Department</th>
    <th>Started</th>
  </thead>
  <tbody>
    <tr>
      <td rowspan=2>6</td>
      <td>
         <div>John Doe</div>
      </td>
      <td>Sales</td>
      <td>Feb. 12th 2010</td>
    </tr>
    <tr>
        <td colspan=3>
         <div>12 Sales Total; 4 March, 3 April, 12 July, 14 August</div>
        </td>
    </tr>
  </tbody>
</table>

See it in action at http://jsfiddle.net/brycenesbitt/QJ4m5/2/

http://jsfiddle.net/brycenesbitt/QJ4m5/2/看到它的实际效果



Then for your CSS problem. Right click and "Inspect element" in Chrome. Your background color comes from bootstrap.min.css. This applies a color to even and odd rows:

然后是你的 CSS 问题。右键单击并在 Chrome 中“检查元素”。您的背景颜色来自bootstrap.min.css. 这将颜色应用于偶数和奇数行:

.table-striped>tbody>tr:nth-child(odd)>td,
.table-striped>tbody>tr:nth-child(odd)>th
{
background-color: #f9f9f9;
}

Fiddle it appropriately for your double sized rows:

为您的双倍大小的行适当地摆弄它:

.table-striped>tbody>tr:nth-child(4n+1)>td,
.table-striped>tbody>tr:nth-child(4n+2)>td
{    background-color: #ff10ff;
}
.table-striped>tbody>tr:nth-child(4n+3)>td,
.table-striped>tbody>tr:nth-child(4n+4)>td
{    background-color: #00ffff;
}

Done.

完毕。

回答by cssyphus

Use the colspan tag attribute.

使用 colspan 标签属性。

<td colspan="2">

or

或者

? ? <td colspan="4">

? ?<td colspan="4">

Reference

参考