Главная » CSS, Веб-разработка

Как сделать красивую кнопку с помощью CSS

13 Август 2008 просмотров 19,390 комментариев 26


Продолжаю серию уроков по улучшению внешнего вида сайта с помощью CSS кода. Напомню предыдущие статьи:

Способы оформления цитат с помощью CSS
Как сделать красивую ссылку?

Сегодня урок будет посвящен оформлению кнопок, внимания которым, как правило, практически не уделяется: они выглядят серыми и скучными.

Вот так выглядит обычная кнопка типа button:

Сразу можно назвать несколько минусов использования таких кнопок по умолчанию:

  • отсутствует эффект при наведении на кнопку
  • не меняется внешний курсора
  • не соотвествует дизайну

Исправить эту ситуацию поможет несколько строчек CSS кода.

Создание flash эффекта перелистывания страницы на сайте

Компания “DOM-SB” предлагает профессиональные услуги: установка домофонов и других систем контроля доступа. Гарантия безопасности вашего дома.

Компания “МСКС” произведет качественный ремонт сантехники в течении суток. Предоставление гарантии на выполненную работу.

Почему в Москве живется вольготней собакам, а не москвичам? Статья о том, как делают бизнес бизнес на бродячих собаках.

Что такое вирусный маркетинг? Блог Владимира Мартынова о психологии и реалиях интернета.

Пусть наша кнопка будет иметь класс button:

<input type="button" value="Пример кнопки" class="button" />

Теперь можно прописать стили:

.button {
height:30px;
border-color:#c2e254 #9bb838 #9bb838 #c2e254;
border-style:solid;
border-width:1px;
background:#c2e254;
cursor:pointer;
}

Тогда наша кнопка будет выглядеть уже намного симпатичнее:

Теперь пропишем стили для эффекта наведения и нажатия на кнопку:

.button:hover {
border-color:#FFCC66 #FFFF99 #FFFF99 #FFCC66;
border-style:solid;
border-width:1px;
background:#FFFF99;
}

.button:focus {
background:#ddd;
border-color:#ddd #333 #333 #ddd;
border-style:solid;
border-width:1px;
}

Что получилось:

Псевдо класс :focus отвечает за вид кнопки после нажатия, но, правда, сохраняется только до того момента пока фокус не перейдет на другой элемент. Несмотря на это и то, что IE6 не знает этот псевдо класс, я считаю его использование полезным. В качестве альтернативы, как правило, управление поведением кнопки передается JavaScript’у.

В вышеприведенном примере для оформления кнопок мы не использовали изображений. О том, как правильно сделать кнопку с фоновым изображением читайте в статье: Input vs Button.

Блогун

Комментариев 26 »

  • ]]>tarasikbl пишет: ]]>

    Только щас о таком узнал спасибо  

    Цитировать

  • ]]>Денис Климонтов пишет: ]]>

    После того как кнопка нажата она меняет цвет на серый.  

    Цитировать

  • ]]>Fuzaylov пишет: ]]>

    Хороший цвет у кнопки. И вообще хорошо получилось. Все больше сталкиваюсь с такой проблемой, вот и решение.  

    Цитировать

  • ]]>Автор пишет: ]]>

    Все верно, Денис. Это и делает псевдо-класс :focus. Получается эффект, что после нажатия кнопка как бы неактивна и нажимать ее еще раз не нужно.  

    Цитировать

  • ]]>Вадик пишет: ]]>

    Класс сегодня же такое попробую, спасиб:)  

    Цитировать

  • ]]>Sanya пишет: ]]>

    Ага, цвет хорош!  

    Цитировать

  • ]]>Defiler пишет: ]]>

    opat vernylsa na etot sajt ctob skazat spasibo  

    Цитировать

  • ]]>Повелитель тегов пишет: ]]>

    замечание по поводу кроссбраузерности: лучше использовать в качестве кнопки тип submit. C батоном не все гладко в IE6 (нужны шаманские пляски). Лично я еще добавляю :active чтобы действительно выглядело как полноценное нажатие.  

    Цитировать

  • ]]>Автор пишет: ]]>

    Тип кнопки я выбрала в качестве примера, согласна что лучше использовать input.  

    Цитировать

  • ]]>Rushyan пишет: ]]>

    Спасибо большое!  

    Цитировать

  • ]]>SmokE пишет: ]]>

    Вот это пост! Сильно. Спасибо.  

    Цитировать

  • ]]>Borodina пишет: ]]>

    Ух ты! Здорово! Спасибо за совет. Мне очень понравился то эффект, когда кликаешь по кнопке и она становится серой!  

    Цитировать

  • ]]>терапи екатеринбург пишет: ]]>

    За последнюю фичу спасибо  

    Цитировать

  • ]]>Семен Бруква пишет: ]]>

    Кнопочка конечно красивая, но мне кажется что у нее края недостаточно оформлены…  

    Цитировать

  • ]]>Всеволод Козин пишет: ]]>

    Ребята,подскажите пожалуйста как сделать ссылку для скачивания в кнопке.Кнопочка супер спасибо за урок .  

    Цитировать

  • ]]>AlexZ пишет: ]]>

    Спасибо огромное! Сделал по примеру даже цвета не менял! Может тоже кому-нибудь пригодится http://lanxp.net.ua/kiskey.php
    Автору реZпект!  

    Цитировать

  • ]]>kengik пишет: ]]>

    о спс на поледней кнопке я поменял цвет теперь он лучше чем был  

    Цитировать

  • ]]>kengik пишет: ]]>

    .button:hover {
    border-color:#FFCC66 #FFFF99 #FFFF99 #FFCC66;
    border-style:solid;
    border-width:1px;
    background:#FFFF99;
    }

    .button:focus {
    background:#ddd;
    border-color:#ddd #333 #333 #ddd;
    border-style:solid;
    border-width:1px;
    }  

    Цитировать

  • ]]>Рустам пишет: ]]>

    А как сделать так чтобы после нажатия кнопки тебя кидало на нужный адресс! вообще как прикрепить адресс к кнопке?  

    Цитировать

  • ]]>Блог для вебмастеров пишет: ]]>

    А как сделать так чтобы после нажатия кнопки тебя кидало на нужный адресс! вообще как прикрепить адресс к кнопке?

    С помощью JS:

    <input type="button" value="Пример кнопки"  onclick="window.location='тут_url'" />
    

      

    Цитировать

  • ]]>Блоггер-музыкант пишет: ]]>

    ещё бы дождаться поддержки css 3…. )))) можно что хочешь будет сделать ))  

    Цитировать

  • ]]>igore4eG пишет: ]]>

    Народ все сделал как написано в oper’E работает, в IE нет(((

    Повелитель тегов пишет:

    замечание по поводу кроссбраузерности: лучше использовать в качестве кнопки тип submit. C батоном не все гладко в IE6 (нужны шаманские пляски). Лично я еще добавляю :active чтобы действительно выглядело как полноценное нажатие.

    пробовал не помогает( может нужно в стилях тоже писать вместо “button”-”sumbit”???  

    Цитировать

  • ]]>Алексанлр пишет: ]]>

    Странно. У меня кнопка почемуто не работает..Хотя я прописал адрес страницы куда она должна вести.  

    Цитировать

  • ]]>CP пишет: ]]>

    еще нужно outline: none добавить.  

    Цитировать

Комментарии

Добавьте ваш комментарий, или трекбэк с сайта. Вы также можете подписаться на комментарии к этой статье через RSS.

Вы можете использовать теги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Чтобы получить аватарку, зарегистрируйтесь на Gravatar.