Стоит ли указывать определенные свойства для IE или просто для других более старых версий?[Обратная совместимость] - PullRequest
0 голосов
/ 05 марта 2019

Я использовал -webkit и -moz довольно много раз, пока это не поразило меня.Помимо определения определенных свойств, основанных на браузерах и определенных свойствах, таких как break-inside, которые широко не поддерживаются,

не будет

border-radius: 5px;

делает его короче для

-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;

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

Первый поддерживается последними браузерами, но разве мы не можем предположить, что почти все используют почти самые последние браузеры (особенно НЕ более старые версии IE, к которым применяются определенные правила)?(Даже если люди не обновляют свои браузеры, их оставляют только на нескольких версиях, учитывая, что никто не достает старый телефон Nokia из сундука и не начинает просмотр)

Почему мы должны их использовать?Почему мы должны указывать более старые правила IE или только более старые правила браузера?

Сколько погружений в более старую версию будет достаточно?IE8?

Ответы [ 3 ]

0 голосов
/ 22 марта 2019

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

Сначала - Все основано на ВАШЕМ КОНКРЕТНОМАудитория. Посмотрите на свою аналитику и посмотрите, какие браузеры используются.Эти данные могут вас удивить, особенно если вы пользуетесь услугами здравоохранения или государственных учреждений США.Такие инструменты, как Stylelint помогут вам найти неподдерживаемые правила в вашем CSS.

Далее, лучше всего использовать обнаружение функций вместо нацеливания на конкретные браузеры.Вы можете реализовать это, используя @supports в условном коде, который работает как media query.Таким образом, ваш код применяется только в том случае, если браузер может его использовать.Вы можете сделать подобное обнаружение в javascript, используя Modernizr .

Наконец, я лично рекомендую использовать постпроцессор CSS или скрипт сборки, чтобы вы могли перестать беспокоиться о префиксах (плюсэто ускорит вашу разработку с помощью дополнительных плагинов).Мне нравится комбо из PostCSS и Prefixfree (несколько настроек Webpack поставляются с включенными), но есть много похожих вариантов.

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


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

0 голосов
/ 25 марта 2019

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

Вплоть до того, как пару лет назад я пытался поддерживать IE8 и выше,Причиной этой логики было то, что люди, которые «оказались в ловушке» с Windows XP и IE8, были последней версией, поддерживаемой Windows XP.Под ловушкой я подразумеваю, что это были случаи, подобные правительственным, которые были слишком дорогостоящими для обновления.

После того, как Windows 7 достаточно повзрослела и использование Windows XP сократилось, я попытался поддержать IE9 и выше.По сути, это означало, что даже после того, как появились полезные свойства (например, flexbox), у меня ушло много времени на миграцию - поэтому я строил макеты с таблицами для лучшей поддержки браузера и т. Д.

Однако Javascript Frameworks начала отказываться от поддержкидля более старых браузеров (включая IE9) CSS-фреймворки начали отказываться от поддержки.Если вы подумаете об этом некоторое время назад, сама MS уже давно отказалась от поддержки.Крупные мобильные компании отказываются от поддержки своих двухлетних устройств, так почему мы должны поддерживать старые браузеры?Как указано в других ответах, это зависит от аудитории - представьте, что генеральный директор вашей лучшей клиентской компании имеет ноутбук с Windows XP или другим устаревшим устройством - не имеет значения, если бы кто-то еще использовал современные браузеры ..

Итак, пару лет назад дело дошло до того, что вам приходилось выбирать между следующим потоком и современностью или поддержкой старых устройств.Я полностью поддерживаю последовательность и единообразие контента, поэтому поддержка современных функций для некоторых избранных браузеров и отбрасывание их для других была бы бесполезной для меня.Flexbox был одним из тех свойств, которые подтолкнули меня к отказу от поддержки старых браузеров - это значительно помогло мне уменьшить разметку - тем самым упростив обслуживание.В то же время, даже Bootstrap решил отказаться от поддержки старых браузеров, поэтому должен обновиться, чтобы идти в ногу с конкурентами.

Нет необходимости говорить, что проблема не только в IE, но и в Android, который взялдо версии 4.4 для того, чтобы стандартный браузер поддерживал определенные свойства - vh, упаковку во флексбокс и т. д.

Сказал, позвольте мне дать вам прямой ответ:

  • Не беспокойтесь о поддержке IE9 - даже 10. IE10 может быть обновлен до 11 на той же ОС, поэтому его следует обновить в любом случае по соображениям безопасности.IE9 не поддерживается фреймворками JS (например, Ember), в нем отсутствуют переходы CSS3 и другие полезные свойства, такие как flexbox.Без этого ваши проекты должны были бы сделать много шагов назад, если вы стремитесь к согласованности дизайна.

  • Как sidenote, IE10 начал поддерживать свою собственную интерпретацию flexbox (извините за всю эту настойчивость с flexbox, но это одно из самых полезных свойств).Это означает, что для правильной его поддержки вам придется написать много CSS.Представьте себе добавление 30 КБ минимизированного CSS для поддержки только одного браузера, который является довольно редким.Стоит ли это того?

  • Некоторые браузеры webkit (например, Opera) могут по-прежнему требовать префиксов, специфичных для поставщиков, для версий браузеров, выпущенных 4 года назад, например, для преобразований CSS3.Более важные вещи ломаются в таких браузерах (включая Opera), что я бы больше беспокоился о других вещах.Лично я использую префикс -webkit- только в некоторых случаях (например, свойства flexbox, которые появились в последнее время).

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

В качестве последнего замечания я бы избежал любых передовых свойств, например, grid;узнайте, что он делает и как он работает, но пока не используйте его.Вы должны взглянуть на https://caniuse.com/, чтобы иметь представление о свойствах CSS и поддержке браузера.

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

0 голосов
/ 22 марта 2019

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

https://imagebox.com/industry/why-your-website-doesnt-look-the-same-in-every-browser/ http://dowebsitesneedtolookexactlythesameineverybrowser.com/.

С точки зрения различных команд border-radius, убедитесь, что используете их все.Я обнаружил, что если вы не включите webkit и mozilla, вы потеряете много трафика.На моем веб-сайте я обычно включаю все варианты команд, поэтому я точно знаю, что мой веб-сайт работает.Лучше иметь большой и некрасивый код CSS, чем сломанный сайт.

Не стесняйтесь комментировать этот ответ, если вам нужно больше разъяснений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...