Библиотека Интернет Индустрии I2R.ru |
|||
|
От оформительских трюков к стандартам: путешествие дизайнераОт таблиц к стилям за пять простых шаговСЛОИ ЛЕТАЮЩИЕ И ПЛАВАЮЩИЕВместо того, чтобы представить верстку ALA, как страницу с контентом, справа от которого располагается слой с меню, Анонимный Донор #1 представил ее, как зеленую страницу, слева от которой располагается слой с контентом. Затем он применил редко используемое свойство "float", чтобы установить слой с контентом слева от меню:
#content { float: left; width: 67%; padding: 45px 10% 100px 15%; margin: 0 15px 0 0; border-right: 2px dotted black; border-bottom: 2px dotted black; } Замечу, что gif, используемый в качестве фона в черновой верстке был заменен на свойства границы (2px dotted black). Также замечу, что ширина была изменена с 75% до 67%. Вообще говоря, мы определили, что идеальная ширина должна быть еще меньше. При разрешениях 800х600 и ниже, область меню была недостаточно широкой. В результате пункты меню сползали в подвал страницы (картинка). Идеальная ширина, таким образом, была установлена в 52%. Не забудьте, 52% -- перед тем, как добавить поля и отступы. Вы можете пока выпить водички, а потом прочитать это еще раз. УМЕСТНЫЕ ВОПРОСЫ
То, что описано в одном небольшом разделе, я выяснял в течение четырнадцати часов. Вы можете идти нюхать клей. Как отойдете - перечитайте все с самого начала. СЛЕДИМ ЗА ТОЧНОСТЬЮИз того, что было мною сказано, вы могли сделать вывод, что я и мои анонимные помощники решили создать средствами CSS верстку, которая работала бы корректно только на несоответствующем стандарту, но куда как широко используемом IE5/Win. Не совсем. Анонимный Донор #1 использовал декларацию CSS-2, чтобы установить правильную ширину:
body#content { width: 52%; padding: 35px 5% 100px 10%; } Несмотря на то, что body# выглядит как масонский символ, он таковым не является; это селектор CSS-2. Netscape 6, и Opera 5 понимают синтакс CSS-2; IE5/Windows - нет, и поэтому его пропускает. IE5/Win следует правилу, которое распознает - фальшивой ширине в 67%. Более совместимые боузеры следуют т.н. правилу большей специфичности. Что это такое, вы спросите? ПРАВИЛО БОЛЬШЕЙ СПЕЦИФИЧНОСТИВ глобальной таблице стилей заявлено, что весь текст в на странице должен быть выведен шрифтом arial размером в 1em. Но параграфу определено отображаться шрифтом verdana размером .8em. Вы определили стиль для параграфа непосредственно, поэтому параграф будет выводиться именно так, а не наследовать стиль от . Если вы создадите специальный класс для параграфа - ну, например, "legalese" - и назначите ему размер в 10px, то большая специфичность выражениядаст вам шрифт в десять точек высотой, который мы все так любим. Более специфичное правило одерживает верх над менее специфичным. В причудливом мире CSS, слой с контентом, который содержится в тэге считается более специфичным, нежели слой с контентом, который объявлен сам по себе, даже если они объявлены совершенно одинаково. Умей IE5/Win читать синтакс CSS-2, как делают другие броузеры, наш бы трюк не прошел.
[От редактора: Что случилось, когда на сцене появилась бета-версия IE6? Скоро узнаете.]
ИСКЛЮЧАЕМ БРОУЗЕРЫ ЧЕТВЕРТЫХ ВЕРСИЙИтак, теперь у нас есть "резиновая" верстка, созданная исключительно в партикулярном CSS. Эта верстка будет корректно отображаться в CSS-совместимых броузерах, чего не скажешь о броузерах четвертых версий.И вот тут на сцене появляется Инициатива по Обновлению Броузеров. Тогда же у Анонимного Донора #2 появилась великолепная идея использовать внутренние фреймы (iframes), чтобы намекнуть пользователям устаревших броузеров о необходимости их обновления. К несчастью, последние версии XHTML не поддерживают iframe, поэтому мы решили заменить iframe на тэг OBJECT. К несчастью, текст внутри невидимого тэга OBJECT показывается в поддерживающих стандарты броузерах (в режиме эмуляции) и устройствах типа Lynx и Palm PilotsT. Поэтому мы добавили JavaScript, который скрывал содержание тэга OBJECT в этих броузерах. К несчастью, добавление JavaScript к тэгу OBJECT привело к тому, что IE5+/Windows стал скрывать заголовок страницы, а также время от времени выдавать фальшивый сигнал о нарушении безопасности (в зависимости от настроек). В итоге, Анонимный Донор #1 придумал еще одну дьявольскую (но полностью соответствующую стандартам) уловку, которая подойдет для любого броузера. Но тут мы сдались. Мы просто упаковали наше сообщение в незамысловатый тэг p, и использовали CSS, чтобы его скрыть.
p class="ahem" Как и почему это работает, объясняется на странице WaSP для разработчиков. ЗАЩИТИМ НЕВИННЫХНадо было принять еще одно решение: позволять ли пользователям четвертых версий видеть, как странно их броузеры воспринимают документ с нашими стилевыми таблицами. Мы решили их защитить. Для этого есть много способов, основные - определение типа броузера с помощью JavaScript и включения на стороне сервера. Но мы решили использовать HTML. А именно, вместо включения внешней таблицы стилей обычным образом:
link rel=StyleSheet href="/css/style.css" type="text/css" media=screen ... мы подключаем ее так: style type="text/css" media="all" @import "/nucss.css"; /style Версии, начиная с пятой, понимают этот метод. Четвертые - нет. Дети, попробуйте это дома. Используя метод @import с двойными кавычками, вы защищаете старые броузеры от самих себя и можете свободно использовать CSS так, как его следует использовать. Скажем так, теперь у вас есть полная свобода использовать стандарты Web в соответствии со спецификацией, не отвлекаясь на постоянный поиск обходных решений и компромиссов. Для тех, кто делает сайты, иначе, как революцией, это не назовешь. ОП-ПА...Еще раньше по ходу пьесы мы выяснили, что IE4.5/Macintosh поддерживает метод URL/import. К тому же, как ни странно, он корректно понимает блочную модель. Но он не поддерживает селекторы CSS-2.
Таким образом, IE4.5/Mac отображает декларацию
И финальный аккорд. После того, как ALA подвергся смене оформления с помощью методов, описанных выше, публике была представлена бета-версия IE6/Windows. Как IE5/Mac, она поддерживает переключение режимов с помощью DOCTYPE. Как IE5/Mac, Opera 5 и броузеры Gecko, она корректно понимает блочную модель. Но, в отличие от этих броузеров, она не распознает селекторы CSS-2. В результате, в точности как IE4.5/Mac, бета-версия IE6 проделывает виртуозную работу по отображению неверной декларации. Броузер <прав>, а вот разметка - нет.
К счастью, нам удалось решить эту проблему в ALA № 100, который
использует упрощенную таблицу стилей и <упаковочный> слой, соединяющий все части воедино в любом CSS-совместимом броузере.
Подробности смотрите в заметках к № 100.
7 апреля мы переделали верстку номера 99 (в том числе и статью, которую вы сейчас читаете), согласно обновленной таблице стилей и шаблону, дабы избежать проблем с бета-версией IE6 и IE4.5/Mac. Мы обновили также текст данной статьи. Почему? Да потому, что мы вас любим.
Основные выводы этих дискуссий были собраны участником по имени Eric Costello. В том
числе, мы обсуждали плюсы и минусы <взлома> блочной модели,
созданного Tantek Celik, ведущим разработчиком IE5/Mac и соавтором CSS-2 и CSS-3. Не волнуйтесь, этот трюк гораздо проще, чем кажется на первый взгляд.
Приемы CSS, которые использует ALA начиная с номера № 100 базируются на различных подходах и они корректно работают в бета-версии IE6, IE5/Win, IE5.5/Win, IE5/Mac, Mozilla, Konqueror, Netscape 6, и Opera 5.
Тому, кто оценивает Web исключительно критериями графического дизайна, придется несколько расширить свой кругозор, но взамен он получит больший контроль и гибкость в управлении разметкой.
Возможно, вы начнете помогать нам закатывать камень на гору уже сейчас. Возможно вы предпочтете наблюдать со стороны за развитием событий. Но, вне зависимости от того, выберете вы место на сцене или в зрительном зале, сейчас самое время начать изучать, как работают эти стандарты и прикидывать, какую пользу они могут принести вашим сайтам.
Даже если вы решите проводить эксперименты с CSS и прочими стандартами в офф-лайне или для избранной аудитории, начинайте эти эксперименты сейчас. Потому что скоро, очень скоро весь Web будет основываться на этих принципах. Потому что, вне всяких сомнений, так строить сайты лучше, удобнее и проще.
Разумеется, если вы не желаете изучать CSS и прочие стандарты Web - при ресторанах MacDonald's есть отличные курсы менеджмента.
Увидимся на баррикадах.
Джеффри Зельдман (Jeffrey Zeldman), A List Apart |
|
2000-2008 г. Все авторские права соблюдены. |
|