Opera 10.x поддерживает SVG в фоновых изображениях, а SVG позволяет создавать градиенты почти так же, как это делают расширения CSS для Firefox и Safari.
Поддержка фона SVG в Opera, кажется, имеет некоторые неприятные ошибки, когда ваш элемент также имеет границы в 10.0 и ниже, но в 10.5 он кажется достаточно надежным (по моему ограниченному опыту).
CSS
/* Opera */
background-image: url(gradient.svg);
gradient.svg
<svg xmlns="http://www.w3.org/2000/svg" version="1.0">
<defs>
<linearGradient id="gradient" x1="0" y1="0" x2="0" y2="100%">
<stop offset="0%" style="stop-color: #c6c6c6;"/>
<stop offset="100%" style="stop-color: #dcdcdc;"/>
</linearGradient>
</defs>
<rect x="0" y="0" fill="url(#gradient)" width="100%" height="100%" />
</svg>
Вы также можете включить SVG непосредственно в файл CSS, используя URL-адрес данных, если вы кодируете SVG в URL-адресе. (Например, в Python это можно сделать, удалив символы новой строки и ненужные пробелы, а затем передав содержимое файла в urllib.quote
).
Это немного нечитаемо, но сохраняет HTTP-запрос, и если у вас есть более одного градиента SVG, встроенного в ваш файл CSS, вы должны увидеть некоторую экономию пропускной способности по сравнению с отдельными файлами (при условии, что ваш файл CSS заархивирован).
/* Opera */
background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20version%3D%221.0%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22gradient%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%220%22%20y2%3D%22100%25%22%3E%3Cstop%20offset%3D%220%25%22%20style%3D%22stop-color%3A%20%23c6c6c6%3B%22/%3E%3Cstop%20offset%3D%22100%25%22%20style%3D%22stop-color%3A%20%23dcdcdc%3B%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20fill%3D%22url%28%23gradient%29%22%20width%3D%22100%25%22%20height%3D%22100%25%22%20/%3E%3C/svg%3E);
person
Paul D. Waite
schedule
07.11.2010