Наступило время, когда планшетные персональные компьютеры и коммуникаторы плотно вошли в нашу жизнь и продолжают с фантастической скоростью набирать популярность среди пользователей с каждым днём все больше и больше. Но работать с сайтами, где ссылки тонкие и рассчитаны на курсор-указатель "мыши" для стационарного ПК или ноутбука, с планшета или коммуникатора абсолютно неудобно. Нам нужно сделать красиво, удобно и так, чтобы существующий шаблон (если сайт уже есть) не особо пострадал.
Итак, постановка задачи:
- без глобальных доработок сделать удобную работу со старым или новым сайтом на планшетном и обычном ПК, коммуникаторе;
- постараться обеспечить максимальную кросс-браузерность (в основном, для IE)
Приступим к решению и реализации...
Возьмем некий простой пример содержания страницы:
1 | <body> |
в браузере (IE и других) выглядеть он будет так:
Теперь сделаем стиль для шаблона (CSS-файл) и подключим его в разделе <head> нашей страницы.
Содержимое CSS-файла:
Кладем в папку CSS под именем style.css и подключаем внутри тега <head> на странице:
Смотрим на результат в Google Chrome:
Вроде все работает. Теперь открываем ту же страницу в IE 8.0:
И видим, что никаких теней и закругленных углов нет...
И мы продолжаем наш тернистый путь к кросс-браузерности...
На помощь нам приходят несколько модулей JS:
Ввиду того, что ссылка на плагин "jQuery plugin text-shadow" нерабочая, выкладываю здесь авторский оригинал кода библиотеки textshadow без изменений:
Загружаем необходимые для работы файлы по ссылкам и распределяем их по папкам:
В конечном итоге получаем:
js/PIE/
js/jquery.textshadow.js
Я не буду здесь подробно останавливаться на способах подключения и применения API этих модулей (по ссылкам все можно подробно прочитать), а просто приведу свой код (как я сделал):
Кратко по коду:
В итоге, все элементы содержащие свойства стиля CSS3 (text-shadow,border-radius,box-shadow,linear-gradient) будут преобразованы этими JS-модулями к виду, понятному IE для правильного отображения.
Конечный результат в IE 8.0 после загрузки первоначальной страницы с новым содержанием раздела <head> и первоначальным содержанием <body> (в CSS-файле - изменения не требуются):
И приближенный вариант изображения (в IE 8.0):
Реальный размер в IE 8.0 ("кликните" по изображению для увеличения):
Здесь еще много чего можно и НУЖНО дорабатывать, но основную суть, думаю, мне удалось донести до вас.
Всем огромное Спасибо за внимание.
Теперь сделаем стиль для шаблона (CSS-файл) и подключим его в разделе <head> нашей страницы.
Содержимое CSS-файла:
1 | body{ |
1 | <!DOCTYPE html> |
Смотрим на результат в Google Chrome:
Вроде все работает. Теперь открываем ту же страницу в IE 8.0:
И видим, что никаких теней и закругленных углов нет...
И мы продолжаем наш тернистый путь к кросс-браузерности...
На помощь нам приходят несколько модулей JS:
- PIE: http://css3pie.com
- jQuery plugin text-shadow: код приведён ниже
Ввиду того, что ссылка на плагин "jQuery plugin text-shadow" нерабочая, выкладываю здесь авторский оригинал кода библиотеки textshadow без изменений:
1 | /* Created by Martin Hintzmann 2008 martin [a] hintzmann.dk |
Загружаем необходимые для работы файлы по ссылкам и распределяем их по папкам:
- Извлекаем из архива PIE-######.zip папку PIE-###### и переименовываем её в просто PIE (для удобства дальнейшего обновления);
- Cоздаём папку js на одном уровне с файлом статьи;
- Помещаем папку PIE внутрь папки js;
- Файл jquery.textshadow.js помещаем в корень папки js
В конечном итоге получаем:
js/PIE/
js/jquery.textshadow.js
Я не буду здесь подробно останавливаться на способах подключения и применения API этих модулей (по ссылкам все можно подробно прочитать), а просто приведу свой код (как я сделал):
1 | <head> |
Кратко по коду:
- Подключаем jQuery;
- Если IE - загружаем библиотеки для поддержки отображения CSS3 стилей в IE.
- В момент загрузки страницы, если это IE - перебираем все элементы и, если у них заданы известные для этих библиотек стили отображения CSS3, применяем нужные функции от нужных библиотек.
В итоге, все элементы содержащие свойства стиля CSS3 (text-shadow,border-radius,box-shadow,linear-gradient) будут преобразованы этими JS-модулями к виду, понятному IE для правильного отображения.
Конечный результат в IE 8.0 после загрузки первоначальной страницы с новым содержанием раздела <head> и первоначальным содержанием <body> (в CSS-файле - изменения не требуются):
И приближенный вариант изображения (в IE 8.0):
Реальный размер в IE 8.0 ("кликните" по изображению для увеличения):
Здесь еще много чего можно и НУЖНО дорабатывать, но основную суть, думаю, мне удалось донести до вас.
Всем огромное Спасибо за внимание.