Оригинал статьи читайте на сайте ДиаБлог.ру. Просим вас оставить комментарий к статье.

Группа разработчиков из Apple (Dave Hyatt, Dean Jackson и Chris Marrin) предложила внедрить в CSS 3 поддержку возможности анимации, трансформации объектов, их изменение с течением времени, а также ввести ввести css-переменные.

Значения анимации и трансформации будут описываться через селектор keyframe

@keyframes 'wobble' {
0 {
left: 100px;
}
40% {
left: 150px;
}
60% {
left: 75px;
}
100% {
left: 100px;
}
}

Здесь "wobble" — название анимации, а соответствующие значения 0, 40%, 60% и 100% — определяют момент времени от общего временного интервала.

"CSS

На рисунке выше приведен пример анимации элемента за 10 секунд.

Еще один вариант реализации — задание для каждого фрагмента определенной функции, управляющей отрисовкой:

@keyframes 'bounce' {
from {
top: 100px;
animation-timing-function: ease-out;
}
25% {
top: 50px;
animation-timing-function: ease-in;
}
50% {
top: 100px;
animation-timing-function: ease-out;
}
75% {
top: 75px;
animation-timing-function: ease-in;
}
to {
top: 100px;
}
}

В этом примере мы создаем анимацию с именем "bounce", имеющую 4 кадра, каждый из которых занимает 25% общего времени анимации. При этом, каждому фрагменту задана функция "ease-in" либо "easy-out". Первая отвечает за изменение отрисовки элемента внтури какой-либо области, а вторая за ее пределами. Все эти свойства управления созданием анимации исходят из идеи внедрения управления элементом во времени.

Подробней о новом свойстве создания анимации можно узнать здесь.

Вторая идея, мне кажется, более обоснована — это управление положением элемента на плоскости. Вот пара примеров реализации:

div { transform: translate(100px, 100px); }

Такой код приведет к следующей трансформации элемента:

"CSS

Или вот, более наглядное описание возможностей:

div {
height: 100px; width: 100px;
transform: translate(80px, 80px) scale(1.5, 1.5) rotate(45deg);
}

"CSS

Таким свойством я бы с удовольствием воспользовался.

Подробно о свойствах трансформации можно прочесть здесь.

И последняя фантазия разработчиков уж точно кажется немного безумной — введение css-переменных. Неужели CSS превратится в полноценный язык программирования и управления html элементами?

Примеры использования:

@variables {
CorporateLogoBGColor: #fe8d12;
}
div.logoContainer {
background-color: var(CorporateLogoBGColor);
}
@variables {
myMargin1: 2em;
}
@variables print {
myMargin1: 2em;
}
.data, div.entry {
margin-left: 30px;
margin-left: var(myMargin1);
}

Смысл этого кода таков: селектор variables определяет имя и значение переменной, которое можно в дальнейшем приписать к любому элементу. Идея все же не проработана. Зачем определять для цвета переменную, если его можно просто указать?

Прочесть подробнее о css-переменных.

Информация подготовлена по материалам проекта gettincss.ru.

Пост написан красиво?
Стимулируй блога прогресс:
Не стоит покупать мне пиво,
Подпишись на RSS!