Почему на разных компьютерах сайт отображается по разному

Обновлено: 02.07.2024

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

Откуда возникла такая проблема? Дело в том, что браузеры используют разные движки. Браузерный движок занимается загрузкой, обработкой, отображением и расчетами данных. И хоть сегодня существует большое количество различных браузеров, если мы их разложим по используемым движкам, то увидим, что этих движков не так и много, так как создание своего движка является очень трудоемкой задачей.

Основные движки:

  • Blink — принадлежит компании Google, имеет открытый исходный код, входит в состав проекта Chromium. Используют браузеры: Chrome, Opera, Яндекс.Браузер, Vivaldi и др. Над развитием этого движка работают многие крупные компании: Opera, Intel, IBM, Yandex, Vivaldi и другие.
  • WebKit — принадлежит компании Apple, имеет открытый исходный код, используется в браузере Safari. Именно этот движок c 2008 г. по 2013 г. использовала компания Google в своем браузере Chrome.
  • Gecko — принадлежит компании Mozilla, имеет открытый исходный код, используется в браузерах Firefox и Tor Browser.
  • EdgeHTML — принадлежит компании Microsoft, имеет закрытый исходный код, используется в браузере Edge. Пришел на смену движку Trident (использовался в Internet Explorer), с запуском Windows 10, и работает только на этой операционной системе. 15 января 2020 года Microsoft выпустило обновление для браузера Edge (Microsoft Edge 79 stable), в котором перешла на Chromium с браузерным движком Blink.

Примечание.
Последующие сравнения с браузером Edge справедливы для версий ниже 79.

Проблема различного отображения верстки заключена в том, что разные движки по-разному воспринимают и обрабатывают некоторые html-теги и css-стили, а также содержимое самих тегов. Например, браузер Edge подсвечивает все номера телефонов добавляет свои стили.

отображение телефонов в Chrome

отображение телефонов в Edge

В результате получаем номер телефона без добавления стилей:

исправление отображения телефонов в Edge

Подробнее о html и css расскажем ниже.

Как добиться одинакового отображения сайта в разных браузерах?

Разобравшись с понятием кроссбраузерной верстки, возникает вопрос: а как добиться корректного отображения верстки во всех этих браузерах? Откроем несколько секретов html-верстальщиков. =)

1. Использование префиксов

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

Производители браузеров называют несколько причин использования префиксов:

  • свойство написано для конкретного браузера, и оно не содержится в стандартном списке свойств;
  • свойство экспериментальное, еще находится в разработке;
  • свойство реализует частичный функционал.
  • -moz- используется в Firefox;
  • -ms- используется в Edge и Internet Explorer;
  • -webkit- используется в Safari, Chrome и браузерах на основе движков WebKit и Blink;
  • -o- — используется в старых версиях браузера Opera, работающего на движке Presto. С 2013 г. Opera перешла на движок Blink.

-webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap;

  • -webkit-flex-wrap — свойство для Chrome с 4 по 28 версии, Safari с 3.1 по 8 версии;
  • -ms-flex-wrap — свойство для Internet Explorer 10.

2. CSS-хаки

Это использование специальных свойств, понимаемых только определенными браузерами. Разберем пример css-хака, работающего только в Firefox. Создадим квадрат и закрасим его в красный цвет:

отображение в chrome без css-хака

отображение в edge без css-хака

А теперь добавим свойство, которое будет работать только в Firefox:

отображение в chrome с css-хаком

отображение в edge с css-хаком

3. Разделение стилей для браузеров

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

Пример для Internet Explorer 9:

Файл style-for-ie9.css подключится только в браузере Internet Explorer 9.

  • В основном для кроссбраузерной верстки используют префиксы, это увеличивает объем кода, но он остается быть валидным и понятным.
  • CSS-хаки являются нежелательным способом исправления ошибок. Использование их приводит к плохой читабельности кода, невалидности, некачественной поддержке в будущем.
  • Разделение стилей с помощью условных операторов используется для поддержки браузеров Internet Explorer.

Рассмотрим возникающие проблемы кроссбраузерности на небольшом примере.

Создадим html-документ и посмотрим отображение элементов и стилей в браузерах: Chrome, Firefox, Edge, Safari, Internet Explorer 9/11. В документе создадим две горизонтальные линии, поле для ввода текста, кнопку и ссылку.

Посмотрим в браузерах:

отображение в chrome

отображение в edge

отображение в firefox

отображение в safari

Internet Explorer 9:

отображение в internet explorer 9

Internet Explorer 11:

отображение в internet explorer 11

Как видите, есть отличия в отображениях горизонтальных линий (<hr>), кнопок, и в Internet Explorer 9 нет текста placeholder. Атрибут placeholder у тегов input и textarea появился в стандарте html5, поддержка которого стала доступной в Internet Explorer с 10 версии.

Чтобы в Internet Explorer 9 появился placeholder, придется использовать JavaScript. Можно написать свое решение, либо воспользоваться готовым плагином Placeholders.js. Для использования данного скрипта нужно подключить к странице jQuery и сам плагин:

Больше никаких действий производить не нужно, плагин все сделает самостоятельно. Данный плагин поддерживает большое количество браузеров, включая Internet Explorer 6.

отображение placeholder в internet explorer

Добавим всем элементам отступы, цвет красный (color: red) и посмотрим, что изменилось:

отображение в chrome

отображение в edge

отображение в firefox

отображение в safari

Internet Explorer 9:

отображение в internet explorer 9

Internet Explorer 11:

отображение в internet explorer 11

В Firefox горизонтальные линии окрасились в красный цвет, а в Chrome, Edge и Safari placeholder остался черным. Добавим цвет placeholder в оставшихся браузерах, увеличим высоту горизонтальной линии и зальем ее красным цветом:

отображение в chrome

отображение в edge

отображение в firefox

отображение в safari

Internet Explorer 9:

отображение в internet explorer 9

Internet Explorer 11:

отображение в internet explorer 11

Все горизонтальные линии стали красными, но в Firefox толщина отличается от других. Связано это с тем, что в браузере Firefox стиль color: red окрашивает рамку вокруг элемента, в то время как в остальных браузерах этот стиль не действует на рамку, и она остается прозрачной. Уберем рамку и свойство color: red. Для исправления цвета placeholder’а у текстового поля в Edge необходимо воспользоваться префиксами: -ms-input-placeholder и -ms-input-placeholder:

отображение в edge

отображение в firefox

Добавим остальные стили:

отображение в chrome

отображение в edge

отображение в firefox

отображение в safari

Internet Explorer 9:

отображение в internet explorer 9

Internet Explorer 11:

отображение в internet explorer 11

Внешний вид отличается только у браузеров Internet Explorer.

Начнем с 11-ой версии. Мы сделали ссылку в виде черной кнопки и текст расположили по центру. Для этого использовали свойство display: flex, но специально добавили свойство min-height: 40px. Поддержка flex у Internet Explorer с 10-ой версии, но с некоторыми ошибками, одну из которых мы продемонстрировали. Если у элемента задана минимальная высота, то в IE 11 не работает вертикальное выравнивание. Исправим это с помощью css-хака, добавим свойства, которые будут работать только в IE 11:

Получаем правильное отображение:

отображение в internet explorer 11

Как писали выше, поддержка flex в Internet Explorer стала доступной только с 10-ой версии, из-за этого ссылка в 9-ой версии отображается как строковый элемент display: inline.

Исправим это с помощью добавления условного комментария в html-документ, в котором подключим новый файл стилей.

И пропишем в новом файле стили для ссылки:

Помимо неправильного отображения ссылки, у кнопки нет фона градиента. Это также связано с тем, что поддержка линейных градиентов появилась в Internet Explorer c 10-ой версии. Создадим файл gradient.svg с графикой линейного градиента и в стилях для IE9 зададим фон изображением созданного градиента background: url(gradient.svg).

Получаем следующие стили для IE9:

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

отображение в internet explorer 9

статистика statcounter

статистика liveinternet

Для современных сайтов стоит отказаться от поддержки Internet Explorer, т.к. без использования всех современных возможностей CSS придется выполнять практически вторую верстку сайта под браузер с долей 1,5-3%. Но, как говорилось выше, все зависит от пользователей, посещающих ваш сайт.

Проверка кроссбраузерности: наши рекомендации

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


Кроссбраузерность — одна из важнейших характеристик любого сайта, подразумевающая одинаково корректное отображение и работу ресурса в разных браузерах, а также их версиях. Для того, чтобы сайт правильно функционировал в Google Chrome, Яндекс.Браузере, Safari, Opera, Firefox, Android Browser и т.д. как на стационарных, так и на мобильных устройствах, необходимо решить вопрос кроссбраузерности еще на этапе верстки. О том, как протестировать сайт на кроссбраузерность и добиться этого свойства, мы рассказываем в данной статье.

ТОП-10
лучших компаний интернет-продвижения России 2020

Почему сайты могут по-разному отображаться и работать в разных браузерах

Причина этой проблемы — отличия в исходном коде. Особенно это касается старых версий браузеров.

Нередко определенные HTML-коды и CSS-стили по-разному воспринимаются и обрабатываются на разных движках, поэтому один и тот же элемент может в одном браузере отображаться и функционировать корректно, а в другом — нет.

В чем выражается кроссбраузерность сайта и почему она так важна

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

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

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

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

Как протестировать сайт на кроссбраузерность

  1. Ручное тестирование кроссбраузерности сайта. Для этого нужно установить на ПК разные браузеры и посмотреть, как сайт отображается в каждом из них. Способ верный, но неудобный: придется скачивать разные браузеры и их версии, а некоторые из них, к слову, можно установить только на macOS.
  2. Использование специальных онлайн-сервисов. Этот способ прост и надежен. Таких сервисов достаточно много: есть и бесплатные, но с определенными ограничениями, и платные, но более функциональные и быстрые.

Здесь можно бесплатно проверить сайт на корректность отображения информации в различных браузерах (около 65) и операционных системах. В зависимости от степени загруженности сервера запросами проверка занимает от пяти минут до двух часов. Если вы хотите ускорить процесс, рекомендуем приобрести доступ к так называемой «приоритетной обработке».

Результаты тестирования предоставляются пользователю в виде скриншотов. На них видно, все ли в порядке с кроссбраузерностью сайта или над ней нужно еще поработать.

Из бесплатных сервисов также можно использовать CrossBrowserTesting, Browserling и т.д. Каждый из них отличается определенными функциональными особенностями и возможностями. Некоторые сервисы требуют пройти регистрацию, на других можно проверить сайт и без нее.

Если вы планируете использовать платный сервис, попробуйте BrowserStack . Этот мощный инструмент в режиме реального времени проверяет сайты на кроссбраузерность в более чем 2000 браузеров и устройств. А еще здесь есть бесплатный пробный период.

Кроме онлайн-сервисов, существуют и специальные приложения. К примеру, Multi-Browser Viewer. Этот инструмент позволяет проверить не только корректность отображения данных в разных браузерах, но и то, насколько правильно сайт функционирует.

Как добиться кроссбраузерности сайта

Предлагаем вам несколько самых действенных способов решения этой задачи:

1. Вендорные префиксы. Они представляют собой приставки к названиям уникальных свойств, которые используются вендорами (в данном случае это производители браузеров). Такие префиксы применяются в конкретных случаях, а именно, когда CSS-свойство:

  • нестандартно и прописано для определенного браузера;
  • это эксперимент, который еще дорабатывается;
  • реализует частичный функционал.
  • -moz- применяется в Firefox;
  • -ms- применяется в IE и Edge;
  • -webkit- применяется в Safari, Google и прочих браузерах на базе WebKit и Blink;
  • -o- применяется в старых версиях Opera (на платформе Presto).

Код может выглядеть следующим образом:

  • -webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap;
  • - webkit-flex-wrap — это свойство для версий Chrome с 4 по 28 и версий Safari с 3.1 по 8;
  • -ms-flex-wrap — свойство для IE 10.

CSS-свойство flex-wrap определяет, будет ли flex-контейнер расположен в одной строке или в нескольких. Wrap указывает на то, что flex-элементы внутри контейнера в случае переполнения располагаются в несколько горизонтальных рядов. Программист, создающий сайт, разумеется, хочет, чтоб так было во всех браузерах, поэтому использует вендорные префиксы.

2. CSS-hacks. Хаки — это части кода, которые может понять только какой-то конкретный браузер. То есть, если, к примеру, ваш сайт правильно отображается в четырех браузерах, а в остальных есть проблемы с корректностью интерпретации данных, то эту проблему можно решить, отдельно прописав соответствующие хаки для каждого браузера, в котором страницы отображаются неверно.

3. Разделение стилей. Используется для поддержки Internet Explorer. Этот способ предполагает определение браузера и подключение конкретного файла стилей. В IE применяются условные комментарии, которые понимает только Internet Explorer. Другие браузеры воспринимают этот код как простой комментарий.

4. Универсальные элементы. Они одинаково качественно функционируют практически во всех популярных браузерах. Благодаря им исходный код ресурса не выглядит громоздким, а главное, соответствует требованиям браузеров.

На бесплатном онлайн-сервисе caniuse. com вы узнаете, какие теги поддерживаются той или иной версией браузера.

Самые популярные браузеры среди пользователей Рунета

По данным Яндекс.Радара за июнь 2020 года, в большей степени пользователи Рунета предпочитают Google Chrome, Яндекс.Браузер и Safari.

Самые популярные браузеры среди пользователей Рунета


Самые популярные браузеры среди пользователей Рунета

Что касается браузеров на мобильных устройствах, то здесь Яндекс.Браузер и Safari меняются местами.

Самые популярные браузеры на мобильных устройствах


Самые популярные браузеры на мобильных устройствах

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

Так у неё отражается:

alt text

alt text

Причём у себя я смотрел с разных компов, и всё нормально, а у неё так.

Намекните хоть, в какую сторону думать?

11 1 1 золотой знак 2 2 серебряных знака 8 8 бронзовых знаков 1,248 2 2 золотых знака 18 18 серебряных знаков 41 41 бронзовый знак я смотрел, кстати, во всех современных браузерах - норм, она сказала, что и в хроме, и в опере, и с телефона всё плывёт.

Пусть попробует обновить без кэша страницу. Мало-ли, что-то закэшировалось, и теперь "выплывает" подобным эффектом.

Но, в общем - странно. Такое чувство, что часть css-а не подгрузилась. (если только снизу сайта плывет.)

У меня - все нормально. Хром.


1,685 1 1 золотой знак 9 9 серебряных знаков 18 18 бронзовых знаков

Ctrl+F5 или открыть сайт в анонимном режиме. В MSIE Ctrl+F5 обязательно. Пусть еще в хроме или опере, если у нее не 12 Opera , нажмет Ctrl+Shift+F12 и скажет какие ошибки видны во вкладке консоль.

У меня светло-серый фон немного более узкий, чем тот, что над ним, темно-серый, пикселей на 15. Следовательно - баги в верстке. Chrome.

Если уж на моем разбитом ноутбуке (XP) в Хроме все нормально, значит и везде нормально)) Пусть она проверит на других компьютерах в офисе или у знакомых, есть ли такая ситуация. Причина может быть разная. Я например, пару раз отключила компьютер, вытащив вилку из розетки и у меня отлетела шапка на диспетчере задач. Но это не значит, что такая же ситуация происходит у всех. С сайтом все нормально. Пусть попробует переставить проблемные браузеры на новые версии и почистить компьютер (вирусы, реестр и тд.)

1) да ошибки где An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images. они на на внешний вид сайта не сыграют роль, но alt for img лучше все-таки прописать;

2) пропишите title;

3) End tag ul seen, but there were open elements. Это необходимо исправлять;

4) подключите одну библиотеку jquery - сейчас у вас так:

5) если доктайп HTML5 - тогда зачем так подключать <meta http-equiv="Content-Type" content="text/html; charset=utf-8">?

Кроссбраузерность сайта

SEO Кроссбраузерность — одна из важнейших характеристик сайта, которая подразумевает под собой одинаковое корректное отображение и работу ресурса в разных браузерах (Google Chrome, Safari, Opera, Firefox, Android Browser и т.д. как на стационарных, так и на мобильных устройствах), а также их версиях. Вопрос кроссбраузерности лучше решать на этапе верстки. О том, как протестировать сайт на кроссбраузерность и добиться этого свойства, читайте в данной статье.

Почему верстка сайта может по-разному отображаться и работать в разных браузерах

Нередко определенные HTML-коды и CSS-стили по-разному воспринимаются и обрабатываются на разных движках, поэтому один и тот же элемент может в одном браузере отображаться и функционировать корректно, а в другом — нет.

Почему кроссбраузерность сайта так важна

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

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

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

Как протестировать сайт на кроссбраузерность

  1. Ручное тестирование кроссбраузерности сайта. Для этого нужно установить на ПК разные браузеры и посмотреть, как сайт отображается в каждом из них. Способ верный, но неудобный: придется скачивать разные браузеры и их версии, а некоторые из них, например Safary (речь о свежем), можно установить только на macOS.
  2. Попросить знакомых, чтобы зашли на сайт со своих девайсов.
  3. Использование специальных онлайн-сервисов (о них ниже) или ПО (например Blisk ). Этот способ прост, надежен и самое главное быстрый.

Сервисы проверки кроссбраузерности

Перечислю самые популярные.

CrossBrowserTesting

crossbrowsertesting

Сервис платный (первые 7 дней или 60 минут бесплатно), в нем более чем 2050 реальных настольных и мобильных браузеров. И так же четыре режима тестирования:

  • «Живой» тест. Можно работать с ресурсом в браузере с заранее выбранными параметрами, записывать видео и делать скриншоты.
  • Тест Selenium. Подразумевает автоматическую проверку в соответствии со скриптом, сделанным предварительно. Разрешается записывать результаты в формате видеофайла.
  • Режим автоматического сохранения скриншотов. Можно комбинировать различные ОС, браузеры, устройства и размеры экранов.
  • Локальное подключение. Можно проверить документы, которые еще не загрузились на сайт.

Browserling

browserling

Бесплатно только тестирование в устаревших IE на устаревших платформах.

Sauce Labs

saucelabs

Триал у него довольно ограниченный, а вот при оформлении платной подписки станет доступна автоматическая проверка. Здесь есть около 700 комбинаций браузеров, разрешений и устройств.

Litmus

litmus

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

Browsershots

Browsershots

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

В бесплатной версии ваш запрос становится в очередь, и скриншоты начнут подгружаться на сервер поочередно после высвобождения сайтов. Данная процедура может занять от 10 минут до 2-3 часов.

Browserstack

browserstack

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

Программное обеспечение для тестирования кроссбраузерности

MultiBrowser

multibrowser

Настоящие веб-браузеры с песочницей, а также набор для тестирования адаптивного дизайна, мобильных устройств, iPhone и iPad Simulator, которые можно запускать в автономном режиме в среде вашего рабочего стола!

Демо версия работает 14 дней.

Как добиться кроссбраузерности сайта

Вариант 1. Вендорные префиксы

Они представляют собой приставки к названиям уникальных свойств, которые используются вендорами (в данном случае это производители браузеров). Такие префиксы применяются в конкретных случаях, а именно, когда CSS-свойство:

  • нестандартно и прописано для определенного браузера;
  • это эксперимент, который еще дорабатывается;
  • реализует частичный функционал.
  • -moz- применяется в Firefox;
  • -ms- применяется в IE и Edge;
  • -webkit- применяется в Safari, Google и прочих браузерах на базе WebKit и Blink;
  • -o- применяется в старых версиях Opera (на платформе Presto).

Пример обычного CSS кода:

И этот же CSS код с вендорными префиксами:

Есть онлайн веб сервис для расстановки вендорных префиксов для лучшей кроссбраузерности: Автопрефиксер . Его рекомендуют к использованию Google и используют в Twitter и Taobao.

Вариант 2. CSS хаки

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

Примеры хаков можно посмотреть на habr .

Вариант 3. Универсальные элементы

Самые популярные браузеры среди пользователей Рунета

По данным Яндекс.Радар более 70% пользователей Рунета предпочитают с ПК заходить с брузеров: Google Chrome и Яндекс.Браузер.

Популярные десктоп браузеры рунета

Что касается браузеров на мобильных устройствах, то здесь история похожая, только можно еще добавить Safari.

Популярные мобильные браузеры рунета

В общем если занимаетесь версткой, то нужно как минимум ориентироваться на Google Chrome, Яндекс.Браузер (он по моему на той же платформе что и хром) и Safari. В идеале на все где количество пользователей более 1%.

Читайте также: