Верстка: Дивы,таблицы, как надо и как не надо

Давно лежит в черновиках у меня статейка про прелести и ужасы обоих подходов в верстке. Когда то, давным-давно, никто даже и не загонялся по поводу каких-то дивов, верстали таблицами и все было гуд. Я сам так делал.

Вроде все просто, посмотрел на дизайн, накинул мысленно сетку таблицы, разрезал, разверстал. Проблема возникала, когда требовалось разверстать сложный диз, там таблица а в ней еще таблица а в ней еще таблица и т.д. Вобщем, ужас.

С дивами вроде проще — можно и стиль прописать без излишнего кода и понятно будет для чего этот див. Но иногда их очень трудно отпозиционировать относительно друг друга. Сейчас уже мне в дивах намного проще сверстать.

Итак, таблицы.

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

MAMA (Metadata Analysis and Mining Application, приложение для анализа и разработки метаданных) это структурированный вебпоисковик от Opera Software, занимается парсингом страниц и возвращает их детализированую структуры.

По данным МАМЫ, большинство сайтов юзает таблицы, да еще и таблицы по три уровня вложенности. Среди самых популярных тегов: table, td и tr присутствуют само собой. 80% сайтов, которые знает МАМА, состоят из таблиц. Такая вот статистика.

С точки зрения семантики — таблица — это элемент для представления табличных данных, он не оптимизирован для построения структуры.

Простота использования.

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

Обслуживаемость.

Таблица состоит из тучи тегов: table открывает таблицу, tr открывает ряды, td открывает ячейки. Есть еще thead и tbody, они добавляют свои строки в заголовок и в тело таблицы, их можно не использовать.

Для читабельности, каждому тегу отдают свою строку. Rowspan и colspan вытягивают одну ячейку по колонке/столбцу, добавляя еще болей непонятности в код.

Вот такая вот конструкция + дополнительные теги (img и тп) + сам контент добавляется в тело документа. Разобратся в структуре бывает весьма непросто.

табличный вариант
<table border="0" cellspacing="0" cellpadding="0">
 <tbody>
   <tr>
     <td colspan="3" height="120">....</td>
   </tr>
   <tr>
<td class="menu" valign="top">...</td>
<td class="content" valign="top">...</td>
<td class="aSide" valign="top">...</td>
</tr>
<tr>
<td colspan="3">...</td>
</tr>
</tbody></table>
вариант для дивов
 <div id="header">...</div>
 <div id="menu">...</div>
 <div id="content">...</div>
 <div id="aSide">...</div>
 <div id="footer">...</div>

Как видно, в таблице кода будет побольше. Нетрудно представить, как может разростись код при увеличении страницы.

В дивах div id=menu еще можно заменить на неупорядоченный список ul. Таблицы также далеки от чистого кода, и в идеале должны использоватся для отображения табличных данных.

Все это слегка намекает, что code smell(код попахивает, домен кстати двухзнак в ком!).

Еще в таблицах тяжелее отпозиционировать контент. МАМА сообщает, что среди сайтов юзающих таблицы, 90% используют border, width, cellpadding и cellspacing. Все это дело обычно не выносят в цсс, что добавляет еще кода.

А как известно, цсс то кешируется в браузере, а вот хтмл документ нет.

Для особо кропотливых — программер пишет строк кода больше, но кпд этого кода ниже, следовательно он тратит рабочее время на пустоту.

Есть еще другая статистика — это отношение ошибок на строку кода. Чем больше строк кода, тем больше ошибок. Вот так.

Гибкость при использовании.

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

Доки по теме таблиц

Сайтеги на таблицах

Дивы.

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

Простота использования

Блочная верстка подразумевает наличие более продвинутых знаний у разработчика нежели табличная. Требуется знание CSS и понятие чем отличаются блочные и встроеные элементы, когда использовать плавающее или абсолютное позиционирование, и как пофиксить глюки некоторых, абсолютно всеми любимых браузеров от мелкософта.

Див выглядит иначе таблицы. Все представляют, как выглядит таблица, а вот с дивом напряг. Див это одиночный блок, он не ограничивается каким-то родительским элементом, как td например.

Основная беда блочной верстки — это предугадать, как поведут себя элементы, если например контент начнет вылазить за пределы элемента. Может посыпатся абсолютно все. Или уехать в сторону. Новые браузеры более обтекаемо позиционируют контент в таких случаях, однако есть один всеми любимый браузер, вот в нем бывают чудеса.

Работа с фиксами под браузеры поначалу тяжковата, но все приходит с опытом. Поддержка стандартов W3C сейчас реализована у всех браузеров в какой-то мере. Поскольку браузеров становится больше, конкуренция растет, стандарты ессно стараются все реализовать быстрее чем конкуренты.

Обслуживаемость

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

Вкладывавание дивов друг в друга — это путь к большому гемору. Тронув такой код, можно всю верстку порушить.
Идеал — группировать одним дивом элементы, описывая их свойсвта в родительском класса.

В группах неплохо бы описывать структуру другими не блочными элементами для улучшения понимания кода.

<div id="container">
   <h1>heading</h1>
    <p>text</p>
</div>

воспринимается проще чем

<div id="container"></div>
<div id="header"></div>
<div id="text"></div>

Пишите понятней.

Еще парочка причина, зачем делать семантическую верстку:

  • Боты поисковиков индексируют сайты. Делая верстку более понятной и упрощенной, возможно повысит ваш сайт в выдаче.
  • Некоторые юзеры используют навигацию по странице при помощи клавиатуры (ноуты) или используют всякие девайсы для для серфинга. Правильная разметка даст правильную навигацию.

Гибкость при использовании

Даже при переусердствовании дивами сайт может быть легко отображен где угодно, если дизайн отделен от контента и вынесен в стили. Есть полезная статья “Going to Print” в которой расказывается как сделать сайт максимально полезным для принтера.
Чрезмерная структура также мешает некоторым браузерам от Мозиллы корректно печатать документы.

Почитать по теме:

Сайты с переизбытком дивов:

Так как же надо?

Как говорится в пословице, сдуру можно и ухо сломать. При неумелом подходе можно испортить оба метода верстки.

Используем дивы правильно

Перед созданием нового дива, нужно прикинуть, а нужен ли он тут или нет. H1-5 вполне могут заменить заголовки, а списками можно сделать и меню и сами списки и вертикальные блоки до кучи. Еще есть параграф p.
Для гибкости вывода форм, можно заключать их в fieldset, а его уже в список.

Не забывайте, что чем меньше дивов, тем меньше кода, тем он проще, тем меньше в нем ошибок.Когда контент разверстан, переходим к картинкам. Для начала их пробуют вставить в документ при помощи background-image и других средств CSS. Если этого никак не сделать, то можно создать новый див.

Всякие штучки

Несколько базовых приемов. Приводятся с целью обращения верстальщиков в идеи чучхе в правильную верстку. Обратите внимание на читабельность кода.

меню

<ul id="menu">
     <li><a href="#">Home</a></li>
     <li><a href="#">Products</a></li>
     <li><a href="#">About</a></li>
</ul>

Меню как список очень просто в использовании. Тег li блочный, может иметь бекграунд. Такие меню занимают мало места, в них просто встроить подменю.

заголовки

<h1>Main heading</h1>
<h2>Normal heading</h2>

Используйте заголовки где можно. Они дают некоторый вес в ПС + облегчают восприятие документа.

списки

<ul class="newsList">
     <li>
         <img />
         <h2 />
         <p />
         <a />
     </li>
     <li>
         <img />
         <h2 />
         <p />
         <a />
     </li>
 </ul>

Группируйте схожие куски кода и добавляйте их в код. Списки хорошие контейнеры. В списках не нарушается чередование элементов. Т.е. дивы могут разьехатся и последний может стать первым, списки даже если и поползут, очередность элементов останется.

контейнеры различной ширины

<body class=»newsShow»>
<div id=»content»></div>
<div id=»aSide»></div>
</body>

/* Containers */
#content { float: left; }
#aSide { float: right; }

/* Page structures */
.newsShow #content { width: 80%; }
.newsShow #aSide { width: 20%; }

.home #content { width: 70%; }
.home #aSide { width: 30%; }

.oneColumn #content { width: 100%; }

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

данные для отправки в списке

<dl>
<dt>Your name is:</dt>
<dd>Susan Hanson</dd>
<dt>Your address is:</dt>
<dd>Street name 1</dd>
<dt>You live in:</dt>
<dd>Oslo</dd>
</dl>

DL используется, когда значения в списке парные. Многие используют таблицы, но dl предпочтительней. Также он выставляет ширину для dd и dt, создает семантический порядок между этими элементами. dd и dt блочные элементы.

простая форма

<form>
<ul>
<li>
<fieldset>
<legend>Person info</legend>
<ul>
<li>
<label for=»name»>Name:</label>
<input type=»text» name=»name» id=»name» />
</li>
<li>
<label for=»age»>Age:</label>
<input type=»text» name=»age» id=»age» />
</li>

</ul>
</fieldset>
</li>
<li>
<fieldset>
<legend>Address info</legend>
<ul>
<li>
<label for=»address»>Address:</label>
<input type=»text» name=»address» id=»address» />
</li>
<li>
<label for=»zip»>Zip:</label>
<input type=»text» name=»zip» id=»zip» />
</li>

</ul>
</fieldset>
</li>

</ul>
</form>

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

Вобщем, как не раз уже говорилось, дивы используйте для разметки структуры. Для всего остального используйте списки, параграфы и т.п.

Почитать:

Как перейти с таблиц на дивы

  • Попробуйте убирать вложенные таблицы, заменяя подходящими тегами p span ul и т.д. Понемногу убирая таблицы, можно добится сокращения размеров документа.
  • Не добавляйте новых таблиц не для табличных данных.
  • Разделяйте дизайн и контент. Код для разметки вынесите в css.
  • Проверьте, нельзя сделать код более чистым, более семантичным.
  • Сделать новый код может выйти дороже по времени и средствам, чем потихоньку его усовершенствовать.
  • Не пишите плохой код. Лучше сберегите свое время.

В будущем

Ждут нас две хорошие новости. Это HTML5 и CSS3. Первый будет содержать семантические теги и css-разметку а-ля таблицы, второй помима множества вкусностей типа круглых уголков при помощи CSS, будет фича под названием мультиколонная структура.

HTML5

С приходом HTML 5, мы сможем увидеть структурную разметку страницы, которая подчеркивает, что структура имеет значение.

html5

Это добавит несколько возможностей для краулеров:

  • Поисковики смогут более корректно оценить структурированный контент
  • Упростится задача чтения с экрана людьми, имеющие проблемы со зрением и читающие при помощи спец устройств.
  • Разметка для маленьких экранов станет более стандартизированной.

Вместе со структурными элементами, HTML 5 также представит  новые теги. Несколько самых интересных:

  • video и audio привнесут новую, семантически обоснованную разметку для контента и позволит видео и аудио потоки направлять напрямую в браузер.
  • Формы получат новую и улучшеную семантику для ввода текста и валидации форм.
  • Новый тег canvas будет иметь API для двухмерной отрисовки.

HTML 5 будет также содержать много новых APIs, например:

  • Немедленный режим отрисовки 2D
  • Временное воспроизведение медиа
  • Оффлайн хранилище
  • Редактирование
  • Drag and drop
  • Messaging/networking
  • Управление кнопкой “Back”
  • Обработчик  регистрации MIME и протоколов

Работа над HTML 5 началась в конце  2003 и имеет сроки:

  • Первая W3C рабочая примерка в октябре 2007
  • Последний созыв в октябре 2009
  • Тестовый пакет для распространителей в 2011
  • Подготовка релиз-кандидата в 2012
  • Первая проба текстового пакета в 2012
  • Вторая проба тестового пакета в 2015
  • Финальная версия тестового пакета в 2019
  • Последний сбор рабочей команды в 2020
  • Предложенные рекомендации в 2022

19 лет для разработки это конечно круто, но как и в случае с HTML 4, DOM2 HTML и  XHTML1, три спецификации  HTML 5 предполагается заменить. До 2022 года разрабы не хотят выпускать в пользование, потому что спецификации и требования могут поменятся.

Табличный вывод средствами CSS

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

<body>
<ul id=»menu»>
<li><a href=»#»>Home</a></li>
<li><a href=»#»>Products</a></li>
<li><a href=»#»>About</a></li>
</ul>
<div id=»content»>
<p>Fusce quis velit…</p>
</div>
<div id=»aSide»>
<p>Praesent iaculis commodo elit…</p>
</div>
</body>

body { display: table; table-layout: fixed;}
#menu, #content, #aSide { display: table-cell; }
#menu { width: 20%; border: 2px solid red;}
#content { width: 50%; border: 2px solid blue; }
#aSide { width: 29%; border: 2px solid green;}

Разделитель (в примере — body) выставлен отображатся как table, относящиеся колонки выставлены как table-cell. Это также работает для элементов списка.

tablebasedlayoutwithcss

Мультиколоночный вывод при помощи CSS

Немного уличной магии CSS3 поможет отпозиционировать текст в колонки без элементов. Это делается при помощи выставления либо ширины либо количества колонок.

Мультиколоночный вывод уже поддерживается в Mozilla и в Webkit-based браузерах, элементы  в стилях имеют префиксы -moz- и -webkit-.

Ширина колонок

Число колонок зависит от того, какая ширина выставлена (промежуток между колонками регулирует свойство column-gap) и насколько широк контейнер.

-webkit-column-width: 8em;
-webkit-column-gap: 1em;
-moz-column-width: 8em;
-moz-column-gap: 1em;

columnwidth

Число колонок

Свойство column-count определяет, на сколько колонок будет делиться текст. Ширина зависит от ширины контейнера, размера растояний между колонками и границами колонок.

-webkit-column-count: 2;
-webkit-column-gap: 1em;
-webkit-column-rule: 1px solid black;
-moz-column-count: 2;
-moz-column-gap: 1em;
-moz-column-rule: 1px solid black;

columncount

На почитать:

Знание различий между блочными и внутренними элементами

Блочный элемент в HTML это тег (например p, table, h1 или div) после котого идет обрыв. Блочные элементы имеют 5 свойств: height, width, margin, border и padding. Внутренний элемент, например span или anchor, не делает после себя обрыв и не так гибок при использование его как контейнера как блочный элемент. Блочный элемент не допустим внутри внутреннего элемента.

Мой вольный перевод с дополнениями вот это статьи

4.80 avg. rating (93% score) - 5 votes

45 комментариев

  • Охереть!!! Малаца. Атличный пост!

  • Очень интересно, спасибо 🙂

  • Сам верстаю в основном дивами, но иногда предпочтительнее смешанная верстка.

    • У меня пока не было таких случаев, когда дивы не справлялись.

  • Есть случаи редкие, когда несколько дивов проще заменить одной таблицей в 2-3 ячейки. Бывает иногда, редко, когда дивы в нескольких браузерах отображаются по разному.

  • Таблица в две-три ячейки это два-три дива. Если требуется жесткая горизонтальная привязка, див а в нем спаны с прописанными display:block.
    Самый гемор с отображением это в ие6. Я его даже спецом на линух установил, смотреть как все выглядит ))
    Под него надо либо долго мучится, искать варианты, либо не загонятся и сразу хак писать в шапке.
    P.S. Я тему под вп одну переводил для себя, там видал такую опцию в админке Crash if IE6 ))

  • Alex, я до последнего момента думал, что автор статьи именно вы и хотел было вставить ряд замечаний. Ну а так как это перевод, то, во-первых, большое спасибо! Статья отличная, дельная и написана профессионалом.

    Единственное замечание к вам с терминологией. Вы в тексте используете термины «встроенный» и «внутренний» (элемент) как синонимы (аналог англ. inline), однако, на мой взгляд, русскоязычному верстальщику более близок термин «строковый», и тогда четко становится ясно его предназначение и поведение.

    Ещё раз спасибо за труд! Начинающим верстальщикам и тем, кто хочет переквалифицироваться на верстку дивами эту статью стоит читать обязательно.

    • Devaka, ну, я вроде не старше тебя, давай может без офф обращенией типа вы? ))

      Вы в тексте используете термины “встроенный” и “внутренний” (элемент) как синонимы (аналог англ. inline), однако, на мой взгляд, русскоязычному верстальщику более близок термин “строковый”, и тогда четко становится ясно его предназначение и поведение.

      Ну наверно, но просто я обычно читаю доки в основном по енг, поэтому у меня inline более ассоциирован как вложенный, т.е. как элемент не имеющий своей жесткой привязки относительно документа.

      Ну а так как это перевод, то, во-первых, большое спасибо!

      Незачто. Спасибо норвежскому дяде по имени Geir Wavik, это он накропал такой труд. И хотя я почти все это знал, но разложил он все по полочкам + про семантику самому было интересно почитать.

      и хотел было вставить ряд замечаний.

      Вот зазря не стал. Очень было бы интересно узнать твое мнение.

  • Я уже долгое время работаю со стилями и еще неи разу не видел проблем с позиционированием относительно друг-друга. Вот таблицы спозиционировать — это адский труд.

  • Alex, подскажи работающую для IE замену min-width? Читал, пробовал, нифига под IE не тянет.
    Дело в том, что блоки при уменьшении браузера (разрешения) съезжают в IE, много чего перебробовал, но IE настолько херовый браузер.

    • Попробуй вот так:
      min-height: 580px;
      _height: auto !important;
      height: 580px;
      Это первое, что попалось в нете.

      • А хочешь в аську стукнись, попробуем придумать что-нить

  • Использование слоев — выгодно не только с точки зрения удобства использования, но и с точки зрения оптимизации, потому что поисковики слови лучше парсят, чем таблицы.

  • Los Pirata

    #wrapper {width:expression(((document.documentElement.clientWidth || document.body.clientWidth) < 1024) ? «1024px» : «100%»);}

  • Alex, ок, постучу позже ) Спасибо.
    Devaka, где-то читал, что из-за expression иногда подвисают браузеры, были придуманы альтернативные методы этому, но сколько я их не пробовал, IE 7, который у меня стоит для тестов, ничего нового не показывал.

    • Можно еще сделать некрасивым костылем вида

  • IE7 поддерживает min-width, также как и другие браузеры, а вот для шестого IE нужно делать условную вставку, иначе — никак.

  • <!--[if IE 6]>
    <style>
    
    </style>
    <![endif]-->
    
  • Я не профессиональный верстальщик, но уже знаю, как трудно закодить сложный дизайн, чтобы он смотрелся хорошо во всех браузерах. СПАСИБО огромное за статью, вы ГЕНИЙ!!! :))

    • )) Александр, спасибо конечно за комплименты, но это не я автор статьи, я просто перевел + немного отсебятины добавил. Так что, все плюшки не мне адресовывать))

  • в 6-ке иногда вообще Ж… бывает все поднастроить, а за статью спасибо! кое-что для себя взял!!! Хотя по первой так ломало от таблиц отказываться )))
    И вот, может кому пригодится тестер страниц в разл версиях ИЕ: my-debugbar.com/wiki/IETester/HomePage

  • Очень интересно! В частности о перспективах (html5 и css3)

  • Привет вам!
    Занимаюсь профессионально вёрсткой. Ну и делаю это на Windows. Как только узнал, пару лет назад, что это такое, начал верстать на div’ах, сами знаете почему. А именно большое значение придаёт css. Последнее время стал уделять активное внимание http://www.css3.info/preview/, и не уделять ie6-ie7. Пусть пишут, что кто не рассматривает во внимание старых ослов, тот плохой верстальщик, я так не считаю, и допускаю расхождения в картинках, например, когда даже хаки(http://www.nealgrosskopf.com/tech/thread.asp?pid=20) не справляются. А ещё проблему вызывают одинаково применимые хаки для оперы, сафари и хрома, в данном случае считаю проблему нужно исправлять сменив разработку, перерезать картинку или добавить лишний блок, чем пытаться для каждого браузера поправить.  Но зато учитываю разрешение 800*600. Тестю IETester’ом. До сих пор проблемы вызывает %-ое построение. По прочтению Ководства определённо считаю, что сайты должны быть только тянущимися. А если они построены по столбцовой вёрстке, например, блоги, шаблоны движков — всё это не должно глупо распределять весь контент по центру например экрана, а по краям оставлять огромное пустое место. Поясню, к примеру взять этот двухстолбцовый блог, в правой части, где «Схожие посты, О себе, Календарь, …» потом внизу куча пустого места, а статьи для чего-то стопорятся этим блоком и не используют всю дарованную ширину монитора.
    Кстати, Alex Volkov, считаю размер шрифта в комментах слишком мелким для читабельности этого шрифта, точнее #comments ol { font-size:12px; }, правильнее было бы задать в кеглях ’em’.
    Да, если мы хотим продвинуться в вёрстке нужно читать литературу, по моему обзору зарубежная только и содержит более менее свежие сведения, ну или читать в переводе, для более быстрого понимания значения слов, так как у нас всё же русский склад ума, к примеру, сейчас читаю «Мастерская CSS» Энди Бадда, всё просто и понятно было до прочтения, но подтверждение собственно найденных фактов радует, а ещё я искал ответ на вёрстку тремя колонками «Как?». В вашем блоге ответ «body { display: table; table-layout: fixed;} #menu, #content, #aSide { display: table-cell; }» не применял ещё, но думаю, он не всегда подойдёт, а для всех браузеров и не только для контента с текстом, а где картинки имеют свойства float:right; совсем не подойдёт. А CSS3 прекрасен конечно же, но ещё рановато для него, не совсем пришёл.
    При коммерческом построении порталов даю предпочтение единому дизайну на движках как для сайта joomla так и для форума phpbb3 крутой фирме http://www.rockettheme.com/

    У меня к вам, верстальщики, вопрос «Посоветуйте самую крутую книжку по CSS и вёрстке».
    Вёрстка не бывает совершенной.

    • Привет, NeoSHiNJi
      >>Ну и делаю это на Windows.
      Вот часто читаю, мол линукс он для разработчиков спецом сделан. Я на линуксе почти два года и не понимаю разницы, под какой системой открыт блокнот )) Ну не блокнот, ну там notepad++ или vim, разницы нет.
      >>внимание http://www.css3.info/preview/
      Да, хороший блог, у меня в ридере
      >>где «Схожие посты, О себе, Календарь, …» потом внизу куча пустого места, а статьи для чего-то стопорятся этим блоком и не используют всю дарованную ширину монитора.
      Есть предложение как растянуть див, в котором пост?
      >>В вашем блоге ответ «body { display: table; table-layout: fixed;} #menu, #content, #aSide { display: table-cell; }»
      Это псевдо-табличный вариант, имеет проблемы с совместимостью. В три колонки можно обтеканием сделать, либо заключить три дива в один, используя его как контейнер.
      >>У меня к вам, верстальщики, вопрос «Посоветуйте самую крутую книжку по CSS и вёрстке».
      Я лично считаю, что практика все-таки получше будет книжек.
      ПыСы. Респект тебе за такой комент, просто не мог не ответить. Вдвойне приятно, что мы земляки ))

  • Кстати:
    1) я тоже из Рязани;
    2) комменты выглядят всё таки тремя столбцами в первом левом краю находится аватарка, которую нельзя вставить и также огромное количество никому ненужного пустого места, а сам написаный пост крошечным шрифтом и по центру, ну что такое, а?
    3) раздражает пропуск под шапкой в 10px над блоком градиента.
    4) 1145 ошибок валидации SGML Parser’а на этой странице.

    • Все-все, не ругайся )) Лучше в асю стукнись, поболтаем ))

    • Мой html-tudy показывает 0 ошибок 0 предупреждений. По w3c 11 ошибок.

  • >>Есть предложение как растянуть див, в котором пост?
     
    Ну смотри текст же картинку обтекает, значит, сделать так можно.
    А если средствами css, то поэксперементировать с position: absolute; float: right; right: 10%;
    Идея в том чтобы правый столбец не учитывался в контейнере, а просто накладывался и обтекался. Всё же думаю это проблемно. Но я бы начал, с того, чтобы убрать его совсем правый, а потом добавить пробуя разные способы так, чтобы он стал обтекаем, возможно jquery нужно будет применить.
     
    Да можно вполне сделать, причём, сделай тянущимся сайт, то есть ширину в процентах, а то 1000px; для фулскринов ущербно.

    • >>Ну смотри текст же картинку обтекает, значит, сделать так можно.
      Картинка не в контейнере и структуру не создает, а если пост потянуть то все поедет. + тему не я делал, а в чужом коде очень нелюблю копаться.
      >>а то 1000px; для фулскринов ущербно.
      Ущербно на мобилах и нетбуках )) А так то нормально, читают ведь текст а не диз.

  • У меня в последней лисе 3.5.2 расширение HTML Validator по его стандарту и строил свою страничку-визитку.
     
    The errors and warnings are generated by a SGML Parser, the same parser used by the W3C validator. Language like HTML, SVG have DTD, definition file that describe the language syntax. When the parsed file does not respect the language, you have HTML errors.
     
    Сейчас 1195 ошибок и 3 предупреждения. А вот в CSS у тебя всего 8 ошибок, в основном случаи применения border-radius.

  • А беда у тебя. И потому что уровень проверки стоит самый низкий у тебя. Зайди в настройки(правой кнопкой по значку) этого валидатора, поставь алгоритм Serial, уровень доступности __ , и нажми кнопку выбрать, потом ОК.

    • Ага. Появились. Посмотрел что за ошибки, выключил его нафик ))
      Даже в строке доктайпа 2 ошибки ))

  • Правда глаза колит?))
     
    «Незнание законов, не освобождает от ответственности».
     
    http://neo.extreme.ryazan.ru/ с ним, без ошибок.
     
    ЛанДавай, пиши если что.

    • Да не, просто лень загонятся настолько вглубь

  • С точки зрения семантики – таблица – это элемент для представления табличных данных, он не оптимизирован для построения структуры.- В этом ты абсолютно прав.

  • Статья интересная, но честно говоря я много чего недопонял!!!  Как то в моем случае забавно получается, на пхп код пишу спокойно, а дизайнить не умею!!! Ребят скиньте позжалуйста на почту какие-нибудь материалы по азам верстке (и стилей если это к томуже клеют)

  • Могу порекомендовать «Мастерская CSS» Энди Бадд (в pdf бесплатно скачать можно).

  • Не убедило! Буду верстать таблицами, ибо нахер мне все эти тонкости, а про размер кода таблицами и дивами это ты зря, если взять во внимание css то с дивами в разы больше кода

    • vq25de, цсс загружается один раз и потом достается из кеша браузера. Таблицы прогружаются каждый раз по новому. Один из плюсов верстки дивами.

  • Спасибо Саша за статью!
    У меня похожая ситуация. Я верстаю только таблицами и в Dreamveawer-е. Понимаю что надо переходить на Дивы. Но не знаю языка. Подскажи где можно почитать или скинь пару книг. Нигде толком не описано.
     
    Спасибо

    • mrDobryj, незачто )) С наступившим! Бросай дримвивер, юзай блокнтоты для тренировки тегов и их параметров )
      Насчет книжек — лучшая теория это практика. Ну если стукнешь мне в асю, или отпишешь на мыло, то вышлю пару книжек, которые стоит почитать

  • Я думаю точку данной статьи, в вопросе «что хуже или лучше» поставят комментарии, и это факт. С моей точки зрения, верстка на дивах вылезла из толпы «чайников», начавших создавать сайты, по средством появления дешевого (доступного) интернета, с помощью всяких визордов, а так же по ходу убеждающих всех кого не лень в правильности подобного подхода и собственном профессионализме. Однако что бывает с такими «профессионалами» когда они столкнутся с не рядовой задачей…, которую не способна решить ни одна программа, ну или почти ни одна. Например, резиновая верстка…
    Да и вообще статистика говорит сама за себя.

    • тоже верно

  • Ни разу не верно, wmos.

    Я зарабатываю деньги более 5 лет вёрсткой на дивах, делал макеты и заграничным заказчикам.
    Дивы могут всё, а когда нужно пропорциональное выравнивание, есть такие свойства как display:table и display:table-cell.
    Таблицами же верстаются многостолбцовые и многострочные табличные данные, потому что удобнее.
    Но даже в этом случае есть большие проблемы с тем, что задав display:table-cell не получится использовать псевдоэлементы :before :after.

    Если по какой-то причине не верите мне, то взгляните на код макетов одной из лучших компаний мира: http://www.yootheme.com/demo/joomla

    Адаптивная(резиновая) же вёрстка, кстати разумеется тоже дивная, применяется в современных дизайнах в виде модулей галерей или бекграундов, ну или конечно для мобильных версий.

    О какой ещё статистике вы можете вести речь.

css.php