Статьи

Обновление на Nettuts + Префикс

Многие из вас могут знать, что мы недавно запустили полезный веб-сервис, который называется Nettuts + Prefixr . К счастью, инструмент прошел долгий путь с момента первого запуска, так как я исправил бесчисленные ошибки и добавил несколько интересных новых функций. Я хотел бы дать вам краткое изложение о текущем состоянии инструмента, а также о том, как его использовать.


Prefixr

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

Таким образом, вам не нужно запоминать, требует ли конкретное свойство CSS3 префикс -ms или нет. Это знание встроено в префикс.

Давайте рассмотрим быстрый пример. Ниже у меня есть несколько разбросанных CSS, которые крайне нуждаются в обновлении. Обратите внимание, что в некоторых местах мы объявили только префикс -moz ; в других областях мы использовали официальный синтаксис и т. д.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
.box {
   opacity: .5;
}
 
.container {
   box-shadow: 20px;
   -moz-transition: box-shadow 2s;
   -webkit-border-radius: 4px;
   animation: slide 1s alternate;
   background: linear-gradient(top, #e3e3e3 10%, white);
}
 
@-webkit-keyframes «slide» {
   0% { left: 0;
   100% { left: 50px;
}

Скопируйте приведенный выше код и вставьте его в Prefixr . Взамен вы получите:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
.box {
   -ms-filter: «progid:DXImageTransform.Microsoft.Alpha(Opacity=50)»;
   filter: alpha(opacity=50);
   opacity: .5;
}
 
.container {
   -webkit-box-shadow: 20px;
   -moz-box-shadow: 20px;
   box-shadow: 20px;
 
   -webkit-transition: box-shadow 2s;
   -moz-transition: box-shadow 2s;
   -o-transition: box-shadow 2s;
   -ms-transition: box-shadow 2s;
   transition: box-shadow 2s;
 
   -webkit-border-radius: 4px;
   -moz-border-radius: 4px;
   border-radius: 4px;
 
   -webkit-animation: slide 1s alternate;
   -moz-animation: slide 1s alternate;
   -ms-animation: slide 1s alternate;
   animation: slide 1s alternate;
 
   background-image: -webkit-gradient(linear, left top, left bottom, color-stop(10%, #e3e3e3), to(white));
   background: -webkit-linear-gradient(top, #e3e3e3 10%, white);
   background: -moz-linear-gradient(top, #e3e3e3 10%, white);
   background: -o-linear-gradient(top, #e3e3e3 10%, white);
   background: -ms-linear-gradient(top, #e3e3e3 10%, white);
   background: linear-gradient(top, #e3e3e3 10%, white);
}
 
@keyframes «slide» {
 0% {
    left: 0;
 }
 100% {
    left: 50px;
 }
 
}
 
@-moz-keyframes «slide» {
 0% {
    left: 0;
 }
 100% {
    left: 50px;
 }
 
}
 
@-webkit-keyframes «slide» {
 0% {
    left: 0;
 }
 100% {
    left: 50px;
 }
 
}
 
@-ms-keyframes «slide» {
 0% {
    left: 0;
 }
 100% {
    left: 50px;
 }
 
}

Вау — это много повторяющихся стилей. Но, к сожалению, это необходимо на данный момент. Если вы хотите, чтобы ваши веб-приложения были как можно более согласованными от браузера к браузеру, вам необходимо использовать эти различные префиксы. Однако, как вы можете себе представить, это может быстро раздуть ваш код. Вот почему Prefixr так полезен!

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


Не стоит беспокоиться! Я тоже Посещение Prefixr.com — это только один из способов обновления таблиц стилей. Я предпочитаю использовать его в моем любимом редакторе кода. Благодаря различным пользователям, есть несколько плагинов и скриптов, доступных для самых популярных редакторов. Например, как пользователь Sublime Text, я лично использую плагин Will Bond « Sublime Prefixr », который прекрасно работает.

Теперь мне никогда не придется посещать Prefixr вручную, копировать и вставлять мою таблицу стилей. Я просто выбираю бит CSS, который хочу оптимизировать, и ctrl+alt+x в Windows и Linux или cmd+ctrl+x в OSX.

Ниже приведен список поддерживаемых редакторов.

редакторы

Существует бесчисленное количество пользователей TextMate; давайте создадим команду, которая будет запускать выделение через Prefixr, и поместим результат в буфер обмена. В TextMate перейдите к редактору пакетов и создайте новую команду.

Редактор пакетов

Вставьте следующее в текстовое поле «Команда». Это возьмет выделенный текст, пропустит его через Prefixr и скопирует ответ в буфер обмена. Далее назначьте ключ активации, и все готово! Это полезно, если вы предпочитаете хранить результаты с префиксами в отдельной таблице стилей.

1
curl -sSd «css=$TM_SELECTED_TEXT» «http://prefixr.com/api/index.php» |

Или, если вы хотите, чтобы результат был сжат, измените команду следующим образом:

1
curl -sSd «css=$TM_SELECTED_TEXT&compress_option=true» «http://prefixr.com/api/index.php» |

Теперь, если ваша таблица стилей отображает:

1
2
3
.box {
    border-radius: 5px;
}

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

1
.box{-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}

Prefixr — это не тот же тип препроцессора, что и Less, Stylus или Sass. Я люблю их — особенно Sass и Stylus. Вместо этого Prefixr предназначен для людей, которым не нравится идея их использования. Тем не менее, переменные пригодятся, поэтому, если вы хотите использовать их в Prefixr, они автоматически обновят ваши таблицы стилей. Например:

1
2
3
4
5
6
7
@variables {
  site_width: 960px;
}
 
.container {
   width: var(site_width);
}

Запустите его через Prefixr , и мы получим:

1
2
3
.container {
   width: 960px;
}

Важно отметить, что это полностью дополнительная функция. Если вы чувствуете, что переменные усложняют CSS, не используйте эту функцию!


Nettuts + Prefixr находится в активной разработке, поэтому, если вы заметили ошибку или хотели бы внедрить новую функцию, либо оставьте комментарий ниже, либо нажмите кнопку «Обратная связь» на Prefixr.com .