Невозможно сделать это с помощью CSS3 - даже Значения изображений CSS3 и модуль замененного содержимого , хотя он содержит множество интересных вещей, связанных с градиентами , только позволяет использовать их там, где вы сможете использовать изображение, а не цвет.
Тем не менее, SVG позволяет вам делать это , хотя использование его в HTML - это немного работы. Сначала создайте документ SVG с вашим градиентным текстом. Вам понадобится градиент:
<defs>
<linearGradient id="heading_gradient" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:rgb(0,0,0); stop-opacity:1"/>
<stop offset="100%" style="stop-color:rgb(0,0,0); stop-opacity:0.1"/>
</linearGradient>
</defs>
И некоторый текст, к которому его можно применить, обратите внимание на атрибут fill
:
<text x="0" y="100"
font-family="sans-serif" font-weight="bold" fill="url(#heading_gradient)" >
<tspan font-size="100">A Big Heading</tspan>
</text>
Тогда вам нужно включить SVG в ваш HTML.
<h1>
<object data="heading-fill.svg" type="image/svg+xml" height="125" width="800">
A Big Heading
</object>
</h1>
Обратите внимание, что без поддержки SVG заголовок должен возвращаться к содержимому, содержащемуся в теге объекта, и все должно быть доступным (я не проверял). Затем настройте CSS так, чтобы резервный контент соответствовал SVG, и добавьте фоновое изображение:
h1 {
font-size: 100px;
font-family: sans-serif;
background-image: url('daisy-grass-repeating-background.jpg');
}
Здесь есть полный пример , у меня работает в Firefox 3.6 / 4, Chromium и Opera 11.01. Это на самом деле не очень читабельно, но я оставлю вам тонкую настройку;) В зависимости от того, какие браузеры вы хотите поддерживать, вам может потребоваться изучить embed
вместо object
.