Почему браузер не может правильно отобразить эту таблицу HTML? - PullRequest
0 голосов
/ 01 ноября 2018

Я борюсь с таблицей HTML. Я понятия не имею, почему этот тег таблицы не работает должным образом в браузере

<table border="1">
  <tbody>
    <tr>
      <td rowspan="2">1-1</td>
      <td rowspan="3">2-1</td>
    </tr>
    <tr>
      <td rowspan="2">1-2</td>
    </tr>
    <tr>
      <td rowspan="3">2-2</td>
    </tr>
    <tr>
      <td rowspan="2">1-3</td>
    </tr>
  </tbody>
</table>

HTML-код, приведенный выше, будет выглядеть так:

enter image description here

Однако вид, который я ожидал увидеть, выглядит следующим образом

enter image description here

Как я понял, если я хочу увидеть, что я хочу в браузере, я должен исправить ряды строк, как это

<table border="1">
  <tbody>
    <tr>
      <td rowspan="1">1-1</td>
      <td rowspan="2">2-1</td>
    </tr>
    <tr>
      <td rowspan="2">1-2</td>
    </tr>
    <tr>
      <td rowspan="2">2-2</td>
    </tr>
    <tr>
      <td rowspan="1">1-3</td>
    </tr>
  </tbody>
</table>

Но мне действительно интересно, что отличается и почему браузер (Chrome) не отображает первый должным образом и делает второй.

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Вы уже пробовали flexbox? Это немного другой подход для решения этой проблемы.

#main {
    width: 100px;
    height: 150px;
    border: 1px solid #c3c3c3;
   
   align-items: stretch;
    display: flex;
    flex-flow: column wrap;
   
}

#main div {
    width: 50px;
    height: 50px;
    line-height: 45px;
    text-align: center;
    
  
}

#right {
	width: 50px;
    height: 150px;
}

#right div {
	width: 50px;
    height: 75px;
   
    line-height: 70px;
    text-align: center;
    
    
}
<div id="main">
  <div style="background-color:lightgrey;" >1-1</div>
  <div style="background-color:grey;">1-2</div>
  <div style="background-color:lightgrey;">1-3</div>
<div id="right">
  <div id="right" style="background-color:lightblue;">2-1</div>
  <div id="right" style="background-color:lightgreen;">2-2</div>
</div>
</div>
0 голосов
/ 01 ноября 2018

Согласно W3C, нет способа указать значение с плавающей запятой, например, 1,5 для диапазона строк, но могут помочь некоторые настройки, как показано ниже.

<table border="1">
  <tbody>
    <tr>
      <td rowspan="2">1-1</td>
    </tr>
     <tr>
      <td rowspan="2">1-2</td>
    </tr>
    <tr>
      <td rowspan="2">2-1</td>
    </tr>
    <tr>
      <td rowspan="3">2-2</td>
    </tr>
     <tr>
      <td rowspan="2">3-1</td>
    </tr>
  </tbody>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...