Рисуем кнопку
Для начала нам необходимо нарисовать кнопку, вроде этой:
Для этого лучше всего нам подойдет инструмент “Rounded Rectangle Tool” в Photoshop, с него и начнем – нарисуем нечто вроде:
Изменяя параметр Radius вы сможете задать желаемое загругление
кнопок ( в примере для наглядности контент полностью прозрачный (”Fill
Opacity” => 0%)):
Ширина объекта в данном примере 320px – т.е. я предполагаю, что кнопок большего размера не будет.
Границу выводим с помощью “Stroke” (из “Blending Options”), тип – градиент – от #000000 до #676767:
Теперь не мешало бы и залить кнопочку градиентом (сверху указан
параметр opacity, внизу цвет; инструмент “Gradient Overlay” из
“Blending Options”):
Результат:
Результат с залитой границей:
Если мы сделаем цветной фон:
Ну вот – кнопочка и готова, приступим к следующему шагу…
Простая CSS кнопка
Самый простой вариант – у нас все кнопки одного размера и одного/двух цветов, соответственно готовим небольшой “спрайт” на все случаи жизни (простым копированием слоя с кнопкой):
Теперь нам остается лишь слегка подправить CSS для таких кнопок:
01. .button {
02. cursor : pointer ;
03. display : block ;
04. height : 70px ;
05. width : 320px ;
06. line-height : 70px ;
07. text-align : center ;
08. background-image : url ( 'images/buttons.png' );
09. background-repeat : no-repeat ;
10. }
11. .button. green { background-position : 0 0 }
12. .button.green:hover { background-position : 0 -350px }
13.
Сам HTML код элементарен:
1. < a href = "#" title = "Label" class = "button green" >Label</ a >
2. < a href = "#" title = "Label" class = "button white" >Label</ a >
3. < a href = "#" title = "Label" class = "button black" >Label</ a >
4. < a href = "#" title = "Label" class = "button orange" >Label</ a >
5. < a href = "#" title = "Label" class = "button red" >Label</ a >
Результат предсказуем:
Резиновая CSS кнопка
Теперь усложним задачу – мы не имеем представления какого цвета
будут кнопки, и какого размера, мы лишь предполагаем, что кнопки не
будут больше 320px в ширину.
Строим DOM
Каждая кнопка будет представлять из себя элемент <a>,
обернутый в <li>. Элемент <em> нам так же понадобится для
создания резиновых кнопок, чтобы внести ясность приведу следующий скрин:
Ну и сам HTML код:
1. < ul class = "small" >
2. < li class = "button" >< a href = "#" title = "Label" >Label< em ></ em ></ a ></ li >
3. < li class = "button green" >< a href = "#" title = "Label" >Label< em ></ em ></ a ></ li >
4. < li class = "button white" >< a href = "#" title = "Label" >Label< em ></ em ></ a ></ li >
5. < li class = "button black" >< a href = "#" title = "Label" >Label< em ></ em ></ a ></ li >
6. < li class = "button orange" >< a href = "#" title = "Label" >Label< em ></ em ></ a ></ li >
7. < li class = "button red" >< a href = "#" title = "Label" >Label< em ></ em ></ a ></ li >
8. </ ul >
Примечание: можно использовать практически любые другие
HTML теги, это дело вкуса, так что таким же образом вы можете изменить
и элементы формы. Для упрощения HTML’а можно воспользоваться
JavaScript’ом. Приведу пример:
01. < script type = "text/javascript" >
02. $(document).ready(function(){
03. $('form :button, form :submit').each(function(){
04. var className = $(this).attr('class');
05.
06. $(this).wrap('< div class = "button '+className+'" ></ div >');
07. $(this).after('< em ></ em >');
08. });
09. });
10. </ script >
11. < form class = "rubber" onsubmit = "return false;" >
12. < input type = "button" class = "green" title = "Button" value = "Button" />
13. < input type = "submit" class = "red" title = "Submit" value = "Submit" />
14. </ form >
Пишем CSS
Читаем комментарии по коду:
01. .button {
02.
03.
04.
05.
06. border-radius: 10px ;
07. -moz-border-radius: 10px ;
08. -khtml-border-radius: 10px ;
09. -webkit-border-radius: 10px ;
10.
11.
12.
13.
14.
15. padding-right : 20px ;
16.
17.
18.
19.
20.
21.
22. position : relative ;
23. }
24. .button a, .button em{
25.
26. background-image : url ( 'css/images/button.png' );
27. background-repeat : no-repeat ;
28. }
29. .button a{
30.
31.
32.
33.
34.
35. display : block ;
36. height : 52px ;
37. line-height : 52px ;
38.
39. outline : none ;
40. color : #333 ;
41. font-size : 18px ;
42. text-indent : 20px ;
43. text-decoration : none ;
44. text-align : center ;
45. text-shadow : #333 0px -1px 0px ;
46. }
47. .button em{
48.
49.
50.
51.
52. display : block ;
53. position : absolute ;
54. background-position : 100% 0 ;
55. width : 20px ;
56. height : 52px ;
57. top : 0px ;
58. right : 0px ;
59. }
60.
61. .button. green a,
62. .button. black a,
63. .button. red a
64. {
65. color : #fff ;
66. }
67.
68. .button. green { background-color : #009e0f }
69. .button.green:hover{ background-color : #068612 }
70. .button. white { background-color : #f0f0f0 }
71. .button.white:hover{ background-color : #c0c0c0 }
72. .button. black { background-color : #000 }
73. .button.black:hover{ background-color : #333 }
74. .button.orange{ background-color : #ff7800 }
75. .button.orange:hover{ background-color : #c60 }
76. .button. red { background-color : #f00 }
77. .button.red:hover{ background-color : #c00 }
Наблюдаем результат
Сравним результат наших трудов в разных браузерах:
Источник: http://anton.shevchuk.name/html-and-css/css-for-beginners-simple-css-buttons/ |