У комп'ютерній графіці зазвичай використовуються дві операції clipping і masking. Обидві операції приховують візуальні частини елемента. Якщо Ви працювали з SVG або HTML5 Canvas. ці операції певно не нові для Вас.
Сlipping (відсікання) визначає область елемента, яка є видимою. Все навколо цієї області не відсікається.
masking (маскування) - комбінується з елементом області, зачіпаючи алфа-канал цього елемента. Частини приховані під маскою елемента, повністю або частково прозорі. Нові специфікації CSS masking спрямовані для впровадження цих двох операцій в світ HTML.
Clip в CSS 2.1
CSS 2.1 давно вже визначив властивість clip. Але, у цієї властивості є обмеження, воно застосовується лише до елементів з абсолютною позицією (position: absolute;). Ось як це виглядає:
У SVG теж властивість clip обмежена певними елементами. Це одна з причин, чому в специфікацію SVG додали властивість clip-path.
Властивість clip-path
clip-path може бути застосовано до всіх елементів HTML, SVG графічних елементів і SVG елементів контейнера. Він може бути елементом посилання
елемент
Елементарні форми не вимагають ніякої розмітки SVG. Вони були додані в clip-path. для того щоб ми могли використовувати прості функції відсікання.
- rectangle (
. . . . . ) Визначає прямокутник, додає два додаткові параметри радіуса для rounded rects. - circle (
. . ) Визначає простий коло з центральною точкою і радіусом. - ellipse (
. . . ) Визначає еліпс з центральною точкою, горизонтальний і вертикальний радіус. - polygon (
. . ..., ) Визначає багатокутник від переданого списку точок.
Розмітка CSS може виглядати наступним чином:
Відсікання може стане в нагоді для відображення вмісту контента. У наступному прикладі до зображення, застосовані різні операції відсікання.
Відсікання також може бути корисним для дизайну користувальницького інтерфейсу. У наступному прикладі, продовження списку.
Наведіть курсор на зображення
Ось вихідний код для анімації елементарної форми:
Друга операція після відсікання це Masking (маскування). Mask (маска) для зображення використовує щось на зразок (різнобарвною сітки), фільтрує видимі частини елемента. Далі я поясню різницю між, маски яскравості і альфа-маскою. Хто добре знайомий з програмою фотошоп, знають що це таке.
маска яскравості
Все просто. Маски яскравості зручний спосіб виділення конкретних тонів в зображенні. Чим світліше частина зображення, тим більше приховано елементів під маскою. Наприклад чорний буде повністю прозорий, білий вказує повністю непрозорий, і сірий тон вказує часткову прозорість елемента зображення.
Альфа-маска
Альфа-маска використовує той же самий принцип як і маска яскравості. Різниця в тому: чим менше непрозора частина зображення маски, тим менше видимий елемент буде на тому місці.
Зображення нижче - результат обох операцій маски, описаних вище.
властивості mask
Властивість mask комбінує masking зображення з посиланням на mask наступним чином.
Перший спосіб полягає у використанні mask-image. mask-repeat. mask-position. mask-clip. mask-origin і mask-size властивості, які визначені подібні їх зустрічної частини background з background-image. Як і для фонового зображення, можна визначити кілька джерел маски.
Перший приклад маски, може бути реалізований просто за допомогою наступного коду:
Якщо джерело маски повинен бути за розміром змісту, просто використовуйте узагальнююче властивість mask. так, як якщо б ви, робили це для background.
Другий спосіб посилання елемента
Властивості mask-box-image
Властивості mask-box-image дозволяє ділити зображення маски на 9 неперекривающіхся розташувань: чотири кути, чотири грані і центральна частина. Ці частини можуть бути відсічені, масштабироваться і розтягуватися за розміром області зображення маски. Властивість запозичує функціональні можливості від border-image і дозволяє маску по гранях і кутах змісту. Наступний приклад демонструє поведінку властивості:
Зображення маски з mask-box-imageпідтримка браузерів
Всі браузери підтримують clip. mask і clip-path. як зазначено в SVG 1.1 для SVG елементів. Але тільки один браузер дозволяє застосовувати властивості елементів HTML: Firefox (на кшталт). Давайте розглянемо більш докладно.
clip-path і властивості mask з посиланням на
Браузери на основі WebKit, як, наприклад, Safari і Chrome, мають підтримку mask-image. mask-box-image зображень і відповідних властивостей. Всіх їх, можна застосувати до елементів HTML, так само обидва браузера вже підтримують префікс -webkit-clip-path для елементарних форм і посилань
Якщо ви хочете спробувати clip і mask. переконайтеся, що ви використовуєте префікс і властивості unprefixed. На даний момент властивості unprefixed повинні використовувати посилання
висновок
Будьте обережні використовуючи