Как к кнопке добавить градиентную заливку?

Влад Мержевич

Тема:Формы
Internet ExplorerChromeOperaSafariFirefoxAndroidiOS
3.0+1.0+4.0+1.0+1.0+1.0+1.0+

Задача

Кроссбраузерно добавить градиент для кнопки с помощью изображения.

Решение

Вначале готовим изображение градиента в графическом редакторе. Ширину картинке достаточно задать 30 пикселов, а высоту — 20–40 пикселов. На рис. 1 показан пример градиента для добавления к кнопке.

Градиент

Рис. 1. Градиент

Добавление картинки к кнопке происходит с помощью свойства background, его значением выступает путь к графическому файлу. Поскольку ширина кнопки зависит от длины текста, т.е. может меняться, следует добавить значение repeat-x, которое повторяет фон по горизонтали (пример 1).

Пример 1. Добавление градиента к кнопке

HTML5CSS 2.1IECrOpSaFx

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Градиент</title>
  <style>
   .gradient {
    background: #00b8e4 url(images/bg-button.png) repeat-x; /* Цвет фона 
                                                            и путь к файлу с градиентом */ 
    font-size: 9pt; /* Размер шрифта в пунктах */
    height: 30px; /* Высота кнопки */
   }
  </style>
 </head>
 <body> 
  <form action="handler.php">
   <p><input type="button" value="Обычная кнопка">
   <input type="button" class="gradient" value="Кнопка с градиентом"></p>
  </form>
 </body>
</html>

Результат данного примера показан на рис. 2. В стиле вводится свой класс с именем gradient, он добавляется к желаемому тегу <input>.

Вид обычной кнопки и кнопки с градиентом

Рис. 2. Вид обычной кнопки и кнопки с градиентом

Применение свойства background отменяет особенности браузеров и делает кнопку прямоугольной.

HTML по теме

CSS по теме


Fatal error: Uncaught Error: Failed opening required '/home/gooli/html.in.ua/www/footer.php' (include_path='.:/usr/local/pear/php82') in /home/gooli/html.in.ua/app/faq/kak-k-knopke-dobavit-gradientnuyu-zalivku.php:51 Stack trace: #0 {main} thrown in /home/gooli/html.in.ua/app/faq/kak-k-knopke-dobavit-gradientnuyu-zalivku.php on line 51