Вырезать текст в CSS. Возможное? - программирование
Подтвердить что ты не робот

Вырезать текст в CSS. Возможное?

Скажем, мы имеем:

<div class="outer">
    <div class="inner">
        <span class="text">Hello!</span>
    </div>
</div>

"Внешний" div имеет линейный фон градиента. "Внутренний" div имеет синий фон. Можно ли сделать цвет текста таким же, как цвет "внешнего" div. Тип эффекта текстовой маски:

enter image description here

4b9b3361

Ответ 1

Вы можете подделать его, используя указанную прозрачность текста. Во-первых, вы применяете тот же градиент к диапазону, что и на внешнем div. Затем вы применяете синий фон к внутреннему div, и текст будет выглядеть так, как будто он был выбит. У меня есть образец скрипта здесь. Здесь статья, в которой подробно описывается техника.

Помните, что этот первый метод НЕ будет работать в IE. Если вы хотите добиться аналогичного эффекта и в IE, вы можете использовать технику показанную здесь. Этот метод требует png и некоторую дополнительную разметку, но, похоже, она работает повсюду. Поскольку это не настоящая текстовая маска, вам, возможно, придется немного поиграть с ней, чтобы получить ее в самый раз.

Обновление: Дальнейшее тестирование показывает, что Firefox не отображает первый метод... Я бы придерживался второго, но тогда он больше не просто CSS, он требует изображения.