У меня есть неопределенное количество элементов ячейки таблицы внутри контейнера таблицы.
<div style="display:table;">
<div style="display:table-cell;"></div>
<div style="display:table-cell;"></div>
</div>
Есть ли чистый способ CSS сделать ячейки таблицы равными по ширине, даже если в них есть контент разного размера?
Спасибо.
Изменить: Наличие максимальной ширины повлечет за собой знание того, сколько ячеек у вас есть, я думаю?
html
css
html-table
Гарри
источник
источник
Ответы:
Вот рабочая скрипка с неопределенным количеством ячеек: http://jsfiddle.net/r9yrM/1/
Вы можете зафиксировать ширину для каждого родителя
div
( таблицы ), иначе она будет на 100% как обычно.Хитрость заключается в том, чтобы использовать
table-layout: fixed;
и некоторую ширину каждой ячейки, чтобы вызвать ее, здесь 2%. Это вызовет другую таблицу algorightm, в которой браузеры очень стараются соблюдать указанные размеры.Пожалуйста, проверьте с Chrome (и IE8-при необходимости). Это нормально с недавним Safari, но я не могу вспомнить совместимость этого трюка с ними.
CSS (соответствующие инструкции):
РЕДАКТИРОВАТЬ (2013): Остерегайтесь Safari 6 на OS X, он имеет
table-layout: fixed;
ошибки (или, возможно, просто отличается, сильно отличается от других браузеров. Я не проверял макет таблицы CSS2.1 REC;)). Будьте готовы к разным результатам.источник
div
s,display:table
как если бы они были строками,display:tabl-row
а не так, как некоторые ожидают. Пример тут ..my-cell { width: 100%; }; @media screen and (min-width:0\0) { .my-cell { width: 1%; } }
CSS-код отсюда: stackoverflow.com/a/24321386/6962HTML
CSS
DEMO.
источник
Просто использование
max-width: 0
вdisplay: table-cell
элементе работало для меня:источник
0px
не является действительной единицей. Так и должно быть0
.замещать
с участием
Посмотрите на все проблемы, связанные с попытками заставить div работать как таблицы. Они должны были добавить table-xxx, чтобы имитировать расположение таблиц
Таблицы поддерживаются и работают очень хорошо во всех браузерах. Зачем их угробить? тот факт, что им пришлось имитировать их, является доказательством того, что они хорошо выполнили свою работу.
На мой взгляд, используйте лучший инструмент для работы, и если вы хотите, чтобы табличные данные или что-то похожее на табличные таблицы данных просто работали.
Очень поздний ответ, я знаю, но озвучивать стоит.
источник
<nav>
,<ul>
и т.д.display: table-etc
(вполне естественно). Я не трачу свои дни на создание ссылок, имитирующих div или div, имитирующих таблицы, span-ы или входные данные: я просто использую CSS для стилизации. Наконец, удачи в IE9 для применения любого другого значенияdisplay
свойства к элементам таблицы, tr, td.это будет работать для всех
Это также будет работать для данных таблицы, созданных итерацией
источник
Ну вот:
http://jsfiddle.net/damsarabi/gwAdA/
Вы не можете использовать width: 100px, потому что дисплей - ячейка таблицы. Однако вы можете использовать Max-width: 100px. тогда ваша коробка никогда не станет больше, чем 100px. но вам нужно добавить переполнение: скрытый, чтобы контекст не кровоточил в другие ячейки. Вы также можете добавить пробел: nowrap, если вы хотите, чтобы высота не увеличивалась.
источник
Это можно сделать, установив стиль ячейки таблицы в значение
width: auto
, и содержимое будет пустым. Столбцы теперь равны по ширине, но не содержат содержимого.Чтобы вставить содержимое в ячейку, добавьте с
div
помощью css:Вы также должны добавить
position: relative
в ячейки.Теперь вы можете поместить фактический контент в div, о котором говорилось выше.
https://jsfiddle.net/vensdvvb/
источник