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

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

не будет

border-radius: 5px;

< / blockquote>

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

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

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

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

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

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

6
задан 11.04.2019, 20:21

3 ответа

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

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

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

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

0
ответ дан 14.05.2019, 13:31
  • 1
    Спасибо за комментарий Hemang, но мне нужно имя, которое имеет весь ' A' ' B' ' C' в исходной таблице. – Renny Hyunwoo Park 18.03.2019, 17:18
  • 2
    That' s, почему я начал задаваться вопросом и задавать вопрос. Но я хочу знать, почему и как те префиксы поставщика на самом деле связаны для торговли. Разве они несколько способствуют SEO или чему-то? – NeonNatureEX 22.03.2019, 18:20
  • 3
    Они связаны для торговли потому что если Вы don' t поддерживают большое разнообразие браузеров, Вы теряете потенциальных пользователей. Если Ваш веб-сайт будет казаться поврежденным на некоторых браузерах, люди будут думать, что это непрофессионально или неприменимо и отпуск. – Calvin Haworth 23.03.2019, 13:26
  • 4
    Umm...., который является точно, почему я спросил все же. Префиксы поставщика используются даже на стандартизированных css свойствах. Если веб-сайт повреждается, который означает, что клиент должен использовать очень очень старый браузер (IE 6, и т.д.) и я don' t думают, что существует слишком много людей, которые используют устаревшие браузеры. Каким образом они влияли бы на трафик тогда, если процент людей, использующих старые браузеры, является слишком низким? Это слишком высоко или что-то? – NeonNatureEX 24.03.2019, 05:41
  • 5
    Извините за то, чтобы не быть ясным в моем ответе. Я пытался сказать, что, если Вы хотите большую базу пользователей, Ваш веб-сайт должен быть применимым в большинстве браузеров. Не все браузеры должны выглядеть прекрасными. Я wouldn' t беспокойство о более старых браузерах так, пока это работает большую часть времени. Самый ранний браузер, который необходимо поддерживать, является IE7, потому что большинство людей мигрирует на Firefox, Safari, Chrome и Microsoft Edge. – Calvin Haworth 24.03.2019, 14:22

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

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

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

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

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


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

0
ответ дан 14.05.2019, 13:31
  • 1
    ' Count' будет лучшее решение до сих пор. Спасибо Vikram. – Renny Hyunwoo Park 18.03.2019, 19:15
  • 2
    +1 для полезных библиотек, но I' m осведомленный PostCSS делает это для нас. Однако I' d нравится знать что-то хотя: если проект, Вы продолжаете работать, не для клиента и просто персональный, что " range" был бы " цель audience" объем? – NeonNatureEX 22.03.2019, 18:19
  • 3
    @NeonNatureEX я думаю даже " personal" проект имел бы некоторую идею того, где Вы ожидаете, что он будет использоваться. Это - что-то, что Вы хотите, чтобы люди сделали по мобильному телефону? That' s один набор. Вы экспериментируете с последним CSS? That' s другой набор и так далее. – Bryce Howitson 24.03.2019, 14:06

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

До тех пор, пока пару лет назад я не пытался поддерживать 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, flexbox wrapping и т. Д.

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

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

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

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

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

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

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

0
ответ дан 14.05.2019, 13:31
  • 1
    @jpmc26... Нет, потому что тогда D был бы другой тип в таблице, имея в виду существует 4 из них. И никакой name с соответствовала бы. – Gordon Linoff 18.03.2019, 14:36
  • 2
    Вы передумали на IES. I' ve никогда не думал о даже IE9 и 10 как устаревший, и если there' s более новые версии IE на них, я знаю, что люди начинают использовать Край вместо IE теперь. Даже при том, что I' ve рассмотрел Safari для префикса WebKit, я haven' t думал о Opera, хотя (Они широко используются?). Вы просто определили " scope" другие ответы говорят об и также включенный Android который я haven' t даже добавленный к моим соображениям. tl; доктор - Так ответ для вопроса был бы номер Спасибо! – NeonNatureEX 25.03.2019, 14:38
  • 3
    Добро пожаловать мой друг! Это было трудное решение для меня сделать переход к не поддержке более старых браузеров, но как только я сделал я никогда не оглядывался назад и не имел никаких извинений до сих пор! – scooterlord 26.03.2019, 18:37

Теги

Похожие вопросы