带有colspan的HTML表格无法正常运行

时间:2019-06-17 06:22:24

标签: html html-table

在两种情况下,我都有2个HTML表格,它们的代码完全相同。我在那里使用“ colspan”来区分表上的2列。主表宽度为colspan 65,列分别为colspan 5和60。但是在2个表中,列的宽度显示不同。

我已经测试了所有代码。两个表都具有相同的代码,我使用了table-cell属性,但仍然无法正常工作。也没有指定任何列的宽度。

这是我两个表的语法:

<table class="agenda-table" style="width: 100%;">
  <tbody>
    <tr class="agheader">
      <th colspan="65">Title</th>
    </tr>
    <tr>
      <td colspan="5">xxx</td>
      <td colspan="60">
        <h4>yyy</h4>
      </td>
    </tr>
    <tr>
      <td colspan="5">aaa</td>
      <td colspan="60">
        <h4>bbb</h4>
      </td>
    </tr>
    ....
  </tbody>
</table>

您可以查看实时page here

您可以看到那里有2张桌子。不论相同的代码,两个表的第一列宽度都不同。

谢谢您的检查。

2 个答案:

答案 0 :(得分:2)

您在此独角兽测试结果中看到的页面出现许多错误: https://validator.w3.org/unicorn/check?ucn_task=conformance&ucn_uri=https%3A%2F%2Fwww.learnx.net%2Flearnx-agenda%2F&ucn_lang=en

解析错误很多,未封闭的标签可能导致错误 这样。

如果您使用css类来设置表格样式,为什么要使用内联代码?

在您的CSS页面中,我找到了以下定义:

.agenda-table {
max-width: 96%;
margin: 100px auto 0;
}

那为什么还要用内联代码再次定义witdh?

style="width: 100%;"

我已经从您的问题中获取了代码,并替换了 带有类的内联代码,并添加了一些CSS。

css示例:

* {
  margin :0;
  padding :0;
  }
 .agenda-table {
  margin : 0 auto;
  width : 100%
   }
  .agheader {
   float : left;
   width : 65%;
   background : #f442bc;
   }
   th, tr {
   float : left;
   width : 100%;
   text-align : left;
   }
   .left {
    float : left;
    width : 5%;
   border-right : 1px solid #f442bc;
   }
   .right {
   float : left;
   width : 60%;
   }

示例html:

<!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
 <head>
 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
 </head>
 <body>
 <table class="agenda-table">
  <tbody>
   <tr class="agheader">
    <th>Title</th>
   </tr>
  <tr>
   <td class="left">xxx</td>
   <td class="right">
    <h4>yyy</h4>
   </td>
  </tr>
  <tr>
   <td class="left">aaa</td>
   <td class="right">
    <h4>bbb</h4>
   </td>
  </tr>
 </tbody>
</table>

<table class="agenda-table">
 <tbody>
 <tr class="agheader">
   <th>Title</th>
 </tr>
 <tr>
  <td class="left">xxx</td>
  <td class="right">
    <h4>yyy</h4>
  </td>
</tr>
<tr>
  <td class="left">aaa</td>
  <td class="right">
    <h4>bbb</h4>
  </td>
 </tr>
</tbody>
</table>


</body>
</html>

以下是一个小提琴,表明此示例有效:https://jsfiddle.net/Thorske/bL5ktrga/11/

浮点数定义可能不是必需的,因为它是一个表,但是 这样可以轻松地从表切换到列表。

答案 1 :(得分:1)

在每个表的第一行中使用相等的百分比宽度。

<table class="agenda-table" style="width: 100%;">
  <tbody>
    <tr class="agheader">
      <th style="width: 35%">xxx</th>
      <th>Title 1</th>
    </tr>
    <tr>
      <td>xxx</td>
      <td>
        <h4>yyy</h4>
      </td>
    </tr>
    <tr>
      <td>aaa</td>
      <td>
        <h4>bbb</h4>
      </td>
    </tr>
  </tbody>
</table>

<table class="agenda-table" style="width: 100%;">
  <tbody>
    <tr class="agheader">
      <th style="width: 35%">xxx</th>
      <th>Title 2</th>
    </tr>
    <tr>
      <td>xxx</td>
      <td>
        <h4>yyy</h4>
      </td>
    </tr>
    <tr>
      <td>aaa</td>
      <td>
        <h4>bbb</h4>
      </td>
    </tr>
  </tbody>
</table>