Май 2010

Самоучитель по креативному веб-дизайну. Книга 2, стр.41

Глава 5. XHTML и новые тенденции 265





зрап=»2″>Верхний

зрап=»2″>Нижний



Помимо рекомендации использовать правила каскадных списков стилей для задания формата разделов таблиц спецификация HTML указывает, что Web-брау — зеры в будущем получат возможность пролистывать содержимое таблицы, нахо — дящееся между неподвижными верхним и нижним колонтитулами. Более того, браузеры также смогут визуализировать верхний и нижний колонтитулы соответ —

ственно над и под телом таблицы, занимающей несколько ^УеЫстраниц. К сожа — лению, на момент написания книги эти возможности не поддерживалась ни в Netscape Navigator, ни в Internet Explorer.

И в качестве заключения нужно отметить, что не следует путать ячейки заго- ловка таблицы (определенные с помощью дескрипторов ) с разделом колон — титула таблицы. Таблица может одновременно содержать и ячейки заголовка, и

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

под верхним колонтитулом вставьте в тело таблицы дескр 4ПТОРЫ

. (Каждый набор дескрипторов thx/th > добавляет столбец заголов —

ка в строку, в которой он указан.) Если строка ячеек заголовка определена как первая строка тела таблицы, для создания таблицы с заголовками, находящими —

ся под верхним колонтитулом, как показано на рис. 5.10, можнс)) воспользоваться

следующим правилом списка стилей:

th {text-align:center; background:white}



Внедрение шрифтов на XHTML-страницу с помощью правил каскадных списков стилей

При создании XHTML-страниц при описании их внешнего вид^ в Web-браузерах все большая и большая роль будет отводиться каскадным спискам стилей. Факти-

чески, дескриптор, долго использовавшийся для задания внешнего вида тек —

ста, считается устаревшим в спецификациях HTML 4.01 и XHTMLj 1.0 и отсутствует

266 Глава 5. XHTML и новые тенденции





в спецификации XHTML 1.1. К счастью, каскадные списки стилей содержат свой —

ство font-family, которое можно использовать вместо дескриптора для за-

дания типа шрифта существующих HTML-страниц и создаваемых XHTML-страниц.

Свойство font-family каскадных списков стилей позволяет указывать Web — браузеру, каким типом шрифта должен выводится данный конкретный текст. На- пример, для вывода на экран заголовка уровня 2 шрифтом Comic Sans MS можно воспользоваться следующим правилом списка стилей:

Самоучитель по креативному веб-дизайну. Книга 2, стр.42





h2 {font-family: «comic sans ms»)

IS

При использовании свойства font-family в списке стилей для выбора типа шрифта вы предполагаете, что выбранный вами шрифт присутствует в системе посетителя. Если же выбранный шрифт отсутствует, Web-браузер для вывода тек — ста на экран будет использовать шрифт по умолчанию (указанный в параметрах настройки Web-браузера). Для решения этой проблемы каскадный список стилей дает возможность браузеру выгрузить шрифт, используемый для заголовка уровня

2 с Web-сервера, если тип шрифта, указанный в правиле списка стилей в системе посетителя отсутствует. Несмотря на то что такая возможность появилась срав — нительно недавно, она позволяет создавать страницы, использующие нестандарт — ные (пользовательские) шрифты, которые могут выводиться в Web-браузерах пос —

ле выгрузки с Web-сервера. Как результат, Web-страницу можно разрабатывать с

полной уверенностью, что посетители увидят текст, выведенный именно тем шрифтом, который вы выбрали (а не шрифтом по умолчанию).

Следует иметь в виду, что Web-браузер должен загружать внедренные шрифты вместе с другими элементами Web-страницы (например, графическими изображе —

ниями, анимацией и т. д.). Более того, некоторые Web-браузеры требуют, чтобы файлы шрифтов имели определенный формат или в противном случае они загру- жаться не будут. Так, например, браузер Internet Explorer загружает только шриф —

Самоучитель по креативному веб-дизайну. Книга 2, стр.43

ты, хранящиеся в файлах в формате EOT (Embedded Object Type). (Получить под — робную информацию по формату EOT и выгрузить бесплатно распространяемую утилиту для создания и сохранения шрифтов для Internet Explorer можно на страни —

це ПО адресу http://www. microsoft. cora/typography/web/6mbedding/weft2/). Бра — узер Netscape Navigator, в свою очередь, позволяет загружать шрифты, хранящие —

ся в фалах в формате PFR (Portable Font Resource), разработанном компанией Bitstream Inc. (Подробную информацию по генерации шрифтов, загружаемых в Netscape Navigator, МОЖНО наЙТИ ПО адресу http://devedge. netscape. com/.)



ПРАКТИКУМ

Для загрузки шрифта с помощью XHTML-документа укажите соответствующий шрифт в объявлении @font-face списка стилей, как показано в следующем коде:





@font-face {font-family:»newgeneva»;

srciurl(http://www. MyServer/com/fonts/geneva1,eot)}



Глава 5. XHTML и новые тенденции 267





Объявление @font-face заставляет Web-браузер выгрузить фа

ределенный в свойстве font-family (в приведенном примере

шрифта, оп-

то шрифт New

Geneva) по Web-адресу, указанному в свойстве sr c * .MyServer. com/

fonts/genevai. eot). Для форматирования теста, использующе о загружаемый

шрифт, необходимо указать имя шрифта в правиле списка стилей точно так же,

как и для любого другого шрифта. Например, следующий список

стилей говорит

Web-браузеру использовать шрифт New Geneva для вывода на экран текста абзаца:



@font-fасе {font-family: «new geneva»;

src:url(http://www. MyServer/com/fonts/geneval. eot)}

p {font-family:»new geneva» , courier;

color-.blue}



В приведенном примере первая строка в списке стилей указывает Web-браузе-

ру загрузить файл genevai. eo t с каталога шрифтов Web-сервера

www. MyServer. com. Web-браузер загружает указанный файл и

HI а сайте http:/ /

присваивает ему

имя new geneva. Следующий оператор говорит о том, что полученный шрифт

должен использоваться для форматирования текста абзаца (т. е. текста, который

следует за дескриптором ). Если Web-браузер не может или

не будет загру —

жать файл шрифта (заданный в объявлении @font-face), он будет использовать альтернативный шрифт (если таковой указан), содержащийся в определении пра — вила каскадного списка стилей (в приведенном примере это шрифт Courier).

Если недоступен ни основной, ни альтернативный шрифты, дпя вывода текста

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

Web-браузер сохраняет файлы шрифтов (в приведенном примере это файл

genevai. eot) в каталоге временных Internet-файлов браузера на компьютере по —

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

го при последующих посещениях страница загружается быстрее,

Следует иметь в виду, что нельзя просто скопировать файл

в форматах EOT

и PFR в каталог шрифтов вашего компьютера и начать их использовать при со —

здании Web-страниц. Шрифты, как и любая другая интеллект ность, защищаются авторскими правами. Каждый созданны

альная собствен —

вами файл EOT

или PFR (или заказанный у третьего лица) содержит встроенн> ю модель защиты,

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

и на Web-стран и —

:оздания шрифта

вы пользуетесь WEFT, можно указать, что данный шрифт мо кет использовать —

СЯ ТОЛЬКО на Страницах Web-Сайта http: / /www. YourDomain. сот. ЕСЛИ ДРУГОЙ

автор Web-сайтов внедрит тот же шрифт для стран и

www. HisDomain. com, Web-браузер обнаружит, что корневой катал

/www. HisDomain. com) не соответствует корневому каталогу стр; файле Шрифта (http://www. YourDomain. com). Как результат вывода на экран содержимого страницы будет использовать

нию (а не шрифт, защищенный авторскими правами).

сайта http://

Г СТраНИЦ (http : / иц, указанному в Web-браузер для

лрифт по умолча —

26 8 Глава 5. XHTML и новые тенденции



Вставка одной XHTML-страницы в другую

с помощью внутритекстового фрейма

Для одновременного вывода на экран нескольких Web-страниц используются фреймы. В главе 1 было рассказано, каким образом создаются фреймы с помо —

щью дескрипторов и. При разделении окна Web-браузера на несколько частей (т. е. фреймов) с помощью дескриптора браузер в каждом фрейме может выводить разные Web-страницы. Затем при неподвижных фреймах посетитель имеет возможность независимо пролистывать содержимое

Самоучитель по креативному веб-дизайну. Книга 2, стр.44

каждой Web-страницы и просматривать их содержимое, которое полностью не помещается во фрейме.

В прошлом фреймы представляли большею проблему для Web-дизайнеров.

Часть проблемы заключалось в том, что часто авторы просто не знали, каким, об —

разом правильно написать код фрейма. Тем не менее, даже при правильном на — писании кода многие браузеры не поддерживают Web-страницы с фреймами, по —

этому Web-дизайнерам приходилось создавать два комплекта страниц: с фреймами и без фреймов. К счастью, спецификация XHTML представляет собой следующий шаг на пути развития HTML, переходя от языка форматирования

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

В будущем правила каскадных списков стилей, форматирующие и позициони — рующие содержимое Web-страниц, позволят разработчикам Web-браузера сосре- доточить свое внимание на обработке более сложных структур (в частности, фреймов). Освобождая авторов от необходимости создания двух комплектов стра — ниц (с фреймами и без оных) при написании страниц с фреймами, скорее всего, XHTML-страницы с фреймами станут более распространенными, чем HTML — страницы с фреймами. Кроме того, Web-браузеры, совместимые с XHTML, будут поддерживать внутритекстовый дескриптор фреймов (

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

Предположим, например, что необходимо имитировать «пролистываемую таб —

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

Самоучитель по креативному веб-дизайну. Книга 2, стр.45



Web-страницы до составной «таблицы» —>

!— Таблица «верхнего колонтитула» >



trXtd colspan=»7″ class=»header»>Отработанные часЦ — 01/09/2003 —

30/09/2003

 nHBTCP

4TnTHToro



«таблица» во внутритекстовом фрейме —>



«нижнего колонтитула» —>



trXtd class=»footer»>© NVBizNet. com (702) -361-0141


Самоучитель по креативному веб-дизайну. Книга 2, стр.46

равным «left». • 1 Ц Предположим, например, что имеется неупорядоченный список (т. е. список с маркерами) названий рецептов и необходимо, чтобы при щелчке посетителем на

названии рецепта справа от него выводилось изображение «готового» блюда. Для

создания такой Web-страницы можно написать код следующего вида:





Обратите внимание, что каждый элемент в маркированном списке представ — ляет собой гиперссылку, атрибут target которой заставляет Web-браузер выво-

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

А теперь предположим, что необходимо, чтобы во внутритекстовом фрейме под списком рецептов выводились инструкции по приготовлению. (Поместив

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

Инструкции во фрейме под списком рецептов должны содержать описание опера- ций, которые необходимо выполнить, чтобы приготовить блюдо, фотография кото —

рого СОДерЖИТСЯ В ДРУГОМ Внутритекстовом фрейме («FoodPictureFrame») Справа ОТ списка рецептов. Таким образом, при щедчке посетителем на ссылке в списке рецептов Web-браузер должен одновременно обновить содержимое двух фреймов: фрейма с фотографией блюда и фрейма с описанием рецепта.



ПРАКТИКУМ

Для одновременного изменения содержимого обоих фреймов необходимо доба — вить в каждый дескриптор короткий JavaScript-код. (Подробное описание

JavaScript можно найти в главе 8. Тем не менее, вам не потребуется изучать всю главу для написания короткого кода для этого совета.) При щелчке на гиперс —

сылке посетитель вызывает событие onclick гиперссылки. В дескрипторе гипер —

Глава 5. XHTML и новые тенденции 27 3





ссылки указывается, что при щелчке на ней Web-браузер д0л

выполнить

одно или несколько JavaScript-операторов. Таким образом, для

одновременного

изменения содержимого в двух внутритекстовых фреймах можнф следующим об —

разом изменить ранее приведенный код:



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

avaScript-onepa — нутритекстовый

фрейм «RecipeFrame» (описанный в дескрипторе в нижней

части страни —

цы). Например, при нажатии первой гиперссылки, «тушеное

о по-американ —

ски», генерируется событие onclick, определенное в дескриптфе

ЭТОЙ ГИ-

пересылки. Web-браузер выполняет JavaScript-оператор, связан

ый с событием

onclick, который приводит к загрузке во внутритекстовый фрейм

RecipeFrame»

страницы RoastRecipe. htm. После выполнения JavaScript-операт ора браузер заг —

ружает Web-страницу, заданную в атрибуте href дескриптора во внутритекстовый фрейм, имя которого указано в

(«FoodPictureFrame»).

(RoastPic. htm)

рибуте targe t

Таким образом, в приведенном примере загружаются две Web-страницы: пер —

вая указана в атрибуте гиперссылки, а вторая в JavaScript-onepaTре (вызываемом

по событию onclick дескриптора ). Несмотря на то что JavaS cript-сценарий в

приведенном выше коде загружает лишь одну страницу, допус

ается загружать

одновременно несколько страниц, поместив в строку после атрирут*

onClic k ДО —

полнительные операторы. При этом выполняемые браузером оп фаторы должны

разделяться точкой с запятой (;), как показано в следующем фрагм нте кода:



onClick=»window. InlineFrameName. location=f WebPageURL’

window. InlineFrameName. location= ‘ WebPageURL’ ;

window. InlineFrameName. location= ‘ WebPageURL’ ; »



В каЖДОМ ИЗ ЭТИХ трех Операторов InlineFrameName ДОЛЖНО



быть заменено

именем внутритекстового фрейма, в который Web-браузер должен загрузить Web —

страницу, адрес которой должен быть указан вместо WebPageURL.

27 4 Глава 5. XHTML и новые тенденции



Изменение внешнего вида XHTML-страницы на основе типа целевой системы

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

Самоучитель по креативному веб-дизайну. Книга 2, стр.47

манных компьютеров и других устройств. Для вас, как Web-дизайнеров, это несколько усложняет работу, поскольку каждый тип устройства отличается физи-

ческими размерами, формой и методом взаимодействия с устройством при на — хождении в сети Web. Поэтому при создании Web-страницы, содержимое кото- рой предназначено для просмотра посетителями, пользующимися как

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

Например, статья на Web-странице с заголовком размером 36 пунктов и ос — новным текстом размером 18 пунктов может вполне нормально смотреться на

17-дюймовом мониторе компьютера, но при просмотре той же страницы на кар — манном компьютере (например, Palm Pilot или Handspring Visor) посетитель смо — жет увидеть только заголовок и. несколько предложений текста статьи*. Поскольку перелистывание страниц при просмотре отвлекает посетителя, желательно на од — ном экране поместить максимально возможный объем информации. Поэтому, при просмотре той же Web-страницы на карманном компьютере заголовки и ос — новной текст могут, например, выводится шрифтом размером 12 пунктов. Для

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

До появления каскадных списков стилей с их атрибутом media для вывода на

экран одного и того же содержимого различными стилями приходилось созда —

вать несколько страниц. Представьте себе, сколько времени и усилий требовалось для создания и сопровождения нескольких копий каждой Web-страницы на большом сайте новостей, обновление которого выполняется сотни (а, возможно,

и тысячи раз в день). Не говоря уже о загрузке Web-сервера, которому необходи- мо дополнительное время на определение типа используемого посетителем уст — ройства для выбора и передаче браузеру нужной Web-страницы.



ПРАКТИКУМ

К счастью, каскадные списки стилей позволяют писать правила, которые указы — вают браузерам посетителей, каким образом форматировать содержимое страни — цы в зависимости от используемого типа устройства. Например, для вывода заго — ловков Web-страницы шрифтом размером 36 пунктов, а ее содержимого

Самоучитель по креативному веб-дизайну. Книга 2, стр.48

шрифтом размером 18 пунктов на экране монитора настольного компьютера, и

Глава 5. XHTML и новые тенденции 27 5





вывода содержимого той же Web-страницы шрифтом размером 12 пунктов на эк — ране карманного компьютера, на Web-странице можно указать следующие списки стилей:





Обратите внимание, что каждый из двух списков стилей в приведенном при —

мере содержит атрибут media. Описание типа устройства, присвоенное атрибуту

media в первом списке, равно «screen», а во втором — «handheld». Это означает, что Web-браузер будет использовать правила первого списка только в случае, если браузер выполняется на устройстве (например, компьютере), в котором со —

держимое страницы будет выводиться на экране монитора («screen»). Аналогич- но, если браузер выполнятся на карманном устройстве (например, PocketPC), он знает, что тип его устройства равен «handheld» и к содержимому страницы будут применяться правила второго списка стилей.

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

онная система Palm OS поддерживает только HTML 3.2, а Web-браузеры мобиль —

ных телефонов используют язык разметки для карманных устройств (Handheld

Device Markup Language, HDML), язык разметки для беспроводных систем

(Wireless Markup Language, WML) или весьма ограниченный порнабор HTML.

Тем не менее, ожидаемый в скором времени модульный язык XFJTML (XHTML

1.1), если он будет принят, позволит разработчикам создавать браузеры, поддер — живающие поднаборы XHTML, необходимые для вывода на экран содержимого в зависимости от типа устройства. Фактически, консорциум W3C выпустил

Самоучитель по креативному веб-дизайну. Книга 2, стр.49

XHTML Basic в декабре 200Q гЬда, прекрасно понимания необходимости поддер — жки дифференциации содержимого в зависимости от типа используемого уст — ройства. Убрав из XHTML дескрипторы, физически не поддерживаемые мобиль —

ными телефонами, карманными устройствами, пейджерами и компьютерными

приставками к телевизору, консорциум W3C предоставил разработчикам уменьшен — ную версию DTD-определения, которая может быть внедрена в браузеры этих уст — ройств. (Чем меньше DTD-определение, тем меньше памяти требуется браузеру и меньше системных ресурсов требуется для выполнения приложения браузера.)

Как правило, карманные устройства не подключаются в сеть Internet напря — мую. Карманное устройство подключается к прокси-серверу, который получает Web-страницы с Web-сервера и передает их отфильтрованные версии для вывода

276 Глава 5. XHTML и новые тенденции





на карманное устройство. Прокси-серверы, которые в настоящее время использу —

ют устаревшие версии HTML, вскоре перейдут на XHTML и станут более «ин — теллектуальными». Помимо простой фильтрации и передачи HTML-кода карман — ным устройствам (как это они делают сейчас), прокси-серверы будут загружать

требуемые списки стилей (на основе типа устройства, данные для которого они передают) и перед передачей содержимого Web-страницы применять к нему пра — вила списков стилей. Таким образом, несмотря на то, что Web-браузер мобиль- ного телефона может не поддерживать XHTML или каскадных списков стилей,

Самоучитель по креативному веб-дизайну. Книга 2, стр.50

прокси-сервер будет передавать содержимое, совместимое с Web-браузером мо —

бильного телефона. Включая сейчас описатель типа устройства, вы подготовите

ваши Web-страницы для вывода на экранах карманных устройств.

Каскадные списки стилей уровня 1 поддерживают всего два описателя типа: «screen» и «print» , а каскадные списки стилей уровня 2 — десять типов (см.

таблицу 5.2), которые указывают тип устройства, ддя которых предназначается

XHTML-содержиМое.

Интересно, что в стандарте каскадных списков стилей уровня 2 говорится,

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

не менее, авторы Web-страниц не должны полагаться на описатели типов уст — ройств, которые пока еще не определены в стандарте каскадных списков стилей. Из этого следует: регулярно проверяйте последние версии стандарта, поскольку перечень поддерживаемых устройств будет постоянно расширяться.





Глава 5. XHTML и новые тенденции 27 7





воспользоваться правилом @media. Например, можно написать правила для кар —

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



Обратите внимание, что каждое правило @media содержит указание типа уст —

ройства (или устройств, разделенные запятыми), для которого с|>но должно при-

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

которых равен «screen») будут применять два правила списков стилей из первого

правила @media, а прокси-серверы для Web-браузеров, работающих в карманных устройствах, будут применять два правила списков стилей из второго правила

@med±a.

Вместо внедрения списков стилей (особенно списков стиле}|, предназначен — ных для определенного типа, устройств) можно воспользоваться ссылкой на фай —

лы, внешние по отношению к Web-странице. С помощью команды @import,

синтаксис которой показан в следующем примере, можно уменьшить количество загружаемого браузером кода:



@import (стилей>)



Предположим, например, что в предыдущем’ примере правила каскадных

СПИСКОВ СТИЛеЙ Содержатся В ДВУХ ВНеШНИХ файла х (SmailDisplay. cs s И

NormaiDispiay. css) на Web-сервере в каталоге /stylesheets. Если включить

приведенный ниже код в HTML-код Web-страницы, браузер посетителя загрузит

файл внешнего списка стилей, в котором содержатся правил^ для устройства, поддерживаемого браузером:



@import (/StyleSheets/NormalDisplay. ess) screen, print;

@import (/StyleSheets/SmallDisplay. ess) handheld;

Таким образом, прокси-сервер для браузеров, выполняющихся на мобильных

телефонах, будут загружать файл SmailDisplay. css, в то время как браузеры компьютеров будут загружать файл NormaiDispiay. css, поскольку они не под —

держивают тип «handheld». Обратите внимание, что если карманное устройство (например, PDA) позволяет распечатывать содержимое Web-страницы, его про — кси-сервер загрузит оба файла списков стилей.

278 Глава 5. XHTML и новые тенденции



Управление печатью XHTML-страницы Web-браузером

Если ваша Web-страница имеет большую длину, и вы предполагаете, что посе — титель захочет распечатать страницу, можно воспользоваться правилом каскадно —

го списка стилей для разбития содержимого Web-страницы при печати на от — дельные страницы. Для Web-страницы, просматриваемой на экране, не

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



Полезные ссылки
Случайные записи
  • 27.08.2011">Коротаем вечер.
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.48
  • 24.11.2012">Как я покупал авиабилеты на 711.ua
  • 25.02.2011">Руководство по actionscript. часть 6, стр. 102
  • 04.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.9
  • 13.11.2011">Делаем iPad в Фотошопе
  • 02.09.2010">Тенденции развития веб-дизайна.
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.102
  • 19.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.9
  • 02.03.2011">Руководство по actionscript. часть 5, стр. 092
  • 16.03.2011">Руководство по actionscript. часть 3, стр. 013
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.38
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 042
  • 07.03.2011">Руководство по actionscript. часть 4, стр. 122
  • 15.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.41
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...