Sideshow barker

Чому верстати таблицями безглуздо:

визначимо проблему, запропонуємо шляхи розв'язання

Таблиці було введено у HTML з єдиною метою: для відображення табличних даних. Та потім атрибут border="0" дозволив дизайнерам використовувати таблиці як сітку для розміщення зображень і тексту. Використання таблиць усе ще залишається домінуючим способом розмітки візуально-багатих веб-сайтів, проте воно суперечить розвиткові кращого, більш доступного, гнучкого і функціонального інтернет-простору. Тож знайдемо корінь проблеми та запропонуємо рішення по створенню проміжної або, взагалі, безтабличної розмітки.

Yuppie holding a cigar

Приведіть свого шефа

Чи є в аудиторії "великі начальники"? Можливо вони у Seybold,але зараз на іншій презентації? Приведіть їх. Саме їм необхідно знати, як веб-стандарти можуть заощадити кошти компанії.

Plumber with a toliet plunger

Огляд: що я з цього матиму?

Ми презентуємо Вам спосіб роботи, який

Також ми поговоримо про те, що розмітка із використанням каскадних таблиць стилів (CSS) вимагає трохи відмінного мислення про наповнення сторінки і про виділення, порівняно із способом, до якого ви звикли.

Man in a top hat, tuxedo, and white tie

Убивці веб-сайтів: вкладені таблиці і ґіфи-розпірки

Спочатку інтернет був засобом обміну інформацією між науковцями, дослідниками і військовими. Проте не багато часу знадобилося для того, щоб мрійники від середовища підприємців зрозуміли, що цей новий засіб є ідеальним для продажу всього: від свіжих продуктів і корму для собак, до потриманих автомобілів і репортажів про спортивні події.

Та як і у випадку із будь-яким засобом на стадії його дитинства, ранній інтернет був естетично "незрілим" (і не тільки в плані привабливості для споживачів)допоки Девід Зігель (David Siegel) видав свою визначну книгу, де запропонував деякі блискучі методи обходу наявних обмежень у браузерах і специфікаціях W3C приблизно 1997 року (уявіть, мова про другий і третій Netscape!).

Ті обхідні способи виявились на стільки чудовими, що вони і до тепер лишаються найбільш поширеними методами верстання веб-сайтів.

Mad scientist hatches his evil plot

Проблеми пов'язані з використанням таблиць:

Preacher testifying to the mortal danger of using tables for layout

Ключ до порядунку у ваших руках

Сучасні браузери набагато краще працюють із веб-стандартами, і ми більше вже не потребуємо використання тих застарілих методів.

Замість використання вкладених таблиць і заповнення порожніх комірок ґіф-розпірками, ми можемо використовувати значно простішу розмітку і CSS для верстання чудових сайтів які будуть швидшими при завантаженні, простішими при переробках дизаюну і доступнішими для усіх.

Boxer exhausted between rounds of a fight

Рішення: CSS і структурна розмітка

Завдяки використанню структурної розмітки в HTML-документах і каскадних таблицях стилів (CSS), ми можемо відділити фактичний зміст нашої сторінки від способу її представлення.

У цьому є де-кілька переваг над табличним способом верстання...

Film director shouting at his crew

Переробки дизайну стають простішими і менш витратними

Із видаленням теґів оформлення, переробка дизайну вже існуючих сторінок та зміна їх наповнення стають значно менш працеємними (та значно менш витратними). Усе що Вам потрібно зробити для переоформлення сайту - замінити/змінити файл CSS; самі файли сторінок вам більше не потрібно редагувати взагалі.

Наприклад, подивіться сайт CSS Zen Garden, або спробуйте перемикачі стилів на сайті Еріка Мейєра (Eric Meyer). За більш докладною інформацією зверніться до сайту Альтернативні стилі Поля Соудена (Paul Sowden).

Reporter grilling a lawmaker about his website

За трафік доводиться платити

Додержання веб-стандартів зменшує розмір ваших сторінок через те, що користувачі не мають щоразу завантажувати код оформлення для кожної відкритої сторінки. Таблиці стилів, які відповідають за оформлення, зберігаються у кеші браузера.

Завдяки зменшеному розмірові файлів, сторінки швидше завантажуються та зменшуються витрати на хостинг.

Sweating orchestra conductor

Гей, усі ці сторінки схожі одна на одну!

Також використання веб-стандартів робить надзвичайно простим дотримання однакового стилю оформлення усіх сторінок сайту. Коли усі сторінки використовують для оформлення той самий документ CSS, вони форматуються однаково.

Це акцентує увагу на вашому бренді і робить сайт більш зручним для користувачів.

Cowboy talking about the importance of accessibility

Напиши раз, використовуй завжди і для всіх

Дотримання веб-стандартів робить ваші сторінки набагато більш доступними для користувачів із вадами та тих, хто використовує для доступу в інтернет мобільні телефони та КПК.

Користувачам, які застосовують програми для читання з екрану монітору (як і тим, хто має повільне підключення) не потрібно продиратись крізь численні комірки таблиць та ґіф-розпірки, щоб добратись власне до вмісту сторінки.

Іншими словами відокремлення вмісту сторінок від коду оформлення робить Ваш сайт незалежним від типу пристрою, на якому його переглядатимуть.

Woman freaking out because her markup is ruining her SEO

Google сліпий

Згадавши про доступність слід додати те, що мінімізація коду оформлення та використання тегів заголовків мають покращити Ваші позиції у рейтингах пошукових систем.

Зменшивши коефіцієнт відношення кількості коду до кількості наповнення, використавши ключові слова у тегах заголовків і замінивши зображення заголовків відповідним текстом, можна розраховувати на покращення позицій Вашого сайту у рейтингах пошукових систем.

Construction worker committed to using his old tools

Але Ви можете використовувати таблиці якщо Вам це потрібно, головне не робити цього надмірно

Це надасть можливість відвідувачам сайтів (і босам) які обмежуватимуть себе використанням четвертої версії браузерів до дня своєї смерті, бачити приблизно те саме, що вже стало нормою для решти світу.

Overconfident yuppie not worried about his code

Ось приємна на вигляд таблиця

Lorem ipsum dolor sit amet, consectetuer adipiscing elit.Sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper.
Suscipit lobortis nisl ut aliquip ex ea commodo consequat.Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.
At vero eros et accumsan et iusto odio dignissim qui blandit
Praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
Qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.Diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
Epsum factorial non deposit quid pro quo hic escorol.
Olypian quantels et gomilla congolium sic ad nauseum. Souvlaki ignitus carborundum e pluribus unum. Defacto lingo est igpay atinlay.
Eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed.
Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore.
Bellboy struggling

Що ж насправді ховається за приємною зовнішністю

Насправді це можна було б зробити значно простіше.Здогадайтесь який об'єм коду знадобився для створення цієї маленької таблички? 13.7 Кб. Тут 17 рядків і 9 колонок. І це ще я не казав про усі ті ґіфи-розпірки.
Тут надто багато табличних комірок і розпірок.А всі виділені крапками списки реалізовані за допомогою атрибуту background (тло комірки), які не є валідними (сторінка не пройде валідацію w3c).
Вкладена таблиця? Навіщо?
Для списку міченого крапками? Правда ж це жарт?
Аналогічного результату можна досягти використанням усього 8 комірок і 4-х CSS інструкцій.Серйозно. Вісім комірок і чотири CSS інструкції. Це все, що потрібно.
О, ні! Ще одна таблиця прикидається крапковим списком.
Невже не можна розмітити точковий список як точковий список, а решту лишити CSS?
Вам потрібна лише одна інструкція для <table>, одна для <td>, одна для <ul> і одна для <li>.Все! Зробіть лише це і Вам немає ціни!
Це краще ніж використовувати 8 зайвих комірок таблиці щоб зробити несправжній крапковий список, який до того ж є менш доступним для різних пристроїв і переглядачів вебу.
Нарешті! Останній пункт несправжнього списку.

Код, потрібний для структурування таблиці:

table{ margin:3px; padding:2px; border:solid 2px blue }

td{ padding:2px; border-style: solid; border-width: 1px; border-color:gray gray silver silver }

Man telephoning his co-worker in a panic

Тепер на багато краще

На багато кращеВгадайте, який об'єм коду знадобився для створення цієї маленької таблички? 2,1 Кб. Тут 4 рядки і 2 колонки. І жодної ґіф-розпірки.
Саме такТа усі ці виділені крапками списки, реалізовані за допомогою CSS, є абсолютно валідними.
  • Тепер це пункт списку
  • Зроблений у спосіб, у який він мав бути зробленим
Усе це реалізовано з допомогою восьми комірок таблиці і чотирьох інструкцій CSS.Серйозно. 8 комірок і 4 CSS інструкції. Це все, що потрібно.
  • Ура, список промаркований крапками
  • Чому не маркувати списки саме як списки, а решту не залишити CSS?
Вам потрібна одна CSS-інструкція для <table>, одна для <td>, одна для <ul> і одна для <li>.Все! Ми це зробили і нам немає ціни.
  • Я люблю списки!
  • Чудово! Справжній список!

А ось CSS-код, який було застосовано для розмітки попередньої таблиці:

table{ border-bottom:1px dotted fuchsia; border-left:1px dotted fuchsia }

td{ padding:11px 20px 20px 11px; border-top:1px dotted fuchsia; border-right:1px dotted fuchsia }

ul { margin-top:10px; margin-bottom:10px; margin-left:0; padding-left:1em }

li{ margin-bottom:10px }

Policeman signaling for us to stop and think

Підсумок по перехідному дизайну

Використовуйте поля (margin) і відступи (padding) замість ґіф-розпірок.

Використовуйте із стилями link та @import. Перше - для старих браузерів, друге - для сучасних.

<link href="basic.css" rel="stylesheet" type="text/css">

<style type="text/css" media="screen"><!--
@import url(modern.css) screen;
--></style>

Приклади сторінок із перехідним дизайном:

Чекайте, тут є більше:

Знайдіть більше інформації по перехідному дизайну в першому розділі книги Ерік Мейєр (Eric Meyer) про CSS, а ще більше у книзі Джефрі Зельдмана (Jeffrey Zeldman), Дизайн згідно веб-стандартів.

Young coder realizing that he does not need to use tables for layout

Верстання за допомогою CSS: майбутнє вже тут

Браузери, використовувані абсолютною більшістю загалу користувачів, забезпечують добру підтримку CSS. Кожен з них має свої дивацтва, проте звикнувши до них, можна легко їх обійти.

Оформелння за допомогою CSS - справа абсолютно не складна, навіть для такого як я, який думає що більшість скриптів на JavaScript нагадує нецензурну лексику.

if(links[x].length > 0);{
for (y=0; y<links[x].length; y++) {

Кожна CSS інструкція складається із селектору (selector) та опису (declaration). Описи, у свою чергу, утворені властивостями (property) і їх значеннями (value). Назви властивостей складаються із двох слів, які пишуться через дефіс.

body {margin:0; padding:0}

.related {float:right; width: 15em; margin-left:1em; margin-bottom:1em; color:blue}

#footer {color:gray; font-size:0.6em; line-height: 1.2em; background-color:white; margin:0}

Superhero flying to our rescue

Структурна розмітка: кодуй так, як думаєш; думай так, як кодуєш

Писати на CSS дуже просто, проте ця справа вимагає мислити про розмітку трохи інакше, ніж багато хто звик.

Замість мислення на зразок "це має бути тут, а це має бути тут", при роботі над макетом розмітки сторінки ми маємо думати про різновид інформації та про її структуру.

Найважливіші заголовки ми асоціюємо із теґом <h1>; підзаголовки - <h2>, і т.п.; параграфи при цьому асоціюємо із тегом параграфу.

Ось що розуміємо, коли кажемо про "структурну" або "семантичну" розмітку.

Замість того, щоб вставляти текстове наповнення у середину комірок таблиці, загорніть його в елементи div. Призначте Вашим div-елементам id або class які відповідатимуть їх змісту та/або функції, але не зовнішньому вигляду.

Chef preparing tag soup

Уникайте поганої і примітивної розмітки

Подумайте, чому ви хочете щоб щось виглядало саме так; що це для Вас означає? Ваша розмітка може і повинна передавати зміст навіть тим, хто не може бачити вашої сторінки. Семантична розмітка робить ваші сторінки доступнішими для усіх, навіть для пошукових систем.

Коли Ви виділяєте текст курсивом, Ви хочете закцентувати увагу на певному слові, <em>, чи це назва книги, <cite>?

Коли щось виділено жирним (bold), у розмітці напевно це має бути виділино тегами <strong>.

Якщо Ви збираєтесь щось відділити вільним проміжком, ймовірно це має бути елемент "шапки". Якщо це не шапка сторінки, можливо це частина класу, який трапляється скрізь на сайті? Якщо це так, використовуйте CSS замість теґу <br>.

.foo {display:block}

Щоб дізнатися більше, читайте Bed and BReakfast markup (B&BR) by Tantek Çelik.

Evil villain mocking us

Те, з чим таблиці впораються краще за CSS

З певними речима CSS не уміє поратись так само вправно, як те можуть таблиці.

Наприклад Ви маєте бічне меню чорного кольору, яке має тягнутись по усій висоті наповнення сторінки. Використавши табличне верстання досягти потрібного результату дуже просто. Потрібно лише прописати чорний колір тла у потрібному <td> теґу.

Ми можемо зробити те саме з допомогою CSS, але це вимагатиме відмінного способу мислення.

Якщо ви пропишете чорний колір тла для теґу div нашого меню, чорний колір буде лише там, де колонка меню заповнена текстом. Вміст більшості сторінок довший за бічне меню, тому цей спосіб не є досить вдалим.

Крім того ми можемо викласти чорними ґіфками тло розділу (div) з основним наповненням і надати цьому розділові достатнього відступу зліва. Проте якщо меню виявиться довшим за основний розділ з наповненням, цей спосіб теж не буде працювати.

Інший спосіб вирішення проблеми - викласти чорними ґіфками тло нашого <body>, Це гарний спосіб, проте Ви не зможете використати інший малюнок у якості тла для <body>.

Або ми можемо огорнути основний розділ в "обгортковий" div та вимостити ґіфками його тло. Проте це додасть несемантичного забарвлення нашій розмітці.

І, звичайно, замощення тла ґіфками взагалі не буде працювати, якщо Ви бажаєте щоб ширина Вашого меню була змінною.

Як ми вже казали, є речі з якими таблиці впораються краще за CSS. Проте, запитайте себе, чи вартий цього увесь той баґаж помилок і невідповідностей, який неминуче потягне за собою використання таблиць?

Friendly mailman

Мігруючи від табличних хаків до веб-стандартів: загальна картина

Перше, Вам потрібно визначитись із стратегією міграції. Ви збираєтесь мігрувати перевівши увесь сайт повністю за раз, чи збираєтесь це робити поступово, секція за секцією?

Визначте секції і сторінки, перевівши які на веб-стандарт Ви одержите максимум вигоди. Домашні сторінки, оголошення про нову продукцію і схожі сторінки - це те, з чого природно починати.

Визначте типи наповнення/інформації, присутні на Вашому сайті:

Surgeon in the operating room

Розбиваємо Ваші сторінки

Якщо Ви вже виявили яких типів наповнення існує на Вашому сайті, тепер самий час проаналізувати існуючі сторінки на предмет виявлення логічних блоків-розділів наповнення.

Проаналізуйте табличну структуру сторінки з метою виявлення вкладених таблиць, пустих комірок, використаних для утворення відступів і рамок (Ми хочемо замінити їх на div-теґи, або на значно простішу табличну структуру.

Passive aggressive maid

Погляньмо на Вашу розмітку

Після аналізу структури Ваших сторінок, прийшов час визначити елементи HTML-розмітки, які можуть бути замінені на розмітку структурну.

Fireman rescuing content

Замінюєм теґи оформлення на структурну розмітку

Ви можете використати "знайти і замінити" (і регулярні вирази), проте простіше буде відкрити сторінку у браузері і шляхом копіювання і вставки перенести текст у Ваш редактор HTML.

Думайте про структуру документу! Простої заміни теґів <b> на <strong> не достатньо.

Де найважливіший заголовок? Позначте його теґом <h1> tag. Підзаголовки позначте теґами <h2> і так далі. Позначте параграфи теґами <p>. Оформте Ваші меню у вигляді списків..

Виберіть DOCTYPE і дотримуйтесь його. (Ми рекомендуємо використовувати перехідний XHTML, якщо Ви не із міцних горішків, тоді використовуйте суворий XHTML.)

Clown

Розділіть сторінку на логічні розділи, використавши теґи div

Розташуйте Ваше головне меню у div-розділ з id назва якого mainnav; розташуйте підменю всередині div-розділу, id або class якого subnav; розташуйте Ваш підвал в <div id="footer">, а наповнення (контент) вкладіть у <div id="content">.

Це може здаватися незвичним, проте відколи Ви почнете додавати CSS-правила, справи швидко покращаться.

Two superheroes

Час почати писати Ваш CSS

Спочатку зробіть межу кожного div-розділу видимою. Наприклад, div {border:1px dotted gray; padding:.5em} Це допоможе Вам бачити де розділи починаються і де закінчуються, а також чи є, чи не має вкладених розділів.

Спочатку напишіть Ваш CSS для елементарних селекторів (<html>, <body>, <p>, <h1>, <h2>, <ul>, <li>, і т.п.)

Використовуйте контекстні та наслідувані селектори завжди, коли можна. Це зробить розмітку більш чистою. Наприклад, #subnav li{border:1px solid black; padding:.5em; display: inline} спрацює лише зі списками "list", які знаходяться в середині розділу div головного меню.

Перевіряйте відображення розмітки в усіх браузерах, де лише є можливість і дайте перевірити друзям у їх браузерах.

Paparazzi

Приклади сайтів, оформлених за допомогою CSS

Newsboy selling newspapers

Прочитайте все по темі

Природно, що ми не можемо охопити всього, що Вам потрібно знати про розробку з CSS, вклавшись у годину, та наступні книжки зможуть помогти Вам легшими, чистішими і швидшими.

Painter at his easel

Книжки? Нам не потрібні гори паперу: сайти в студію!

CSS-дискусії

zeldman.com Щоденний звіт: цікаві, провокуючі до мислення і у гарному стилі написані тексти з посиланнями, що публікуються регулярно.

A List Apart для людей, які верстають веб-сайти

Проект "Веб-стандарти" Дякую Богові за цих людей.

Підручник CSS "A guide for the unglued" Містить чудову сторінку посилань.

Техніка верстання з CSS: приємне з корисним Приклади розмітки від Еріка Костелло (Eric Costello), які Ви можете використовувати. Також джерела і приклади використання.

Справжній всесвітній стиль CSS верстання, види, трюки і способи від Марка Ньюхауза (Mark Newhouse).

Ділова вигода від веб-стандартів Добра новина для "людей у дорогих костюмах". До презентацій стандартів у цьому вигляді прислухаються MBA.

Worker asleep at his computer

Дякуємо за увагу. Питання є?

; Scott Design Inc

; Adobe Systems Incorporated

Не будьте до нас суворими!

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

Якщо Вами були помічені неточності в українському перекладі, будь-ласка пишіть!

Автори українського перекладу: Пемахов Сергій, Пемахова Марина.

International Versions

We're going global! If this isn't your native language, check out our translations page. If you'd like to translate this into your native tongue, .

Creative Commons LicenseThis work is licensed under a Creative Commons License.

>
Scott Design