it-swarm.com.ru

Сплит тд в два

Я пытаюсь разделить TD (ячейку таблицы), чтобы она выглядела так, как будто это две ячейки. Проблема в том, что когда ячейка растет в высоту, я не могу сделать два деления внутри, чтобы занять всю доступную высоту. Поскольку эти клетки могут расти динамически, я также не могу установить фиксированную высоту (это может решить проблему).

Вот мой код:

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
<!--[if IE]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<style>
  article, aside, figure, footer, header, hgroup, 
  menu, nav, section { display: block; }
  td { border: 1px solid black; width: 50px; text-align: center; margin:0; padding:0 }
  #span1 { background-color: #DDD; width: 25px; float: right; }
  #span2 { background-color: #EEE; width: 24px; float: left; }
  .t { border-top: 1px solid black; }
  .r { border-right: 1px solid black; height: 100%; }
</style>
</head>
<body>
  <table>
    <tbody>
      <tr>
        <td>1</td><td>2</td><td>3<div><div id="span1" class="t">1</div><div id="span2" class="t r">1</div></div></td><td>4</td>
      </tr>
      <tr>
        <td>1</td><td>2</td><td><div id="span1">3</div><div id="span2" class="r">3</div></td><td>4</td>
      </tr>
      <tr>
        <td>1</td><td>2 2 2 2 2 22 2 </td><td><div id="span1">3</div><div id="span2" class="r">3</div></td><td>4</td>
      </tr>
      <tr>
        <td>1</td><td>2</td><td><div id="span1">3</div><div id="span2" class="r">3</div></td><td>4</td>
      </tr>
      <tr>
        <td>1</td><td>2 2 2 2 2 2 2 2 </td><td><span style="line-height:2"><div id="span1">3</div><div id="span2" class="r">3</div></span></td><td>4</td>
      </tr>
    </tbody>
  </table>
</body>
</html>

Вот так это выглядит:

current table view

Я не хочу видеть эти белые пробелы в колонке 3.

Любые идеи, как решить эту проблему? Я боролся с CSS некоторое время безуспешно до сих пор ...

Спасибо!.

11
Matías

вы должны установить высоту td height = 100% и .span1 set height = 100%, затем попытайтесь получить ответ.

<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
<!--[if IE]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<style>
  article, aside, figure, footer, header, hgroup, 
  menu, nav, section { display: block; }
  td { border: 1px solid black; width: 50px; text-align: center; margin:0; padding:0; height:100%; }
  #span1 { background-color: #DDD; width: 25px; float: right; height:100%; }
  #span2 { background-color: #EEE; width: 24px; float: left; }
  .t { border-top: 1px solid black; }
  .r { border-right: 1px solid black; height: 100%; }
</style>
</head>
<body>
  <table>
    <tbody>
      <tr>
        <td>1</td><td>2</td><td>3<div><div id="span1" class="t">1</div><div id="span2" class="t r">1</div></div></td><td>4</td>
      </tr>
      <tr>
        <td>1</td><td>2</td><td><div id="span1">3</div><div id="span2" class="r">3</div></td><td>4</td>
      </tr>
      <tr>
        <td>1</td><td>2 2 2 2 2 22 2 </td><td><div id="span1">3</div><div id="span2" class="r">3</div></td><td>4</td>
      </tr>
      <tr>
        <td>1</td><td>2</td><td><div id="span1">3</div><div id="span2" class="r">3</div></td><td>4</td>
      </tr>
      <tr>
        <td>1</td><td>2 2 2 2 2 2 2 2 </td><td><span style="line-height:2"><div id="span1">3</div><div id="span2" class="r">3</div></span></td><td>4</td>
      </tr>
    </tbody>
  </table>
</body>
</html>
12
ram

Попробуйте установить

display:inline-block

может или не может также добавить 100% высоты.

Также нет способа, которым вы могли бы просто добавить 2 тд, вместо того, чтобы пытаться подражать 2 ??

2
Simon McLoughlin

вы можете поместить таблицу в эту ячейку таблицы, затем в эту внутреннюю таблицу вы можете делать все, что захотите, например, td colspan="2" для верхней строки и td td для нижней строки (это напоминает мне о страшных днях разметки таблицы, но все, что работает для тебя!)

0
Rodolfo

Я также искал способ разбить TD (ячейка табличных данных). Прочитав много постов и после нескольких неудачных попыток, я наконец взломал его. Большое спасибо всем, кто писал ранее, так как именно благодаря вашему кредиту я смог соединить точки.

Есть две вещи, которые вы должны иметь в виду: «Влияние на строку заголовка» и «Результирующая строка данных». Под этим я подразумеваю, что ячейки в верхнем ряду [Affecting Header Row], использующие colspan, непосредственно влияют на ячейки в ряду под ними [Resulting Data Row]. Так, например, если моя результирующая строка (2-я строка) должна содержать разделенные TD, то на нее влияет строка выше, которая использует «colspan» в своих TD (1-я строка). Но если следующая строка (3-я строка) не должна быть затронута 'colspan' из 1-й строки, ячейки в следующей строке (3-я строка) должны иметь те же атрибуты 'colspan', что и ячейки в 1-й строке, это предотвращает их от раскола и делает их «промежуток» регулярного разрыва.

В изображении [нажмите на ссылку, чтобы увидеть изображение], у меня есть только 2 столбца [2-й и 4-й столбцы], которые разделяют ТД под ними. В 1-й строке я использую «colspan», чтобы повлиять на строки ниже. Однако я не хочу, чтобы 2-й и 3-й ряды были разделены, поэтому они имеют те же «colspans», что и 1-й ряд. Я хочу разделить ячейки в 4-й и 5-й строках [конечно, только во 2-м и 4-м столбцах), поэтому для этого они не содержат атрибутов 'colspan', что влияет на их строки над ними, которые используют ' Объединение столбцов. На шестую строку не влияют 'colspans' из предыдущих строк, потому что она содержит те же атрибуты 'colspan', что и первые 3 строки. Седьмая и последняя строка содержит разделенные TD, потому что, как и строки 4 и 5, не содержит «colspans». Это может показаться странным, но если вы посмотрите на изображение и попробуете исходный код, я думаю, вы будете очень довольны. Надеюсь, это поможет.

https://www.flickr.com/photos/[email protected]/sets/72157651047314439/

<table border="1px solid" cellspacing="5" bordercolor="#000000" width="959" cellpadding="5">
  <tr align="justify" valign="top">
    <td valign="middle" bgcolor="#FFFFFF" width="210"><h4 style="color:#000000" align="center">Nothing Special Here</h4></td>
    <td colspan="2" valign="middle" bgcolor="#6E7F8B"><h4 style="color:#FFFFFF" align="center">Colspan=&quot;2&quot;</h4></td>
    <td valign="middle" bgcolor="#6E7F8B" width="191"><h4 style="color:#FFFFFF" align="center">No Colspan Here</h4></td>
    <td colspan="2" valign="middle" bgcolor="#6E7F8B"><h4 style="color:#FFFFFF" align="center">Colspan=&quot;2&quot;</h4></td>
  </tr>
  <tr class="gray1" valign="top" align="justify">
    <td valign="middle"><p align="justify">Nothing Special Here</p></td>
    <td colspan="2" valign="middle"><p align="center">Colspan=&quot;2&quot;</p></td>
    <td width="191" valign="middle"><p align="center">No Colspan Here</p></td>
    <td colspan="2" valign="middle"><p align="center">Colspan=&quot;2&quot;</p></td>
  </tr>
  <tr class="gray1" valign="top" align="justify">
    <td valign="middle"><p align="justify">Nothing Special Here</p></td>
    <td colspan="2" valign="middle"><p align="center">Colspan=&quot;2&quot;</p></td>
    <td width="191" valign="middle"><p align="center">No Colspan Here</p></td>
    <td colspan="2" valign="middle"><p align="center">Colspan=&quot;2&quot;</p></td>
  </tr>
  <tr class="gray1" valign="top" align="justify">
    <td valign="middle"><p align="justify">Nothing Special Here</p></td>
    <td width="129" valign="middle"><p align="center">Nothing Special</p></td>
    <td width="120" valign="middle"><p align="center">Nothing Special</p></td>
    <td width="191" valign="middle"><p align="center">Nothing Special</p></td>
    <td width="99" valign="middle"><p align="center">Nothing Special</p></td>
    <td width="101" valign="middle"><p align="center">Nothing Special</p></td>
  </tr>
  <tr class="gray1" valign="top" align="justify">
    <td valign="middle"><p align="justify">Nothing Special Here</p></td>
    <td valign="middle"><p align="center">Nothing Special</p></td>
    <td valign="middle"><p align="center">Nothing Special</p></td>
    <td valign="middle"><p align="center">Nothing Special</p></td>
    <td valign="middle"><p align="center">Nothing Special</p></td>
    <td width="101" valign="middle"><p align="center">Nothing Special</p></td>
  </tr>  
  <tr class="gray1" valign="top" align="justify">
    <td valign="middle"><p align="justify">Nothing Special Here</p></td>
    <td colspan="2" valign="middle"><p align="center">Colspan=&quot;2&quot;</p></td>
    <td valign="middle"><p align="center">No Colspan Here</p></td>
    <td colspan="2" valign="middle"><p align="center">Colspan=&quot;2&quot;</p></td>
  </tr>  
  <tr class="gray1" valign="top" align="justify">
    <td valign="middle"><p align="justify">Nothing Special Here</p></td>
    <td valign="middle"><p align="center">Nothing Special</p></td>
    <td valign="middle"><p align="center">Nothing Special</p></td>
    <td valign="middle"><p align="center">Nothing Special</p></td>
    <td valign="middle"><p align="center">Nothing Special</p></td>
    <td valign="middle"><p align="center">Nothing Special</p></td>        
  </tr>  
</table>
0
Xylon Draganthus