CSS: как динамически увеличивать / уменьшать столбец таблицы HTML - PullRequest
1 голос
/ 02 ноября 2009

У меня есть такой HTML-код:

<table>
<tr>
    <th>colA heading</th>
    <th>colb heading</th>
</tr>
<tr>
    <td>colA content</td>
    <td>colb content</td>
</tr>
<tr>
    <th>colC heading</th>
    <th>colD heading</th>
</tr>
<tr>
    <td>colC content</td>
    <td>colC content</td>
</tr>
</table>

Это продукция следующего выхода:

заголовок colA заголовок colB
Содержание colA Содержание colB
заголовок colC заголовок cold
содержание colC содержание colD

что я хочу сделать, это обнаружить с помощью предположительно JavaScript, если страница достаточно широка, динамически изменить мою таблицу так:

заголовок colA заголовок colB заголовок colC заголовок colD заголовок
содержание colA содержание colB содержание colC содержание colD

Как я могу сделать это, используя HTML (и JavaScript / CSS, если необходимо)?

Спасибо

Ответы [ 3 ]

2 голосов
/ 02 ноября 2009

Если я правильно понимаю ваш вопрос, это можно сделать, разбив вашу таблицу на две таблицы, например:

<head>
    <style>
        .bigBox {
            margin: 0px;
            padding: 0px;
            float: left;
            clear: right;
            display: inline;
            border: 1px solid black;
        }
    </style>
</head>
<body>
    <table class="bigBox">
        <tr>
            <th>colA heading</th>
            <th>colb heading</th>
        </tr>
        <tr>
            <td>colA content</td>
            <td>colb content</td>
        </tr>
    </table>
    <table class="bigBox">
        <tr>
            <th>colC heading</th>
            <th>colD heading</th>
        </tr>
        <tr>
            <td>colC content</td>
            <td>colC content</td>
        </tr>
    </table>
</body>

Граница предназначена только для удобства тестирования. Все, что вам нужно сделать, чтобы проверить, это установить содержимое одной из ячеек примерно так:

0 голосов
/ 02 ноября 2009

Как бы вы определили, что таблица должна умещаться в одной таблице?

Вы начинаете с двух столов, переходите к одному столу или с одного -> 2?

Было бы проще начать с одной таблицы, и если полосы прокрутки активны, сделайте что-то вроде следующего крошечного фрагмента. Вы должны использовать firebug в firefox для проверки атрибутов dom таблицы, чтобы определить свойства для использования.

var tableelem = document.createElement('table');
var thead = document.createElement('thead');
for(var t = 0; t < 2; t++) {
  var trow = document.createElement('tr');
  var tdata = document.createElement('td');
  tdata.appendChild(document.createTextNode('header'));
  thead.appendChild(trow);
}
tableelem.appendChild(thead);

Вам нужно будет использовать document.getElementById, чтобы получить таблицу, из которой вы будете извлекать, а затем заголовок будет в table.rows[0], так что вы можете проанализировать ячейки в этой строке и получить значения, в которые я положил заголовок выше.

Затем вам нужно будет добавить tableelem в div, используя функцию appendChild.

0 голосов
/ 02 ноября 2009

Тед,

Может быть, это больше вопрос DOM (объектная модель документа)?

Цитирование со страницы Wiki (так как мне не хватает практического опыта в этом):

Веб-браузеры

Веб-браузер не обязан использовать DOM для отображения HTML-документа. Однако DOM требуется для сценариев JavaScript, которые хотят динамически проверять или изменять веб-страницу. Другими словами, объектная модель документа - это способ, которым JavaScript видит содержащую HTML-страницу и состояние браузера.

Так что вы можете попробовать поискать в некоторых документах HOWTO об использовании методов Javascript DOM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...