Рассмотрим подробно свойство clip
Назначение свойства clip - определять, какую часть элемента нужно выводить. Вы наверняка слышали о таком эффекте под названием "обрезка" (по-английски "crop"). Существует достаточно много плагинов JavaScript для обрезания элемента, но в действительности можно делать то же самое с помощью свойства CSS clip . Конечно, с некоторыми ограничениями. Мы рассмотрим их несколько позже.
Синтаксис
Начнем с разбора синтаксиса свойства clip , который может показаться на первый взгляд сложным для понимания. Посмотрим на следующий пример:
Первое, что нужно запомнить: свойство clip работает только для элементов со свойствами position: absolute или position: fixed. Оно не действует при относительном или статичном позиционировании.
Разумных объяснений данному факту не нашлось на просторах Интернет.
Однако, все еще можно сделать несколько интересных экспериментов со свойством clip и найти отличные способы его применения.
Рассмотрим синтаксис детально.
Свойство clip может иметь три различных значения:
auto: устанавливается по умолчанию. Установка данного значения эквивалентна отказу от использования свойства clip.
inherit: наследование значения свойства clip от родительского элемента.
функция формы. В текущий момент доступна только функция rect().
В большинстве случаев вы захотите использовать функцию формы. Может быть наступят дни, когда мы сможем использовать не только функцию rect() для задания формы (например, circle()), но сегодня наши возможности ограничены только прямоугольником. Но не стоит беспокоиться - данной функции достаточно для получения интересных эффектов.
Функция rect()
Теперь разберемся с синтаксисом функции rect(). он требует 4 значения, разделенных запятой: top (верх), right (право), bottom (низ) и left (лево). Как для отступов или полей свойство указываются по часовой стрелке.
Теперь нужно сосредоточить внимание, так как есть небольшая хитрость. Значения top(верх) и bottom(низ) определяют смещение от верхней границы, а left(лево) и right(право) определяют смещение от левой границы.
Рассмотрим небольшой пример:
Данный код означает, что мы берем часть элемента между 40px и 150px по вертикали и между 80px и 260px по горизонтали. На следующем рисунке показан принцип.
Как только вы разберетесь с принципом работы функции rect(), использование свойства clip станет простым для вас.
Теперь небольшой вопрос для закрепления материала. Допустим, у нас есть элемент 400px по ширине и 200px по высоте. Нужно удалить 50px справа, 10px сверху и30px снизу. Какое из ниже приведенных описаний нужно использовать?
Дополнительные возможности
Мы рассмотрели базовые установки свойства clip. Но есть несколько моментов, про которые следует знать.
Во-первых, функция rect() принимает auto в качестве значения любого параметра. Оно означает "100%”. Например, есть элемент размером 100px на 100px и нам нужно выводить его полностью. Можно воспользоваться значением rect(0, 100px, 100px, 0) или rect(0, auto, auto, 0).
Во-вторых, так как функция rect() использует значение длины для каждого параметра, то они могут анимироваться с помощью трансформаций или переходов CSS. Такой подход открывает отличную возможность для создания впечатляющих эффектов. Конечно, анимировать auto неп олучится, так как оно не является целым типом.
В-третьих, процентные значения для функции rect() не поддерживаются. Плохая новость, так как создание адаптивных эффектов осложняется.
Поддержка в браузерах
Множество замечательных возможностей разбивалось вдребезги о риф плохой поддержки в браузерах. Но вы будете удивлены, посмотрев на список с указанием версий, в которых действует свойство clip:
Chrome >1.0
FireFox >1.0
Opera >7.0
Safari >1.0
IE >4.0 (а с версии 8.0 поддерживается синтаксис с запятой)
Да, вы не ошиблись - Internet Explorer версии 4.0. Но для версий до 8.0 нужно использовать синтаксис с разделением значений пробелом, а не запятой.
Синтаксис
Начнем с разбора синтаксиса свойства clip , который может показаться на первый взгляд сложным для понимания. Посмотрим на следующий пример:
Код
.my-element {
position: absolute;
clip: rect(110px, 160px, 170px, 60px);
}
position: absolute;
clip: rect(110px, 160px, 170px, 60px);
}
Первое, что нужно запомнить: свойство clip работает только для элементов со свойствами position: absolute или position: fixed. Оно не действует при относительном или статичном позиционировании.
Разумных объяснений данному факту не нашлось на просторах Интернет.
Однако, все еще можно сделать несколько интересных экспериментов со свойством clip и найти отличные способы его применения.
Рассмотрим синтаксис детально.
Свойство clip может иметь три различных значения:
auto: устанавливается по умолчанию. Установка данного значения эквивалентна отказу от использования свойства clip.
inherit: наследование значения свойства clip от родительского элемента.
функция формы. В текущий момент доступна только функция rect().
Код
clip: { shape | auto | inherit } ;
В большинстве случаев вы захотите использовать функцию формы. Может быть наступят дни, когда мы сможем использовать не только функцию rect() для задания формы (например, circle()), но сегодня наши возможности ограничены только прямоугольником. Но не стоит беспокоиться - данной функции достаточно для получения интересных эффектов.
Функция rect()
Теперь разберемся с синтаксисом функции rect(). он требует 4 значения, разделенных запятой: top (верх), right (право), bottom (низ) и left (лево). Как для отступов или полей свойство указываются по часовой стрелке.
Код
clip: rect(<top>, <right>, <bottom>, <left>);
Теперь нужно сосредоточить внимание, так как есть небольшая хитрость. Значения top(верх) и bottom(низ) определяют смещение от верхней границы, а left(лево) и right(право) определяют смещение от левой границы.
Рассмотрим небольшой пример:
Код
clip: rect(40px, 260px, 150px, 80px);
Данный код означает, что мы берем часть элемента между 40px и 150px по вертикали и между 80px и 260px по горизонтали. На следующем рисунке показан принцип.
Как только вы разберетесь с принципом работы функции rect(), использование свойства clip станет простым для вас.
Теперь небольшой вопрос для закрепления материала. Допустим, у нас есть элемент 400px по ширине и 200px по высоте. Нужно удалить 50px справа, 10px сверху и30px снизу. Какое из ниже приведенных описаний нужно использовать?
Код
clip: rect(50px, 30px, 350px, 70px);
clip: rect(0, 10px, 30px, 50px);
clip: rect(10px, 50px, 30px, 0);
clip: rect(50px, 30px, 10px, 10px);
clip: rect(10px, 350px, 170px, 0);
clip: rect(0, 10px, 30px, 50px);
clip: rect(10px, 50px, 30px, 0);
clip: rect(50px, 30px, 10px, 10px);
clip: rect(10px, 350px, 170px, 0);
Дополнительные возможности
Мы рассмотрели базовые установки свойства clip. Но есть несколько моментов, про которые следует знать.
Во-первых, функция rect() принимает auto в качестве значения любого параметра. Оно означает "100%”. Например, есть элемент размером 100px на 100px и нам нужно выводить его полностью. Можно воспользоваться значением rect(0, 100px, 100px, 0) или rect(0, auto, auto, 0).
Во-вторых, так как функция rect() использует значение длины для каждого параметра, то они могут анимироваться с помощью трансформаций или переходов CSS. Такой подход открывает отличную возможность для создания впечатляющих эффектов. Конечно, анимировать auto неп олучится, так как оно не является целым типом.
В-третьих, процентные значения для функции rect() не поддерживаются. Плохая новость, так как создание адаптивных эффектов осложняется.
Поддержка в браузерах
Множество замечательных возможностей разбивалось вдребезги о риф плохой поддержки в браузерах. Но вы будете удивлены, посмотрев на список с указанием версий, в которых действует свойство clip:
Chrome >1.0
FireFox >1.0
Opera >7.0
Safari >1.0
IE >4.0 (а с версии 8.0 поддерживается синтаксис с запятой)
Да, вы не ошиблись - Internet Explorer версии 4.0. Но для версий до 8.0 нужно использовать синтаксис с разделением значений пробелом, а не запятой.
Код
.my-element {
position: absolute;
clip: rect(10px 350px 170px 0); /* IE4 to IE7 */
clip: rect(10px, 350px, 170px, 0); /* IE8+ & other browsers */
}
position: absolute;
clip: rect(10px 350px 170px 0); /* IE4 to IE7 */
clip: rect(10px, 350px, 170px, 0); /* IE8+ & other browsers */
}
-
FalleN -
1613 -
1 -
165
Но только нужно ставить наверное на те модули которые обновляться должны не раньше через пару тройку минут
С Уважением, Андрей...