Как заставить колонки таблицы принять заданную ширину?
Почему при данной разметке колонки не размещаются по всей таблице с указанным значение width, а располагаются близко друг к другу?
<table style={{ width: '100%' }}> <thead> <tr style={{width: '100%', display: 'block'}}> <th style={{ width: '15%', textAlign: 'start' }}> TH1 </th> <th style={{ width: '25%', textAlign: 'start' }}> TH2 </th> <th style={{width: '20%'}}> TH3 </th> <th style={{width: '20%'}}> <img src={...} height={'20px'} /> TH4 </th> <th style={{width: '20%'}}> TH5 </th> </tr> </thead> <tbody> ... </tbody> </table> |
<table style={{ width: '100%' }}> <thead> <tr style={{width: '100%', display: 'block'}}> <th style={{ width: '15%', textAlign: 'start' }}> TH1 </th> <th style={{ width: '25%', textAlign: 'start' }}> TH2 </th> <th style={{width: '20%'}}> TH3 </th> <th style={{width: '20%'}}> <img src={...} height={'20px'} /> TH4 </th> <th style={{width: '20%'}}> TH5 </th> </tr> </thead> <tbody> ... </tbody> </table>
Дополнительно:
Ответы:
table { table-layout: fixed; } |
table { table-layout: fixed; }
- при добавлении table-layout: fixed; ничего не изменилось
при добавлении max-width: 100% в table тоже ничего не меняется - ksntheia, все колонки имеют заданную ширину
codepensnippet
- Сергей delphinpro, а если мне нужно у tr оставить display: 'block'
- ksntheia, ух ты, я и не заметил.
В это случае у вас уже нет таблицы, и не стоит ожидать табличного поведения.
А зачем это нужно-то? - Сергей delphinpro, нужно было у строк таблицы сделать border-radius
- ksntheia, Технически в этом случае таблица получается поломанная и невалидная. Блочный элемент не может быть потоком table-* кроме table-cell
Браузер в меру своих возможностей пытается восстановить недостающие элементы, добавляя виртуальные, и получается примерно следующее
<table style="100%"> <thead> <td> <!-- виртуальный --> <tr style="display: block"> <!-- Ведет себя как див --> <table> <!-- виртуальный, и здесь нет растяжки на 100% --> <tr> <!-- виртуальный --> <th style="width:15%"> TH1 </th> <th style="width:25%"> TH2 </th> <th style="width:20%"> TH3 </th> <th style="width:20%"> TH4 </th> <th style="width:20%"> TH5 </th> </tr> <!-- виртуальный --> </table> <!-- виртуальный --> </tr> <!-- а-ля див --> </td> <!-- виртуальный --> </thead> </table>
<table style="100%"> <thead> <td> <!-- виртуальный --> <tr style="display: block"> <!-- Ведет себя как див --> <table> <!-- виртуальный, и здесь нет растяжки на 100% --> <tr> <!-- виртуальный --> <th style="width:15%"> TH1 </th> <th style="width:25%"> TH2 </th> <th style="width:20%"> TH3 </th> <th style="width:20%"> TH4 </th> <th style="width:20%"> TH5 </th> </tr> <!-- виртуальный --> </table> <!-- виртуальный --> </tr> <!-- а-ля див --> </td> <!-- виртуальный --> </thead> </table>
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для того чтобы заставить колонки таблицы принять заданную ширину, вам нужно использовать атрибуты стиля CSS или атрибуты HTML для каждой колонки.
Если вы хотите задать ширину колонкам таблицы в процентах, вы можете использовать следующий CSS код:
table { width: 100%; } td { width: 33.33%; }table { width: 100%; } td { width: 33.33%; }
В этом примере каждая колонка будет занимать 33.33% ширины таблицы.
Если вы хотите задать ширину колонкам таблицы в пикселях, вы можете использовать следующий CSS код:
table { width: 100%; } td { width: 100px; }table { width: 100%; } td { width: 100px; }
В этом примере каждая колонка будет занимать 100 пикселей ширины.
Если вы хотите задать разную ширину для каждой колонки, вы можете использовать атрибуты HTML для каждой колонки:
<table> <tr> <td width="100px">Колонка 1</td> <td width="200px">Колонка 2</td> <td width="300px">Колонка 3</td> </tr> </table><table> <tr> <td width="100px">Колонка 1</td> <td width="200px">Колонка 2</td> <td width="300px">Колонка 3</td> </tr> </table>
В этом примере первая колонка будет занимать 100 пикселей, вторая - 200 пикселей и третья - 300 пикселей.
Надеюсь, эти примеры помогут вам управлять шириной колонок в таблице на вашем веб-сайте. Если у вас есть дополнительные вопросы, не стесняйтесь задавать их!