Столбцы таблицы - сначала используют наибольшую ширину, другие - минимамум

0

У меня есть таблица, которая может иметь две, три или четыре столбца. Содержимое этих столбцов является динамическим.

То, что я пытаюсь сделать, заключается в том, что в первом столбце используется максимально возможная ширина. Остальные столбцы должны использовать только то, что необходимо для отображения текста без упаковки.

Я создал эту скрипту js с несколькими таблицами. Вы можете видеть, что возраст и страна получают ровную ширину. http://jsfiddle.net/7wt7d/

HTML

<table>
    <tr>
        <th>Name</th>
        <th>Age</th>
    </tr>
    <tr>
        <td>Frank</td>
        <td>26</td>
    </tr>
    <tr>
        <td>Marry</td>
        <td>31</td>
    </tr>
</table>

<table>
    <tr>
        <th>Name</th>
        <th>Age</th>
        <th>Country</td>
    </tr>
    <tr>
        <td>Frank</td>
        <td>26</td>
        <td>United States</td>
    </tr>
    <tr>
        <td>Marry</td>
        <td>31</td>
        <td>Canada</td>
    </tr>
</table>

CSS

table {
    width: 400px;
}
th, td {
    text-align: right;
}

th:first-child, td:first-child {
    text-align:left;
}

Я попытался установить ширину столбцов, но поскольку последние два столбца могут иметь текст, начиная от Канады до Соединенных Штатов, я действительно не хочу устанавливать это на 100 пикселей или что-то в этом роде, особенно когда второй,, 50px.

Есть ли способ сделать это?

Первая колонка (как можно шире) | Вторая колонка (максимально узкая) | Третий столбец, как второй.

  • 0
    это то, что вы пытаетесь достичь? jsfiddle.net/7wt7d/1
  • 0
    о, неважно ... я вижу, что ты хочешь сделать .. мой код оборачивается. позвольте мне поиграть с этим.
Показать ещё 1 комментарий
Теги:
table

2 ответа

0
Лучший ответ

Использовать свойство css white-space:nowrap; чтобы слова не обертывались.

CSS

table {
    width: 400px;
}
th, td {
    text-align: right;
    padding:0 5px;
    white-space:nowrap;
}

th:first-child, td:first-child {
    text-align:left;
    width:100%;
}

HTML

<table>
    <tr>
        <th>Name</th>
        <th>Age</th>
    </tr>
    <tr>
        <td>Frank</td>
        <td>26</td>
    </tr>
    <tr>
        <td>Marry</td>
        <td>31</td>
    </tr>
</table>

<table>
    <tr>
        <th>Name</th>
        <th>Age</th>
        <th>Country</td>
    </tr>
    <tr>
        <td>Frank</td>
        <td>26</td>
        <td>United States</td>
    </tr>
    <tr>
        <td>Marry</td>
        <td>31</td>
        <td>Canada</td>
    </tr>
</table>

ДЕМО ЗДЕСЬ: http://jsfiddle.net/7wt7d/2/

0

http://jsfiddle.net/xpHZ2/ http://jsfiddle.net/xpHZ2/show

Я бы установил с тегом col ширину столбцов таблицы. И используйте белое пространство: nowrap, чтобы обеспечить обтекание текста на всех tds, кроме первого td.

<table>
    <col class="col name" />
    <col class="col age" />
    <col class="col country" />

.col.age {
    width: 10%;
}
.col.country {
    width: 20%;
}
td {
    white-space: nowrap;
}
td:first-child {
    white-space: normal;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню