Рассмотрим подробно свойство 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
Новые статьи и публикации
- 2025-03-14 » SPF-запись
- 2025-03-07 » SEO на маркетплейсах: как оптимизировать карточку товара для поисковой выдачи
- 2025-02-18 » Топ-10 бесплатных нейросетей для генерации изображений: лучшие ии генераторы 2024 года
- 2025-02-11 » Критическая уязвимость в 1С-Битрикс
- 2025-02-11 » Google Search Console: руководство для начинающих вебмастеров
- 2025-02-11 » Методы измерения результативности рекламных кампаний: плюсы и минусы
- 2025-02-11 » Тренды SEO в 2025 году
- 2025-02-10 » Свой Google в локалке. Ищем иголку в стоге сена
- 2025-01-29 » SEO — это комплексная работа. Шесть главных факторов ранжирования сайтов
- 2025-01-29 » Гайд для главной страницы e-commerce сайта: как оформить, чтобы повысить конверсию
- 2025-01-20 » Krea AI выпустила бесплатную функцию преобразования изображений в 3D-объекты — их можно вращать и вписывать в фотографии
- 2025-01-19 » Отзывы на Яндекс Картах: как пройти модерацию
- 2025-01-15 » Топ-6 лучших российских нейросетей, в которых можно генерировать тексты и изображения бесплатно и без VPN
- 2025-01-14 » 15 бесплатных способов узнать, чем интересуется ваша аудитория
- 2025-01-11 » Бездепозитные бонусы в казино за регистрацию с выводом: особенности и возможности получения
- 2025-01-09 » Новая модель LAM способна выполнять задачи в Word
- 2024-12-26 » Универсальный промпт для нейросети: как выжать максимум из ChatGPT, YandexGPT, Gemini, Claude в 2025
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
Когда человек счастлив, он всегда хорош. Но не всегда хорошие люди бывают счастливы. О. Уайльд «Портрет Дориана Грея» |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.
Или напишите нам в WhatsApp
Или напишите нам в WhatsApp