Как указать в HTML или CSS абсолютную минимальную ширину ячейки таблицы
-
09-06-2019 - |
Вопрос
Краткое содержание
Каков наилучший способ гарантировать, что ячейка таблицы не может быть меньше определенной минимальной ширины?
Пример
Я хочу убедиться, что все ячейки в таблице имеют ширину не менее 100 пикселей в зависимости от ширины контейнера таблиц.Если доступно больше места, ячейки таблицы должны заполнить это пространство.
Совместимость с браузером
Возможно, я хотел бы найти решение, которое работает в
- ИЕ 6-8
- ФФ 2-3
- Сафари
В порядке предпочтения.
Решение
Этого CSS должно быть достаточно:
td { min-width: 100px; }
Однако не все браузеры соблюдают его (атрибут min-width) правильно (например, IE6 его очень не любит).
Редактировать: Что касается решения IE6 (и более ранних версий), насколько мне известно, не существует такого решения, которое бы работало надежно при любых обстоятельствах.Использование HTML-атрибута nowrap на самом деле не дает желаемого результата, поскольку он просто предотвращает разрывы строк в ячейке, а не указывает минимальную ширину.
Однако если nowrap используется в сочетании с обычным свойством ширины ячейки (например, с использованием width:100 пикселей), 100 пикселей будут действовать нравиться минимальная ширина, и ячейка все равно будет расширяться вместе с текстом (из-за Nowrap).Это далеко не идеальное решение, которое невозможно полностью применить с помощью CSS, и поэтому его было бы утомительно реализовывать, если у вас много таблиц, к которым вы хотите применить это.(Конечно, все это альтернативное решение не работает, если вы все равно хотите иметь динамические разрывы строк в своих ячейках).
Другие советы
Другой взломать это старый трюк с прозрачным пикселем 1х1.Вставьте прозрачное gif-изображение размером 1 x 1 и установите в теге изображения нужную ширину.Это заставит ячейку быть по крайней мере такой же ширины, как изображение.
Я знаю, что это старый вопрос, но я решил поделиться чем-то, что не было упомянуто (хотя концепция довольно проста...), вы можете просто поставить <div>
внутри таблицы (в одном из <td>
или что-то в этом роде) и установите <div>
к min-width
.стол остановится на <div>
ширина.Просто подумал, что выложу это на случай, если кто-нибудь наткнется на это в Google.Кроме того, я не совсем уверен в том, как обрабатывается минимальная ширина в I.E6.но это уже было описано в другом ответе.
У меня был некоторый успех:
min-width: 193px;
width:auto !important;
_width: 193px; /* IE6 hack */
На основе комбинации ответа Ватоса и статьи минимальной высоты здесь: http://www.dustindiaz.com/min-height-fast-hack/
как насчет этого свойства CSS
min-width: 100px
но в IE6 это не работает, если не ошибаюсь
если вы не хотите делать это с помощью CSS, я полагаю, вы можете добавить этот атрибут
nowrap="nowrap"
в теге данных вашей таблицы
Это кросс-браузерный способ установки минимальной ширины и/или минимальной высоты:
{
width (or height): auto !important;
width (or height): 200px;
min-width (or min-height): 200px;
}
IE 6 не понимает! важно
IE 6 видит ширину/высоту: 200 пикселей (автоматическая перезапись)
Другие браузеры понимают мин- и !important.
Я не на 100% знаком с поведением ширины в элементах TD, но все это прекрасно работает, например, с тегами DIV.
КСТАТИ:
На основе комбинации ответа Ватоса и статьи минимальной высоты здесь: http://www.dustindiaz.com/min-height-fast-hack/
Это не работает из-за порядка первых двух строк, они должны быть в правильном порядке (подумайте об этом выше);)
IE6 обрабатывает ширину как минимальную ширину:
td {
min-width: 100px;
_width: 100px;/* IE6 hack */
}
Если вы хотите, чтобы IE6 обрабатывал ширину как обычные браузеры, задайте для него overflow:visible;(здесь не тот случай)