#javascript #css
#javascript #css
Вопрос:
Я пишу PHP-скрипт с добавлением префикса, поэтому людям, которые используют CSS с программным обеспечением, над которым я работаю, никогда не придется беспокоиться о префиксах. К сожалению, у меня не было возможности работать со всеми возможными свойствами / значениями CSS, поэтому я не уверен, какое свойство использовать CSS.supports
( background
используется в примере ниже)? Просто чтобы не было смысла в комментариях, я делаю это для -khtml-
, -o-
, -moz-
, -webkit-
и — ms-
для проекта, я просто так получилось, что в настоящее время я работаю над форками Chrome / Safari для Webkit / blink engine.
alert(
CSS.supports('background','clip-path') 'n'
CSS.supports('background','clip-rule') 'n'
CSS.supports('background','mask-image') 'n'
CSS.supports('background','mask-mode') 'n'
CSS.supports('background','mask-repeat') 'n'
CSS.supports('background','mask-position') 'n'
CSS.supports('background','mask-clip') 'n'
CSS.supports('background','mask-origin') 'n'
CSS.supports('background','mask-size') 'n'
CSS.supports('background','mask-composite') 'n'
CSS.supports('background','mask-border-source') 'n'
CSS.supports('background','mask-border-mode') 'n'
CSS.supports('background','mask-border-slice') 'n'
CSS.supports('background','mask-border-width') 'n'
CSS.supports('background','mask-border-outset') 'n'
CSS.supports('background','mask-border-repeat') 'n'
CSS.supports('background','mask-border') 'n'
CSS.supports('background','mask-type') 'n'
CSS.supports('background','mask') 'n'
CSS.supports('background','-webkit-clip-path') 'n'
CSS.supports('background','-webkit-clip-rule') 'n'
CSS.supports('background','-webkit-mask-image') 'n'
CSS.supports('background','-webkit-mask-mode') 'n'
CSS.supports('background','-webkit-mask-repeat') 'n'
CSS.supports('background','-webkit-mask-position') 'n'
CSS.supports('background','-webkit-mask-clip') 'n'
CSS.supports('background','-webkit-mask-origin') 'n'
CSS.supports('background','-webkit-mask-size') 'n'
CSS.supports('background','-webkit-mask-composite') 'n'
CSS.supports('background','-webkit-mask-border-source') 'n'
CSS.supports('background','-webkit-mask-border-mode') 'n'
CSS.supports('background','-webkit-mask-border-slice') 'n'
CSS.supports('background','-webkit-mask-border-width') 'n'
CSS.supports('background','-webkit-mask-border-outset') 'n'
CSS.supports('background','-webkit-mask-border-repeat') 'n'
CSS.supports('background','-webkit-mask-border') 'n'
CSS.supports('background','-webkit-mask-type') 'n'
CSS.supports('background','-webkit-mask')
);
Комментарии:
1. Причина, по которой используются префиксы, заключается в том, что технология, на которую они ссылаются, находится в стадии разработки, и API может (и иногда делает) меняться. Смотрите эту ссылку для расхождений, связанных с ранней реализацией Mozilla с префиксом, например.
2. @MikeW Я понимаю и выступаю за префиксы, но спасибо.
3. Существуют ли какие-либо префиксы, отличные от
-khtml-
и-webkit-
даже для CSS масок? Я никогда не слышал о каком-либо другом движке, реализующем их — CSS маски долгое время были собственностью WebKit, прежде чем, наконец, были предложены в качестве стандарта.4. Для решения с автоматическим добавлением префиксов я настоятельно рекомендую Lea Verou’s -prefix-free , хотя оно основано на JavaScript, оно имеет доступ к знаниям браузера о префиксах и, следовательно, может обрабатывать все случаи автоматически, без необходимости что-либо жестко кодировать.
5. Модуль маскирования говорит, что маскирующие свойства на самом деле являются свойствами, хотя я не уверен, как WebKit решил реализовать их до их стандартизации (зная WebKit, он, безусловно, мог бы реализовать их как значения
background
).