Я нахожусь в процессе попытки получить мою голову правильно вокруг Градиентов CSS3 (специфически радиальные), и при этом я думаю, что принялся относительно жесткая проблема.
В Adobe Illustrator я создал следующий стиль 'кнопки'.
Для создания этого изображения, я создал прямоугольник с цветом фона 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))
);
}
В основном, ужасный. Любые подсказки или подсказки, с благодарностью принятые и заранее большое спасибо за них!
Похоже, вы пытаетесь создать градиент, чтобы воспроизвести это:
«Затем я применил к нему« внутреннее свечение »с 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);
Без дополнительной разметки:
Радиальные градиенты очень трудно контролировать, и они работают в разных браузерах по-разному, чем линейные градиенты. И, в отличие от внутреннего свечения, они на самом деле будут круглыми, а не соответствовать в основном прямоугольным контурам вашего ящика.
Поскольку каждый браузер, который поддерживает тени от блоков, также поддерживает 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 */
);
}
Что ж, я должен сказать ... ваш вопрос меня очень заинтересовал, поэтому я занялся им.
Я нашел решение, но оно использует вложенный тег
, который немного грубоват, но практически идентичен вашему изображению.
Вот как выглядит HTML:
<a href="/" class="dark-button"><span>Carry on reading →</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
Удачи!