1

Здраствуйте! Есть такой код. Так вот некоторые пишут что это типа говнокод. Объясните на чем основано данные утверждения. Спасибо

  <div class="wrapper">
        <div class="col">1</div>
        <div class="col">2</div>
    </div>

.wrapper {
  display: table;
}
wrapper .col {
  display: table-cell;
}
1
  • Потому-что это таблицы
    – user245150
    18 апр 2018 в 5:22

3 ответа 3

1

А что есть "семантика", может это чисто субъективное мнение отдельного индивида? По этому поводу можно почитать эту статью, которая является переводом этой статьи.

От себя хочу сказать, что это вполне себе нормальный код и если w3c валидатор не ругается на ваш HTML, то значит у вас всё в порядке.

  1. Вполне нормально ставить display: block; для тэга a, хоть это и инлайновый элемент.
  2. Вполне нормально ставить display: table, display: table-cell для тэгов div.

Семантика ничего и не говорит по этому поводу, а вот если вы пытаетесь сделать дивами таблицу, не важно как, то это уже может быть нерационально. И ключевое слово в этой фразе "может быть", вы сами хозяин своего кода и оцениваете рациональность применения тех или иных тэгов. Я вот использую бутстрап и в некоторых местах рациональнее сделать таблицу без тэга table, с помощью сетки bootstrap. А в некоторых местах я делаю колонки со стилями display: table, display: table-cell, потому что это отличный способ для вертикального центрирования блоков.

Вообщем, выбор есть всегда, а понимание рациональности и правильности этого выбора придёт со временем.

1

Из соображений семантики большинству элементов должны быть присвоены соответствующие теги. Таблица должна быть сверстана с использованием <table>. А то, что вы можете так сделать, не дает право верстать всю страницу одними дивами. Можно, но незачем.

1

Ну не говнокод, но семантика выносит мозг.
Хотя это может быть удобным - если таблица не вписывается в смысл, а структурировать данные надо.
Вопрос типа про <em></em> и <i></i> - первый акцентирует на себе внимание, второй просто ставит курсивное начертание. Для пользователя особой разницы нет, т.к. получилось так, что браузеры отображают одинаково их, но для робота разница огромна.

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

2
  • Спасибо. Это понятно - полностью так страницу верстать нецелесообразно. Скорее всего использовать это можно при верстке отдельных блоков.
    – soledar10
    27 мар 2015 в 6:02
  • @soledar10, именно!
    – user31688
    27 мар 2015 в 10:16

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.