Почему я должен использовать display:table вместо таблицы

Что является преимуществами структурирования моего сайта с отделениями, и примените display:table свойство (display:tr, display:tr). Разве это не означает, что отделения будут вести себя точно как TR и td элементы?

Я знаю, что, вероятно, не должен использовать таблицы или поведение таблицы для расположения вообще, но мне просто любопытно, если существует различие и преимущество?

18
задан Brian Tompsett - 汤莱恩 29 May 2017 в 21:18
поделиться

3 ответа

Каковы преимущества структурирования моего сайта с помощью div и применения свойства display: table (display: tr, display: tr).

На мой взгляд, ничего, кроме того, что вы убираете совместимость со старыми браузерами . Идея о том, что использование DIV с display: table - * в чем-то лучше, чем

s, является идиотской IMO и является результатом полностью ошибочной истерии против элементов таблицы. (Я не нападаю на вас, @Nimo, просто критикуя некоторых людей, которые слишком далеко зашли с мемом «таблицы - это зло».)

Таблицы должны использоваться для представления табличных данных, а не для их неправильного размещения.

Однако есть определенные возможности таблиц, которые все еще очень трудно смоделировать с помощью чистого CSS. Вам либо нужны массивные хаки, а иногда даже обходные пути на основе JavaScript, чтобы эти вещи работали.

Вы должны разрабатывать свои макеты таким образом, чтобы не полагаться на эти способности.

В некоторых редких случаях они вам действительно нужны . Но тогда не имеет значения, используете ли вы правильный

или тупой
(кстати, какой из них более семантичен и лучше читается?)

Если вам требуется display: table - * для вашего макета, у вас есть один из те редкие случаи под рукой, или вы все равно загнали себя в угол. В любом случае, с

вы, по крайней мере, получите постоянную поддержку браузера.

13
ответ дан 30 November 2019 в 08:21
поделиться

display: table; не означает, что вы превращаете div'ы в таблицы, он просто заставляет определенные свойства (например, вертикальное выравнивание) работать там, где они обычно не работают. Это не похоже на использование таблицы для верстки.

6
ответ дан 30 November 2019 в 08:21
поделиться

Ниже объясняется, почему следует использовать DIV поверх элементов TABLE.

Плюсы элемента Table : Большинство дизайнеров используют таблицу для единообразного вида. Таблицы также просты в обслуживании. Еще одно преимущество table в том, что он совместим с большинством браузеров.

Минусы элемента таблицы: Все это имеет свою цену: слишком много вложенных таблиц увеличивают размер страницы и время загрузки. Чем больше элементов таблицы, тем ниже важный контент, поэтому поисковые роботы с меньшей вероятностью добавят контент в поисковые системы.

Плюсы DIV Element: Div с CSS мы можем добиться той же табличной структуры страницы и уменьшить количество элементов на странице, что позволяет странице загружаться быстрее. Это также делает страницу более совместимой с пауками поисковых систем.

Минусы элемента DIV: Главный недостаток этого заключается в том, что не все элементы CSS несовместимы с браузером. Из-за этого мы должны написать некоторый собственный CSS для решения проблем.

полная статья: http://www.codeproject.com/KB/HTML/DIVwebsite.aspx

display: table сообщает элементу отображаться в виде таблицы. Вложенные элементы должны отображаться как table-row и table-cell, имитируя старые добрые TR и TD. Также есть display: table-column , но он не должен показывать вообще ничего, а служит только для информации о стилях, как это делает COL. Я не совсем понимаю, как это работает.

подробнее о стиле отображения div: http://www.quirksmode.org/css/display.html

8
ответ дан 30 November 2019 в 08:21
поделиться