HTML-таблица с colspan не работает правильно - PullRequest
4 голосов
/ 17 июня 2019

У меня есть 2 HTML-таблицы с одинаковым кодом в обоих случаях. Я использовал "colspan", чтобы различить 2 столбца в таблице. Основная ширина таблицы - colspan 65, а столбцы - colspan 5 и 60 соответственно. Но в двух таблицах ширина столбцов отображается по-разному.

Я проверил все коды. Обе таблицы имеют одинаковый код, я использовал свойство 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>

Вы можете проверить страницу в режиме реального времени здесь .

Вы видите 2 таблицы. 1-й столбец обеих таблиц имеет разную ширину независимо от кода.

Спасибо за проверку.

Ответы [ 2 ]

2 голосов
/ 17 июня 2019

На вашей странице много ошибок, как вы можете видеть из этого результата теста единорога: 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%;
   }

example 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 голос
/ 17 июня 2019

Используйте одинаковую ширину в процентах в первой строке каждой таблицы.

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...