Задать вопрос

Использование display: table — зло?

Верстаю резиновую сетку, местами необходимо колонкам задавать фиксированную ширину (например, 2 колонки: сайдбар 300px, все остальное пространство - вторая колонка).

.row {
	display:table;
	width:100%;
}
.col {
     display:table-cell;
}

Справляется на ура, отдельно просто задаем ширину нужному блоку и все прекрасно тянется и при сжатии по ширине ничего никуда не уезжает.

В сети повсюду мануалы с классическим float. Почему практически нигде не используется вышеприведенный способ? В чем подвох? Только ли неработоспособность этого метода в IE<8?
  • Вопрос задан
  • 4840 просмотров
Подписаться 9 Оценить Комментировать
Решения вопроса 1
@stas3572
Потому что в сети куча старой информации, переписанной и перепощенной 100500 раз.

Если вкратце, и отбрасываем flex'ы:

Есть float - он справляется на ура, нужно только не забывать его очищать.

Есть inline-block - он прекрасен, до тех пор пока вы не сталкиваетесь с проблемой появления отступов между колонками (пробелов между блоками) - вам приходится обнулять font-size у row + display table для сафари на него вешать, а после объявлять font-size у дочерних col'а элементов (хотя есть и другие способы, но этот оптимальный).

А можно и просто верстать теплыми ламповыми "таблицами", только по-человечески, на display table, table-row, table-cell. Нюансы - нюансы таблиц, больше к сожалению не подскажу, на деле сам сильно не завязывался на таблицах, всех нюансов не знаю.

Попробуйте каждый, почитайте познакомьтесь и выберите тот, что вам удобнее
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Если не смущает поддержка старых версий браузеров, то почему сразу не flex-box?
Ответ написан
Подвох в том, что Вы верстаете таблицу div-ами.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы