Идея заключается в применении текста (шрифта) в качестве маски слоя на изображение. Достижение подобного эффекта, используя только HTML (таким образом, кросс-браузерный без использования Flash / Silverlight …) не удалось, но теперь с SVG это можно сделать очень легко. Это решение прекрасно и просто, чтобы получить желаемый эффект, нужно поместить объект SVG (содержащие текст маску) на изображении. Объекты SVG могут быть размещены непосредственно на изображении (с использованием Z-индекс), или внутри DIV, содержащего изображение в его фоне.
Вот конечный результат с изображением в качестве фона текста:
SVG текст здесь имеет контур толщиной 5px и 100% прозрачность, а заливка текста имеет значение прозрачности 50%.
HTML код:
<div id="bkDiv"> <svg width="100%" height="100%"> <defs> <mask id="theMask"> <rect width="100%" height="100%" fill="#fff" /> <text x="0" y="120" id="theText" fill="#000">Codicode</text> </mask> </defs> <rect width="100%" height="100%" mask="url(#theMask)" fill="#000" /> </svg> </div>
Css код:
#bkDiv { background-image : url('my_image.jpg'); height:130px; width:550px; } #theText { font-size:140px; font-family:impact; stroke:#000; stroke-width:5px; fill-opacity:0.5; }