20-й розділ
Сага CSS

Цей документ є перекладом статті " The CSS saga". Оригінальна версія документу знаходиться тільки на сайті W3C http://www.w3.org/Style/LieBos2e/history/
Цей переклад НЕ є офіційним документом W3C.
Всі Авторські Права Належать W3C.
Цей документ може містить помилки перекладу та похибки.
Автор: Скрипець Євген, засновник SSL (всі переклади автора: en, ru, uk )
Локальна копія: http://www.indeep76.com/Style/LieBos2e/history/

Це розділ 20 книги Cascading Style Sheets, designing for the Web, яку написа Хаукам Лі та Берт Бос (2nd edition, 1999, Addison Wesley, ISBN 0-201-59625-3)

Сага CSS почалася в 1994 році. Один з авторів книги працює в CERN, колиски веба, а веб-сервер починає використовуватися як платформа для електронних публікацій. Але одна вирішальна частина платформи упущена: немає способу оформляти документи стилями. Наприклад, для веб-сторінки не можна задати верстку як в газеті. Працюючи над «газетними» презентаціями, що персоналізуються, в Медіа-лабораторії MIT, Хаукам відчув необхідність в мові таблиць стилів для веба.

Таблиці стилів в браузерах не були абсолютно новою ідеєю. Розділення структури документа і її уявлення була метою HTML, починаючи із створення мови в 1990 році. Тім Бернерс-лі написав свій браузер-редактор NEXT так, щоб уявлення визначалося простій таблицею стилів. Але він не документував синтаксис для стилів, вважаючи, що це справа кожного браузера, як краще показувати сторінки своїм користувачам. Інші браузери, включаючи Viola Пий Вія (1992 рік) і Harmony (1993 рік) ( Система HYPER-G була одним з конкурентів в ранньому вебі.) для системи HYPER-G мали схожі мови стилів.

Але, замість більш просунутих таблиць стилів, браузери, що виходили далі, пропонували користувачам менше і менше можливостей впливати на стиль. У 1993 році вийшов NCSA Mosaic — браузер, що зробив мережу популярною. Проте відносно стилів це був крок назад — користувачам дозволялося тільки міняти кольори і шрифти.

Тим часом, автори веб-сторінок скаржилися, що у них недостатньо впливу на вигляд сторінок. Одне з перших питань від авторів-новачків в Мережі, був «як міняти шрифти і кольори елементів?» У HTML на той час такої можливості не було, і до кращого. Ось уривок повідомлення, посланого в список розсилки www-talk на початку 1994 року, що відображає напруженість між авторами і розробниками:

(Повідомлення доступне з www-talk архіву.)

Фактично, увесь минулий рік джерелом постійного захоплення було безперестанно говорити майже армаді людей, які хотіли (приготуйтеся, зараз буде!) контролювати те, як документи виглядають, з тією ж легкістю, як це робиться в TEX, Microsoft Word і будь-якому іншому поширеному середовищу редагування тексту: «Пробачите, тут ви обмежені».

Автор повідомлення — Марк Андрєєссен, один з програмістів NCSA Mosaic. Пізніше він став засновником Netscape, і тоді його погляди на форматування (якщо вони колись були його поглядами) помінялися. 13 жовтня 1994 року Марк Андрєєссен повідомив в www-talk про те, що перша бета-версія Mozilla (те, що пізніше стало Netscape Navigator) доступна для тестування. Серед нових тегов, які підтримував новий браузер, був center і інші теги, які з'явилися незабаром.

За три дні до того, як Netscape повідомив про вихід браузера, Хаукам опублікував першу чернетку Каскадних таблиць стилів HTML. Дейв Раггетт (головний архітектор HTML 3.0) сприяв виходу чернетки до прийдешньої конференції «Mosaic and the Web» (Конференція «Mosaic and the Web» проходила 17-20 жовтня 1995 року). Це була друга конференція з тих, що пізніше стали Серією конференцій WWW. ) у Чікаго. Dave had realized that HTML would and should never turn into a page description language and that a more purpose-built mechanism was needed to satisfy requirements from authors. Although the first version of the document was immature, it provided a useful basis for discussion.

Серед людей, що відгукнулися на першу чернетку CSS, був Берт Бос, співавтор цієї книги. У той час він робив Argo (Браузер Argo був частиною проекту по забезпеченню доступності Інтернету ученим-гуманітаріям. Він включав плагини (там вони називалися аплетами) до того, як вони з'явилися в Netscape.), браузер, що добре настроюється, з таблицями стилів, і він вирішив об'єднати зусилля з Хаукамом. Обидва з двох чернеток не схожі на сучасні CSS, але не так складно дізнатися первинні принципи.

Однією з можливостей мови стилів Argo було те, що він був достатньо загальним, щоб застосовуватися до інших мов розмітки крім HTML. Це також стало і метою розробки CSS, і з назви специфікації незабаром вилучили «HTML». Argo також мав інші особливі можливості, які не утілилися в CSS першого рівня: зокрема, селектори атрибутів і текст, що генерується. Обом можливостям довелося почекати CSS2.

«Каскадні таблиці стилів» не були у той час єдиною запропонованою мовою стилів. На червень 1993-го була мова Пий Вея з браузера Viola, і Роберт Райш з видавничого будинку OReilly написав інший, Потім ще був DSSSL, складна мова стилів і перетворень розробки ISO для друку документів SGML. Імовірно, DSSSL міг застосовуватися і до HTML. Але CSS включав одну можливість, що виділяла мову серед інших: він брав до уваги, що в Мережі стиль документа не міг бути розроблений одним автором або читачем, але їх бажання повинні якось поєднуватися, «каскадувати»; і на ділі враховуватися повинні не тільки бажання автора і читача, але і можливості пристрою відображення і браузера.

Як і планувалося, перша чернетка CSS була представлена на Веб-конференції в Чікаго у листопаді 1994-го. Презентація на Дні розробника викликала багато обговорень. По-перше, ідея поєднання переваг автора і користувача була нова. Вигаданий знімок екрану показував регулятор-повзунок з підписами «користувач» і «автор» на різних кінцях. Підстроюючи регулятор, користувач міг міняти об'єднання власних і авторських переваг. По-друге, CSS сприймався деякими як дуже простій для свого завдання. Вони стверджували, що для застосування стилів до документів потрібна потужність повноцінної мови програмування. CSS пішов по абсолютно іншому шляху, будучи простим декларативним форматом.

На наступній Конференциі WWW в квітні 1995 року CSS знову представлявся (WWW3, третя конференція, проходила 10-14 квітня 1995 року у Дармштадте (Німеччина)). Там були Берт і Хаукам (насправді, це була наша перша особиста зустріч), тоді ми також могли показати реалізації. Берт представив підтримку таблиць стилів в Argo, і Хаукам показав версію браузера Arena, який був змінений для підтримки CSS. Arena був написаний Дейвом Раггеттом як майданчик для випробування нових ідей, і однією з таких ідей були таблиці стилів. Те, що почалося з технічних презентацій, вилилося в політичні обговорення про баланс між автором і читачем. Представники сторони авторів стверджували, що автор винен цілком відповідати за представлення документів. Наприклад, мовилося, що можуть існувати правові вимоги на розмір застережливих позначок, і користувач не повинен бути здатний зменшити розмір шрифту для таких попереджень. Інша сторона, до якої належать автори цієї книги, стверджувала, що, якщо є суперечності, останнє слово повинне бути за користувачем, чиї очі і вуха кінець кінцем сприйматимуть уявлення.

За межами політичних битв продовжувалася технічна робота. У травні 1995-го був створений список розсилкиwww-style і обговорення у ньому часто впливали на розробку специфікації CSS. Три роки опісля в архіві було вже більше ніж 4000 повідомлень.

У 1995 році Консорциум WWW (W3C) також приступив до роботи. Компанії вступали в Консорціум високими темпами, і організація була зміцнена. Семінари на різні теми стали вдалим місцем зустрічей членів і співробітників W3C і обговорень технічних розробок. Тому було вирішено організувати інший семінар, присвячений таблицям стилів. Технічний персонал W3C, що працює над таблицями стилів (а саме, два автори цієї книги), тепер розташувався в Софії-Антиполісі на півдні Франції, де W3C відкрив європейське представництво. Південна Франция — не гірше місце, куди можна принадити учасників семінару, але, оскільки багато хто з можливих учасників був із США, семінар було вирішено провести в Парижі, який краще обслуговується міжнародними авіарейсами. Семінар також був експериментом для перевірки, чи можливо для W3C організувати події поза США. Дійсно, це виявилося можливим, і семінар став віхою в завоюванні таблицями стилів свого законного місця в Мережі. Серед учасників був Томас Рірдон з Microsoft, який поручився за підтримку CSS в подальших версіях Internet Explorer.

До кінця 1995-го W3C заснував HTML Editorial Review Board (HTML ERB) для затвердження майбутніх специфікацій HTML. Оскільки таблиці стилів були у сфері інтересів членів нової групи, специфікація CSS була узята в розробку з метою зробити її Рекомендацією. Членом HTML ERB був Лу Монтуллі з Netscape. Як тільки Microsoft повідомили про додавання в свій браузер підтримки CSS, було важливо також залучити Netscape. Інакше, з браузерамі, що підтримують різні специфікації, ми могли б бачити, як Мережа розходиться у різних напрямах. Битви усередині HTML ERB були тривалими і важкими, але CSS першого рівня остаточно з'явився як Рекомендациі W3C в грудні 1996 року.

У лютому 1997-х CSS отримали свою робочу групу в W3C, і була почата робота над можливостями, яких не було в CSS1. Група була очолена Крісом Лайллі, шотландцем з Манчестерського університету. CSS другого рівня стали Рекомендацією в травні 1998 року, і третій рівень, можливо, слідував в кінцю 1999-го. У той час на CSS для уявлення вважався не тільки HTML. Багато заснованих на XML формати також потребували CSS, і браузери, які вийшли в кінці 1998 року, продемонстрували перші, ще до деякої міри обмежені кроки до представлення даних XML.

Робоча група W3C, що офіційно називається, «Робоча група, по таблицях стилів і форматуючих властивостях», оскільки займається вона більш ніж просто CSS, включає близько 15 членів, представлених компаніями і організаціями, що входять в Консорціум. Вони проживають в різних куточках миру, так що «зустрічі» зазвичай проходять по телефону, приблизно по годині кожного тижня. Приблизно чотири рази на рік вони зустрічаються десь в світі. Останніми місцями збору були Прово, Редмонд, Сан-Франциско і Париж. У Парижі зустріч проходила в офісах EDF-GDF, французькій електричній і газовій компанії. На тих зборах групі запропонували прекрасний обід: французька кухня, що підноситься над Парижем і Сеной — один з небагатьох ефектних моментів в історії важкої праці технічної робочої групи. Кожен француз би позавидовал — зазвичай вони там нічого не отримують просто так від свого постачальника газу і електрики.

Браузери

Сага про CSS не буде повною без розділу про браузерах. Не будь розробленими для браузеров, CSS так і залишилися б піднесеним планом, що представляє тільки академічний інтерес. Першим комерційним браузером з підтримкою CSS був Microsoft Internet Explorer 3, що вийшов в серпні 1996 року. На той момент специфікація CSS1 ще не стала Рекомендацією W3C, і дебати в HTML ERB, повинні були привести до змін, які розробники з Microsoft на чолі з Крісом Уїлсоном не могли передбачати. IE3 надійно підтримує більшість властивостей кольору, фону, шрифту і тексту, але не реалізує велику частину блокової моделі.

Наступним браузером, що оголосив про підтримку, був Netscape Navigator 4-ої версії. Спочатку Netscape був скептично настроєний відносно таблиць стилів, і перша реалізація була млявою спробою зупинити заяви Microsoft про кращу сумісність із стандартами. Реалізація Netscape підтримує широкий спектр можливостей (наприклад, плаваючі елементи), але розробники не мали часу повністю перевірити всі можливості, які вони імовірно підтримують. У результаті, багато властивостей CSS не можуть використовуватися у 4-му Навігаторові.

На внутрішньому рівні Netscape реалізував CSS за допомогою перекладу стильових правил у фрагменти JavaScript, які далі виконувалися з іншими скриптами. Компанія також вирішила дозволити розробникам писати JSSS, пропускаючи власне CSS. Якби JSSS придбав популярність, Мережа отримала б одну зайву мову стилів. На щастя для CSS, це не утілилося в реальність.

Тим часом Microsoft продовжували намагатися повалити Netscape з трону пануючих браузерів. У Internet Explorer 4 двигун відображення (який, крім іншого, відповідав за обробку CSS) був замінений модулем з кодовою назвою «Trident». Trident усунув безліч обмежень IE3, але також привніс свої обмеження і помилки. IE4 не підтримує повністю CSS1 — це було відмічено Проектом веб-стандартов (WASP) в листопаді 1998 року, коли вони опублікували «Головні десять проблем IE» (малюнок 20.1).

Малюнок 20.1 Проект WASP відстежує відповідність браузерів Рекомендаціям W3C. Одним з їх перших оглядів була підтримка CSS в Microsoft Internet Explorer.

Screendump of WaSP page about M

На додаток до відображення статичних документів, Trident також здатний динамічно міняти стильові властивості. Наприклад, елементи можна анімувати за допомогою послідовної зміни їх властивостей top і left, таким чином створюючи «Динамічний HTML» (DHTML). В принципі, DHTML дуже схожий на JSSS (вони разом використовують скриптові мови для установки стильових властивостей), але DHTML ніколи не позиціонувався як альтернатива мові таблиць стилів. Насправді, CSS є невід'ємною частиною DHTML.

Третім браузером, що наважився на підтримку CSS, стала Opera. Браузер від невеликої норвезької компанії здобув популярність як маленький (він входить на дискету) і такий, що настроюється за підтримки більшості можливостей крупніших пропозицій від Microsoft і Netscape. Opera 3.5 вийшла в листопаді 1998 року і підтримує велику частину CSS1. Розробники Opera (а саме, Гєїр Іварсой) також знайшли час протестувати свою реалізацію до її випуску. Перевірочний набір CSS1, розроблений Еріком Мейером за допомогою незліченного числа інших добровольців, зробив для розробників перевірку і поліпшення продуктів значно простіше.

На момент написання цього тексту, Netscape і Microsoft також посилено працюють над виходом наступних браузеров. Netscape вирішив замінити движок відображення Навігатора на «nglayout», написаний на швидку руку з CSS як одна з основ. Їх новий браузер має кодове ім'я «Gecko», і ви можете завантажити бета-версиі http://www.mozilla.org. Microsoft випускає попередні версії Internet Explorer 5. Деякі поліпшення по частині CSS вже є, і очікується, що проект WASP нагадає компанії, що ще потрібно виконати деяку роботу для повної підтримки CSS1.

Веб-сайт цієї книги буде мати посилання на останні CSS-браузери.