- PVSM.RU - https://www.pvsm.ru -

В этой статье я покажу один из вариантов создания градиента для границ у любого блока с помощью CSS3.
В конечном варианте у нас получится кнопка, которая на скриншоте выше.
Работать мы будем с такой вёрсткой:
<html>
<body>
<a href="http://google.com" class="magicButton">I am a button!</a>
</body>
</html>
Сначала зададим простую стилизацию для кнопки
.magicButton
{
color: #444;
font: bold 16px arial;
background: #e4e4e4;
border: 1px solid transparent; /* граница будущего градента */
border-radius: 3px;
padding: 8px 12px;
text-decoration: none;
text-shadow: 0 1px 1px rgba(255,255,255,0.75);
box-shadow: inset 0 0 0 1px rgba(255,255,255,0.5), 0 3px 6px -3px rgba(0,0,0,0.25);
}
Затем приступаем, собственно, к хаку.
Для того чтобы создать градиент на месте нашей границы нам понадобится в первую очередь его расположить там (background-origin: border-box;), а затем обрезать чтобы он находился точно в этом месте (background-clip: border-box;).
Основная часть готова, теперь осталось лишь прописать наш градиент. В данном примере я использую градиент в светло-серых тонах, если вы используете кнопку не на светлом фоне, то цвета градиента надо будет соответственно изменить.
linear-gradient(#e4e4e4, #ccc);
Но после установки градиента появляется проблема в том что залито так же и весь фон кнопки. Для этого мы наложим ещё один градиент, только на этот раз расположим и обрежем его в пределах padding-box.
И в тоге получим вот такую кнопку: jsfiddle.net/CyberAP/DzHUj/ [1]
Минусы данного приёма:
Но есть и плюсы:
Автор: CyberAP
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/css3/4268
Ссылки в тексте:
[1] jsfiddle.net/CyberAP/DzHUj/: http://jsfiddle.net/CyberAP/DzHUj/
Нажмите здесь для печати.