Почему использование Modernizr, если браузеры игнорируют CSS, они не понимают?

Я рекомендую решето, или Решето Эратосфена или Решето Atkin.

решето или Eratosthenes являются, вероятно, самым интуитивным методом нахождения списка начал. В основном Вы:

  1. Записывают список чисел от 2 до любого предела, который Вы хотите, скажем, 1000.
  2. Берут первое число, которое не вычеркнуто (для первого повторения, это равняется 2), и вычеркните все кратные числа того числа из списка.
  3. Повторный шаг 2, пока Вы не достигаете конца списка. Все числа, которые не вычеркнуты, являются главными.

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

решето Atkin использует аналогичный подход, но к сожалению я не знаю достаточно об этом, чтобы объяснить его Вам. Но я действительно знаю, что алгоритм, который я связал, занимает 8 секунд для выяснения всех начал до 1 000 000 000 на древнем Pentium II 350

Исходный код Решета Эратосфена: http://web.archive.org/web/20140705111241/http://primes.utm.edu/links/programs/sieves/Eratosthenes/C_source_code/

Решето Исходного кода Atkin: http://cr.yp.to/primegen.html

7
задан rovsen 5 September 2012 в 14:55
поделиться

2 ответа

Вы можете использовать элементы (html 5), которые пока не поддерживаются некоторыми браузерами. Также вы можете указать резервный стиль.

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

Я думаю, это просто удобство.

6
ответ дан 6 December 2019 в 08:15
поделиться

Вы совершенно правы, что старые браузеры полностью игнорируют большую часть того, что находится в CSS3.

Из-за этого я использую CSS3 в своих основных селекторах ... но часто использую modernizr классы без функций для обработки старого случая браузера:

div.box { 
         height:50px; 
         -moz-box-shadow: 3px 3px 5px #555; 
         -webkit-box-shadow: 3px 3px 5px #555; }

div.box span.fakeshadow { 
         display:none; 
}

.no-boxshadow div.box span.fakeshadow { 
         display:block; background: url('fakeshadowbg.png'); 
}

Надеюсь, это проясняет ситуацию.

16
ответ дан 6 December 2019 в 08:15
поделиться