Как создать кнопку с градиентным фоном и фоновым изображением? - PullRequest
1 голос
/ 08 июля 2010

Я пытаюсь использовать проверку на стороне клиента jquery для моей веб-формы asp.net 2.0.и кажется, что обычная кнопка ввода ввода может легко вызвать проверку по щелчку.

, но в настоящее время я использую для этой страницы кнопку с составленным изображением из трех элементов, поэтому она не запускает проверку автоматически.

Я смотрел на css3 и обнаружил, что теперь он поддерживает градиент, это все хорошо и хорошо, за исключением того факта, что мне нужно показать изображение стрелки на правой стороне кнопки.Я проверил с нормальным фоновым изображением и фоновым цветом, чтобы настроить кнопку, и она работает.но я не могу заставить то же самое работать для градиентного фона и фонового изображения.

<html>
<head>
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Droid Sans">
<style>
.button{
    -webkit-gradient(
    linear,
    left bottom,
    left top,
    color-stop(0.25, rgb(88,73,229)),
    color-stop(0.63, rgb(115,103,255)),
    color-stop(0.82, rgb(150,134,255))
);
-moz-linear-gradient(
    center bottom,
    rgb(88,73,229) 25%,
    rgb(115,103,255) 63%,
    rgb(150,134,255) 82%
);

    color:#FCD3A5;
    -webkit-border-radius: 5px; 
    -moz-border-radius: 10px;
    font: 12px;
    width:140px;
    line-height: 28px;
    height: 28px;
    font-weight: bold;
    font-family:"Droid Sans",serif;
}

.orange{
    background:-moz-linear-gradient(center top , #FF9300, #FF6800) repeat scroll 0 0 transparent;
    border:1px solid #CFCFCF;
    color:#FFFFFF;
    font: 12px;
    width:140px;
    line-height: 28px;
    height: 28px;
    font-family:"Droid Sans",serif;
    background-image:url(arrow_right.png);
    background-repeat: no-repeat; 
    background-position:right;

}

.button2{
    background-color:#2daebf;
    background-image:url(arrow_right.png);
    font: 12px;
    width:140px;
    line-height: 28px;
    height: 28px;
    font-weight: bold;
    color: white;
    font-family:"Droid Sans",serif;
    background-repeat: no-repeat; 
    background-position:120px;
    border: 0px;
    -webkit-border-radius: 5px; 
    -moz-border-radius: 10px; 
    -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5); -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5); text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25);
}
.button3{
    background: green; /* fallback for older/unsupporting browsers */  
    background:-webkit-gradient(
        linear,
        left bottom,
        left top,
        color-stop(0.25, rgb(88,73,229)),
        color-stop(0.63, rgb(115,103,255)),
        color-stop(0.82, rgb(150,134,255))
    );
    background:-moz-linear-gradient(
        center bottom,
        rgb(88,73,229) 25%,
        rgb(115,103,255) 63%,
        rgb(150,134,255) 82%
    );
    border-top: 1px solid white;  
    background-image:url(arrow_right.png);
    background-repeat: no-repeat; 
    background-position:120px;

}

</style>
</head>
<input class="button3" type="submit" value="SUBMIT"/ >
</html>

Есть идеи?

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

Кнопки пользовательского интерфейса Google Gmail / Docs / etc выполняют эту задачу, используя некоторые хитрости CSS. Вы можете увидеть чью-либо реализацию здесь:

http://todc.github.com/css3-google-buttons/#button

В основном кнопки являются собственно якорем href <a> с примененными к ним градиентами. Тогда есть отдельный стиль, который устанавливает фон для изображения, используя псевдо-селектор ::before. Это немного сложно реализовать, но, очевидно, возможно.

0 голосов
/ 09 июля 2010

Не может быть сделано: см. Эту статью

Mozilla в настоящее время поддерживает только CSS-градиенты в качестве значений свойства background-image, а также в качестве сокращенного фона. Вы указываете значение градиента вместо URL изображения.

Я уверен, что webkit (safari / chrome), вероятно, такой же. IE не поддерживает градиенты.

Мое предложение было бы заключить вашу кнопку отправки в элемент div. Примените градиент к кнопке отправки, а фоновое изображение к элементу div и добавьте небольшой отступ, чтобы правильно разместить его там, где это необходимо. Или используйте элемент <label> для кнопки отправки и примените фоновые изображения к метке.

...