Рассмотрим подробно свойство clip
В данном уроке мы разберемся с редко используемым и плохо понимаемым свойством CSS clip, а также рассмотрим, как с его помощью получать замечательные эффекты.
Назначение свойства clip - определять, какую часть элемента нужно выводить. Вы наверняка слышали о таком эффекте под названием "обрезка" (по-английски "crop"). Существует достаточно много плагинов JavaScript для обрезания элемента, но в действительности можно делать то же самое с помощью свойства CSS clip
. Конечно, с некоторыми ограничениями. Мы рассмотрим их несколько позже.
Синтаксис
Начнем с разбора синтаксиса свойства clip
, который может показаться на первый взгляд сложным для понимания. Посмотрим на следующий пример:
.my-element { 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()
принимает 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 */ }
Демонстрация
Для более наглядного представления мы подготовили пару примеров.
В первом примере используем:
- Свойство
clip
- Переходы CSS
- Селектор
~
или+
Сначала изображение скрыто с помощью обрезки. Затем, при наведении курсора мыши на кнопку изображение разворачивается за 0.5с от центра.
<iframe style="width: 100%; height: 350px"
src="http://jsfiddle.net/zNcTR/4/embedded/result,html,css,js"></iframe>
Эффектно? Второй пример показывает более реалистичное применение свойства clip
вместе с другими селекторами и переходами.
В следующем уроке мы сделаем вполне реальное приложение с использованием свойства clip
.
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/fP44FQM28-Q/lessons.php
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-03-13 » Стратегии SEO на 2024 год
- 2024-03-13 » Как использовать анимацию с помощью JavaScript-библиотеки GSAP
- 2024-03-13 » Использование GSAP 3 для веб-анимации
- 2024-03-13 » Cогласование топографической съёмки с эксплуатирующими организациями
- 2024-02-19 » Теряются лиды? Как настроить сквозную аналитику
- 2024-02-17 » Мерч и IT: на что обратить внимание в 2024 году
- 2024-02-16 » Копируем с RSync: основные примеры синхронизации файлов
- 2024-02-15 » Лучшие noCode AI платформы для создания диалоговых ботов
- 2024-02-14 » Факторы ранжирования Google 2024 — исследование Semrush
- 2024-02-12 » Перенос сайта на другой хостинг
- 2024-02-05 » В России сформирован реестр хостинг-провайдеров
- 2024-02-04 » Использование SSH для подключения к удаленному серверу Ubuntu
- 2024-02-03 » Подключаемся к серверу за NAT при помощи туннеля SSH. Простая и понятная инструкция
- 2024-02-02 » Настройка CI/CD для Gitlab-репозитория: схемы и гайд по шагам
- 2024-02-01 » GitLab CI Pipeline. Запуск сценария через SSH на удаленном сервере
- 2024-01-29 » Introduction to GitLab’s CI/CD for Continuous Deployments
- 2024-01-26 » Настройка GitLab CI/CD
- 2024-01-25 » Установка shell gitlab runner
- 2024-01-25 » Установка и регистрация gitlab-runner в docker контейнере
- 2024-01-25 » Переменные Gitlab-Ci
- 2024-01-25 » Настройка CI/CD в GitLab для синхронизации проекта с веб-серверами
- 2024-01-25 » Копирование файлов scp
- 2024-01-21 » Бездепозитные бонусы от казино: обзор условий и правил использования
- 2024-01-18 » Современная обработка ошибок в PHP
- 2024-01-18 » Пример шаблона проектирования MVC в PHP
- 2024-01-18 » Мифический человеко-DevOps
- 2023-12-28 » Google подвел итоги 2023 года в поиске
- 2023-12-28 » 5 ошибок отдела продаж, из-за которых вы теряете клиентов
- 2023-12-28 » Американский суд признал монополию Google на рынках дистрибуции Android-приложений
- 2023-12-28 » Хостинг-провайдер GoDaddy перестанет оказывать услуги пользователям из России
Одного яйца два раза не высидишь. К. Прутков |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.