Определяне на стар браузър css. CSS - Префикси на браузъра

В тази статия ще разгледаме какви са префиксите на браузъра, причините за появата им и как да ги използвате в CSS.

Какво представляват префиксите?

Уеб разработчик, който започва да усвоява теоретичните основи на CSS и използвайки тези знания на практика, може да срещне проблеми при разглеждане на примери от реалния свят. Това може да му причини липса на разбиране за случващото се и да обезкуражи по-нататъшното желание да изучава тази технология.

Например, когато разглеждате стиловете на уебсайт, уеб програмист може да срещне свойства, които съдържат някои неясни думи отпред: -webkit-, -moz-, -ms- и т.н.

   * (-webkit-box-оразмеряване: border-box; -moz-box-оразмеряване: border-box; оразмеряване на кутия: border-box;)

Какво е това? Всъщност всичко е просто, тези неясни думи са префикси на следните браузъри:

  • -webkit-: браузъри Chrome, Safari, Opera;
  • -moz-: браузър Mozilla Firefox;
  • -ms-: Браузър на Internet Explorer.

По този начин, ако името на свойството е с префикс, това означава, че това свойство е реализирано и ще се използва изключително в посочения браузър. Всички останали браузъри ще игнорират това свойство. за тях този префикс е неизвестен.

Причини за появата на префикси?

Имаше много причини за появата на префикси:

  • За включване в браузъра на експериментални CSS свойства, които все още не са одобрени от стандарта. Така производителите на браузъри тестват и правят предложения, преди да одобрят CSS свойствата в стандарта.
  • За решаване на проблеми с крос-браузъра.
  • За да създадете свои собствени свойства, които не са част от стандарта CSS, но след известно време могат да се появят в него.

Когато експерименталното свойство е одобрено в стандарта и премине тестване в браузъра, префиксът обикновено се премахва от него.

Как да използвате префикси?

Разгледайте следния код като пример:

   * (-webkit-box-оразмеряване: border-box; -moz-box-оразмеряване: border-box; оразмеряване на кутия: border-box;)

Този код използва CSS свойства, които променят алгоритъма за изчисляване на ширината и височината за всички елементи на уеб страница. Първото CSS свойство -webkit-box-оразмеряване със стойност на border-box е предназначено за браузъри, които използват webkit (Safari) или мигащ двигател (Chrome, Opera, Yandex.Browser). Второто свойство на CSS -moz-box-оразмеряване със стойност на border-box е предназначено за браузъри, използващи двигателя Gecko (Mozilla Firefox). Последната CSS собственост е предназначена за браузъри, в които това свойство вече е тествано и внедрено в съответствие със стандарта.

Когато използвате префикси за CSS свойства, не забравяйте, че те трябва да бъдат поставени пред свойството CSS без префикс. Защо това е толкова важно? Това е важно, защото ако веднъж оригиналното свойство (без префикс) се реализира в браузъра, то то ще бъде използвано (тъй като е последното), а не неговата експериментална версия.

Например: прилагане на свойство CSS към всички елементи на уеб страница във версия Google Chrome 40.

Фигурата по-горе показва, че оригиналното свойство за оразмеряване на кутията вече е вградено в този браузър и поради факта, че е последното, браузърът го използва вместо горното свойство -webkit-box-оразмеряване.

Как да проверите поддръжката за конкретен имот в браузър?

Сайт, на който можете да проверите дали тази собственост е реализиран или не в конкретен браузър, може да бъде връзката по-долу. Освен това сайтът показва процента на потребителите, които използват тази версия на браузъра.

  Уебсайт "Мога ли да използвам ..."

Например: проверете как се преобразува свойството трансформация в браузъри.

На уебсайта на CanIUse браузърите са маркирани в различни цветове, в зависимост от състоянието, в което се намира поддръжката за определени свойства или тагове:

  • Червеният правоъгълник е браузър, в който тази собственост не е реализирана;
  • Зелен правоъгълник с тире в горния десен ъгъл е браузър, в който това свойство се използва чрез префикс;
  • Светлозелен правоъгълник е браузър, в който това свойство е частично внедрено;
  • Зеленият правоъгълник е браузърът, в който това свойство се реализира в съответствие със стандарта.

Както знаете, не всички браузъри третират файловете за стил css по един и същи начин. По принцип възникват проблеми със стари версии за създаване на малки мащаби Интернет изследовател  (Версия 7 и по-долу). Между другото, ако проблемът се появи в съвременните браузъри (като Opera, Mozilla Firefox, Chrome), тогава аз силно препоръчвам преразглеждане на оформлението на страницата.

Така че тук. Има проблем с браузърите. И знам поне три начина за решаване на този проблем.

1-ви метод. Най-правилното

Стиловете за браузърите, които не разбират правилно вашия css, се записват в отделен файл. Обикновено този браузър, както казах, е Интернет изследовател, и тези файлове се извикват fix-ie.css

... ... ...

промяна теми за именакъм истинското име на вашата тема - и когато отворите Интернет изследовател  версия 7 и по-нова версия - този файл ще бъде добавен към общия набор от стилови файлове и дори кеширан, ако кеширането е активирано.

Този ред отговаря за версията на браузъра, към която ще бъде свързан таблицата със стилове:

где styles.css - файл, который будет отвечать за стили только для IE .

Единственный известный на данный момент способ написать стили только для Google Chrome , используя при этом JavaScript . При этом не нужно знать JS , достаточно взять пример отсюда и адаптировать его под свои нужды.

Суть состоит в том, что мы проверяем, каким браузером пользуется посетитель сайта и если это Google Chrome , то подключаем для него дополнительный файл стилей, в котором нужные свойства, которые могут перекрываться в основном файле стилей, выделяем !important .

раздел, добавляем такие строчки, внутри тега ):

var isChrome = !!window.chrome && !!window.chrome.webstore; if (isChrome) { var $ = document; var cssId = "myCss"; var head = $.getElementsByTagName("head"); var link = $.createElement("link"); link.id = cssId; link.rel = "stylesheet"; link.type = "text/css"; link.href = "/css/template.css"; //путь к файлу стилей только для Chrome link.media = "all"; head.appendChild(link); }

Единственный известный на данный момент способ написать стили только для Opera , используя при этом JavaScript . При этом не нужно знать JS , достаточно взять пример отсюда и адаптировать его под свои нужды.

Суть состоит в том, что мы проверяем, каким браузером пользуется посетитель сайта и если это Opera , то подключаем для него дополнительный файл стилей, в котором нужные свойства, которые могут перекрываться в основном файле стилей, выделяем !important .

Синтаксис такой(в файле.php или.html , куда подключаем файл стилей,т.е. в раздел, добавляем такие строчки, внутри тега ):

var isOpera = !!window.opera || /opera|opr/i.test(navigator.userAgent); if (isOpera) { var $ = document; var cssId = "myCss"; var head = $.getElementsByTagName("head"); var link = $.createElement("link"); link.id = cssId; link.rel = "stylesheet"; link.type = "text/css"; link.href = "/css/template.css"; //путь к файлу стилей только для Opera link.media = "all"; head.appendChild(link); }

Единственное что вам тут нужно поменять это в 10 строчке путь до вашего файла стилей.

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

6.5K

Кроссбраузерность — это способность сайта корректно отображаться в различных браузерах. Ресурс должен работать одинаково во всех версиях обозревателей.

Особенно это важно в эпоху адаптивного веб-дизайна, когда на первый план выходит способность front-end адаптироваться к широкому диапазону различных устройств и при этом обеспечивать оптимальное качество просмотра.

Раньше дизайнер создавал макет дизайна в Photoshop , который затем переносился в HTML и CSS . На сегодняшний день технологические изменения заставляют переосмыслить эту концепцию. Мы больше не можем предсказать, какой браузер, разрешение или устройство будут использоваться для просмотра сайта. Ушли в прошлое те времена, когда большинство компьютеров использовало фиксированное разрешение 1024 на 768 пикселей, и можно было разрабатывать сайты со статическими размерами.

Современные браузеры полностью поддерживают HTML5 и CSS3 . Но один и тот же код HTML / CSS / JavaScript в старых браузерах интерпретируется по-разному, что приводит к «кроссбраузерной несовместимости » сайта. Особенно это касается старых версий Internet Explorer .

В данной статье мы рассмотрим текущую статистику по просмотрам веб-страниц, приведем перечень средств, которые помогают решать различные проблемы совместимости.

1. Текущая ситуация

Общемировая статистика за 2015 год показывает, что топ-14 используемых разрешений экрана находятся в диапазоне от 1920 на 1080 до 320 на 480 пикселей.

Хотя Windows 7 (31,20% ) до сих пор удерживает большую долю рынка, мобильные платформы начинают заменять традиционные, стационарные.

Взглянув на статистику за 2015 год по используемым браузерам, мы видим, что первое место принадлежит Chrome (все версии — 44,87% ), второе место — Firefox (все версии — 10,37% ), третье Internet Explorer 11 (6,84% ).

Ускоренные темпы выпуска новых версий Google Chrome и Firefox позволяют более эффективно разрабатывать проекты для этих платформ. Немного другая картина складывается для «плохого парня » Internet Explorer , потому что в Сети до сих пор можно найти его старые версии. А это приводит к возникновению проблем с кроссбраузерностью сайта.

Корпорация Microsoft остановила поддержку IE6 8 апреля 2014 года. И с 2016 года будет поддерживаться и получать обновления только самая последняя версия Internet Explorer . Это фактически означает, что в начале 2016 года была полностью прекращена поддержка IE7 и IE8 , независимо от операционной системы. IE9 будет поддерживаться только в Windows Vista , IE10 — только в Windows Server 2012 , IE11 — в Windows 7 и Windows 8.1 :



Как следствие, нужно прекратить разработку под IE6 и, а также под IE7 . Чтобы обосновать эту стратегию, можно привести несколько примеров решений известных компаний: Google прекратила поддержку IE8 в ноябре 2012 года, а IE9 — в октябре 2013 года.

Github больше не поддерживает IE 7 и 8 . Кроме этого часть функционала Twitter не работает в IE8 . И, наконец, популярный фреймворк не будет поддерживать IE8 , начиная с 4 версии .

Тем не менее, статистика использования может варьироваться в зависимости от региона: 6,11% пользователей в Китае в 2015 году по-прежнему просматривали страницы через IE8 . Если принять во внимание, что в Китае было около 724400000 интернет-пользователей, можно понять, что в этом году примерно 44200000 китайцев продолжают использовать IE8 .

Поэтому региональные рынки, специфические клиенты и требования отрасли могут существенно отличаться. Особенно это касается корпоративных и правительственных учреждений.

2. Проанализируйте свою аудиторию

Основной принцип здесь такой: чем выше требуемая кроссбраузерность, тем больше времени потребуется на разработку, что приводит к увеличению стоимости проекта. Чтобы принять взвешенное, экономически обоснованное решение, нужно задать себе следующие вопросы:

  • Какова ваша целевая аудитория?
  • На какой географический регион нужно настроить таргетинг?
  • Какие браузеры и устройства используют ваши посетители?
  • Существуют ли в компании или отрасли технические факторы, которые заставляют вас поддерживать конкретные версии старых браузеров?
  • Каковы с точки зрения электронной коммерции коэффициенты конверсии и рентабельности различных групп пользователей по версиям браузеров?

Ответив на эти вопросы с помощью статистических данных, например, из Google Analytics , можно получить объективную картину.

3. Проблемы в устаревших браузерах и различные подходы к разработке

Адаптивный веб-дизайн во многом зависит от медиа-запросов, с помощью которых изменяется CSS для различных разрешений экрана. Кроме этого современные сайты характеризуются использованием семантических элементов HTML5 (например,

,
Споделете това