Градиенты CSS3 для репродуцирования 'внутреннего свечения' эффект от Illustrator с примененным радиусом границы

Я нахожусь в процессе попытки получить мою голову правильно вокруг Градиентов CSS3 (специфически радиальные), и при этом я думаю, что принялся относительно жесткая проблема.

В Adobe Illustrator я создал следующий стиль 'кнопки'.

Button style screenshot

Для создания этого изображения, я создал прямоугольник с цветом фона rgb(63,64,63) или #3F403F, затем 'стилизованный' это, чтобы иметь радиус границы на 15 пкс.

Я затем применил 'внутреннее свечение' к нему с 25%-й непрозрачностью, размытостью на 8 пкс, белой от центра. Наконец, я применил белый штрих на 3 ПБ на него. (Я говорю Вам все это в случае, если Вы хотели воспроизвести его, если изображение выше не достаточно.)

Так, мой вопрос таким образом:

Действительно ли возможно воссоздать эту 'кнопку' с помощью CSS без потребности в изображении?

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

Моя лучшая попытка до сих пор довольно вызывает жалость, но для ссылки вот код:

section#featured footer p a
{
    color: rgb(255,255,255);
    text-shadow: 1px 1px 1px rgba(0,0,0,0.6);
    text-decoration: none;
    padding: 5px 10px;
    border-radius: 15px;
    -moz-border-radius: 15px;
    -webkit-border-radius: 15px;
    border: 3px solid rgb(255,255,255);
    background: rgb(98,99,100);

    background: -moz-radial-gradient(
        50% 50%, 
        farthest-side, 
        #626364, 
        #545454
    );
    background: -webkit-gradient(
        radial, 
        50% 50%,
        1px,
        50% 50%,
        5px,
        from(rgb(98,99,100)),
        to(rgb(84,84,84))
    );
}

В основном, ужасный. Любые подсказки или подсказки, с благодарностью принятые и заранее большое спасибо за них!

16
задан Chris Frederick 5 October 2011 в 23:41
поделиться

3 ответа

Похоже, вы пытаетесь создать градиент, чтобы воспроизвести это:

«Затем я применил к нему« внутреннее свечение »с 25 % непрозрачности, размытие 8px, белый от центра. "

Вы можете сделать именно это, используя вставку box-shadow. Например:

-moz-box-shadow: inset 0 0 8px rgba(0,0,0, 0.25);
-webkit-box-shadow: inset 0 0 8px rgba(0,0,0, 0.25);
38
ответ дан 30 November 2019 в 16:18
поделиться

Без дополнительной разметки:

Радиальные градиенты очень трудно контролировать, и они работают в разных браузерах по-разному, чем линейные градиенты. И, в отличие от внутреннего свечения, они на самом деле будут круглыми, а не соответствовать в основном прямоугольным контурам вашего ящика.

Поскольку каждый браузер, который поддерживает тени от блоков, также поддерживает rgba и несколько фонов, я бы использовал комбинацию двух линейных градиентов, наложенных друг на друга и использующих цвета rgba - один по горизонтали и один по вертикали. Что-то в этом роде (заменяя мои цвета тем, что вам нужно):

section#featured footer p a {
  background-color: #000;
  background-image: -moz-linear-gradient(
    left, 
    rgba(255,255,255,.5), 
    rgba(255,255,255,0) 10%, 
    rgba(255,255,255,0) 90%, 
    rgba(255,255,255,.5)
  ), -moz-linear-gradient(
    top, 
    rgba(255,255,255,.5), 
    rgba(255,255,255,0) 10%, 
    rgba(255,255,255,0) 90%, 
    rgba(255,255,255,.5)
  );
  background-image: -webkit-gradient(
    /* webkit's syntax for the same horizontal gradient */
    ), -webkit-gradient(
    /* webkit's syntax for the same vertical gradient */
    );
} 
2
ответ дан 30 November 2019 в 16:18
поделиться

Что ж, я должен сказать ... ваш вопрос меня очень заинтересовал, поэтому я занялся им.

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

Вот как выглядит HTML:

<a href="/" class="dark-button"><span>Carry on reading&nbsp;&nbsp;&rarr;</span></a>

Обратите внимание на вложенный внутри . Неразрывные промежутки предназначены только для того, чтобы дать стрелке столько же места, сколько есть на вашем изображении.

А вот CSS:

a.dark-button { 
    font: 11pt/11pt "Helvetica Neue", Helvetica, Arial, sans-serif; 
    font-weight: 100; 
    color: white; 
    text-decoration: none; 
    background-color: #555; 
    border: 3px solid white; 
    -moz-border-radius: 15px; padding: 5px 3px; 
    text-shadow: 1px 1px 2px #111;
}
    a.dark-button span { 
        background-color: #666; 
        padding: 2px 12px; 
        -moz-border-radius: 15px;
        -moz-box-shadow: 0 0 1px #666, 0 0 2px #666, 0 0 3px #666, 0 0 4px #666, 0 0 5px #666, 0 0 7px #666; 
    }

В основном, чтобы получить эффект внутреннего свечения, я сделал внешнее свечение (в виде тени) от внутреннего элемента. Надеюсь, это имеет смысл.

Чтобы увидеть это вживую: http://ianstormtaylor.com/experiments/css-buttons

Удачи!

0
ответ дан 30 November 2019 в 16:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: