Изменение цвета ячейки при наведении css. Меняем цвет элемента по наведению мышки. Основной код CSS

В данной статье на примере показано, как сделать на произвольном элементе сайта смену цвета, если на него был наведен курсор мышки.

Делается данная "штука" при помощи стилей CSS, т.е. придется добавить несколько строчек текста в файл стилей шаблона, а так же проявить свои дизайнерские способности. Я подскажу что именно добавить.

Обновлено 17.01.2019

Внимание! Я выпустил новую тему Romb для ваших статейников и блогов. Максимально быстрая по Google PageSpeed и максимальная оптимизация под SEO.

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

Как только мышка оказывается наведена на любое поле в списке - происходит смена заднего фона строки, а так же цвет текста/ссылки в названии рубрики сайта.

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

XHTML

Биржи ссылок Все плагины Wordpress Хаки Wordpress

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

  • и прочие подходящие теги.

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

    Практика

    Теперь необходимо задать действие по наведению мышки. Как уже говорилось выше - делаем все при помощи стилей CSS (файл шаблона может называться style.css, css.css, core.css или еще как-то).

    Catside a:hover {background: #0078BF; color: #fff;}

    Catside a:hover { background : #0078BF ; color : #fff ; }

    Данной строкой мы указали браузеру менять цвет заднего фона при наведении мышки на синий (#0078BF) и сказали что цвет шрифта должен стать белым (#fff). Сама "штука", позволяющая понять браузеру, что это нужно делать по наведению мышки - псевдокласс hover (о нем можно почитать

    Использование стилей и управление ими с помощью JavaScript позволяет менять вид ячейки "на ходу", при выполнении определенных условий, таких как наведение курсора на ссылку или саму ячейку.

    Рассмотрим самый простой прием - цвет фона ячейки меняется, когда курсор мыши наводится на нее.

    Наведение мыши на область отслеживается событием onMouseOver , а вывод мыши за ее пределы - событием onMouseOut . Поскольку цвет фона меняется у той же самой ячейки, на которую наводим курсор мыши, то изменение стиля делается с помощью метода this.style.background .

    Пример 1. Изменение цвета фона






    Пункт 1 Пункт 2

    В примере используется изменение серого цвета фона на оранжевый.В браузере Netscape 4.x приведенный способ не работает.

    Можно, также, сделать переход на другой документ при нажатии не на саму ссылку, а на ячейку таблицы. Тогда вся ячейка превратится в одну ссылку, а не только текст внутри нее. Надо отметить, что данный подход не самый лучший, в силу его неочевидности, посетители веб-сайтов привыкли, что при наведении на ссылку, курсор мыши превращается в руку. С помощью CSS можно переопределить вид курсора мыши, однако эта возможность доступна только для браузера Internet Explorer.






    Пункт 1 Пункт 2


    Чтобы цвет ячейки изменялся лишь при наведении на ссылку внутри нее, следует обращаться к свойствам ячейки через ее имя. Дабы программа знала, свойства какой ячейки изменять, используется параметр ID, уникальным образом определяющим элемент.

    Для удобства, изменение цвета ячейки оформлено в виде отдельных функций. В связи с тем, что браузеры Internet Explorer, Netscape и Opera используют разные подходы для динамического изменения стиля элемента, в функциях, которые приведены в примере 3, цвет фона меняется двумя способами. Каждый браузер выберет для себя подходящую строку, а оставшаяся будет проигнорирована.

    Пример 3. Изменение свойств ячейки






    Пункт
    1
    Пункт
    2


    function newColor(idCell) {
    if (document.all) eval("document.all."+idCell+".style.background = "#FFCC33"");
    else eval("document.getElementById("" + idCell + "").style.background = "#FFCC33"");
    }

    function backColor(idCell) {
    if (document.all) eval("document.all."+idCell+".style.background = "#CCCCCC"");
    else eval("document.getElementById("" + idCell + "").style.background = "#CCCCCC"");
    }

    Здравствуйте уважаемые читатели блога webcodius! Часто получаю вопросы: как сделать так, чтобы картинка на web-страничке менялась при наведении на нее курсора мыши. Такой эффект встречается на многих сайтах и самый простой пример, это когда вы наводите курсор на какую-нибудь кнопку, а она после этого меняет цвет. Иногда для создания подобного эффекта применяется JavaScript, но обычно достаточно одного CSS, особенно после появления CSS третьей версии. Далее в статье я расскажу как менять картинку при наведении курсора мыши с помощью только одного CSS, рассмотрю несколько способов и различные эффекты.

    Эффекты изменения элемента веб страницы при наведении курсора мыши часто называют hover-эффектами . Связано это с тем, что при реализации таких эффектов используется , который определяет стиль элемента при наведении на него курсора мыши.

    Для начала рассмотрим вариант попроще. Допустим у Вас на страничке вставлена картинка, как приведено ниже:

    И допустим вам необходимо менять ее отображение при наведении на нее курсора мыши. При вставке этого изображения к тегу img добвим атрибут class="animate1" , тогда html-код картинки будет выглядеть примерно так:

    Для начала можно просто при наведении курсора сделать картинку прозрачной. За прозрачность в CSS отвечает свойство opacity , которое относится к CSS3. В качестве значения используются дробные числа от 0 до 1, где ноль соответствует полной прозрачности, а единица, наоборот, непрозрачности объекта. Для старых версий Internet Explorer придется использовать свойство filter со значением alpha(Opacity=X) , так как они не поддерживают свойство opacity . Вместо X надо будет подставить число от 0 до 100, где 0 означает полная прозрачность, а 100 — полная непрозрачность.

    Тогда, чтобы сделать картинку прозрачной при наведении курсора в файл стилей, или между тегами и html-файла нужно добавить следующий css-код:


    img.animate1:hover {
    filter: alpha (Opacity=25);/* прозрачность для IE */
    opacity: 0.25;/* прозрачность для других браузеров */
    }

    На случай если вы не разбираетесь в CSS поясню, что запись img.animate1:hover говорит браузеру, что для всех элементов , имеющих атрибут class равный animate1 при наведении на них курсора мыши, применять указанные стили. А стили указываются между фигурными скобками { и }. Если все сделали правильно, то должно получиться примерно так:

    Можно сделать картинку в исходном состоянии полупрозрачной, а при наведении курсора делать ее не прозрачной. Тогда в CSS-файл нужно добавить такие строки:

    img.animate1 {
    filter: alpha (Opacity=25);
    opacity: 0.25;
    }
    img.animate1:hover {

    opacity: 1;
    }

    Результат будет такой:

    Для большего эффекта можно замедлить изменения прозрачности картинки. Для этого можно воспользоваться свойством CSS transition , которое устанавливает эффект перехода между двумя состояниями элемента. Добавим для примера одну секунду замедления. Тогда наш CSS код станет таким:

    img.animate1 {
    filter: alpha (Opacity=25);
    opacity: 0.25;
    -moz-transition: all 1s ease-in-out; /* эффект перехода для Firefox до версии 16.0 */
    -webkit-transition: all 1s ease-in-out; /* эффект перехода для Chrome до версии 26.0, Safari, Android и iOS */
    -o-transition: all 1s ease-in-out; /* эффект перехода для Opera до версии 12.10 */
    transition: all 1s ease-in-out; /* эффект перехода для других браузеров */
    }
    img.animate1:hover {
    filter: alpha (Opacity=100);
    opacity: 1;
    }

    Результат:

    С помощью свойства transform изображение можно масштабировать, вращать, сдвигать, наклонять. Попробуем увеличить картинку. Тогда css-код будет таким:

    img.animate1{


    — o-transition: all 1s ease;
    transition: all 1s ease;
    }
    img.animate1:hover{
    — moz-transform: scale (1.5); /* эффект трансформации для Firefox до версии 16.0 */
    — webkit-transform: scale (1.5); /* эффект трансформации для Chrome до версии 26.0, Safari, Android и iOS */
    — o-transform: scale (1.5); /* эффект трансформации для Opera до версии 12.10 */
    — ms-transform: scale (1.5); /* эффект трансформации для IE 9.0 */
    transform: scale (1.5); /* эффект трансформации для других браузеров */
    }

    И результат будет таким:

    К увеличению картинки можно добавить поворот. Тогда css стили немного изменяться:

    img.animate1{
    — moz-transition: all 1s ease;
    — webkit-transition: all 1s ease;
    — o-transition: all 1s ease;
    transition: all 1s ease;
    }
    img.animate1:hover{
    — moz-transform: rotate (360deg) scale (1.5);
    — webkit-transform: rotate (360deg) scale (1.5);
    — o-transform: rotate (360deg) scale (1.5);
    — ms-transform: rotate (360deg) scale (1.5);
    transform: rotate (360deg) scale (1.5);
    }

    Результат:

    Выше мы рассмотрели случаи, когда в анимировании участвует одна картинка. Далее рассмотрим способы подмены одного изображения на другое . В этом случае обычно подготавливают два изображения одинакового размера: одно для исходного вида, другое для его подмены.

    Допустим у нас есть две картинки, одна черно-белая другая цветная:

    Сделаем так, чтобы при наведении курсора на черно-белое изображение отображалось цветное. Для этого исходную картинку сделаем фоном элемента div с помощью свойства background . А при наведнии на картинку курсора будем менять фоновую картинку с помощью все тех же псевдокласса hover и свойства background . Для реализации этого эффекта на html страницу добавляем элемент div с классом rotate1:

    И добавляем следующие описания стилей:

    div.rotate1 {
    background: url (img/2.jpg); /* Путь к файлу с исходным рисунком */
    width: 480px; /* Ширина рисунка */
    height: 360px; /* Высота рисунка */
    }
    div.rotate1:hover {
    background: url (img/1.jpg); /* Путь к файлу с заменяемым рисунком */
    }

    И результат:

    Данный способ имеет один существенный недостаток. Так как второй рисунок загружается только при наведении курсора, то в случае если у пользователя медленный интернет, а размер файла с картинкой имеет большой размер, отображение картинки будет происходить с некоторой паузой. Поэтому ниже рассмотрим еще несколько способов подмены картинок при наведении курсора мыши.

    Следующий способ будет основан на объединении двух картинок в один файл. Допустим нам нужно на страничку поместить кнопку, которая при наведении на нее курсора мыши меняла бы вид. Для этого два изображения объединяем в один файл и результирующая картинка будет выглядеть примерно так:

    В этом случае смена одного рисунка на другой будет осуществляться путем сдвига фонового изображения по вертикали с помощью свойства background-position . Так как при клике по кнопке обычно происходит переход на другую страницу, то изображение вставим в элемент < a> . Тогда в html-страницу вставляем такой код:

    А в css-файл такой:

    a.rotate2 {
    background: url (img/button.png); /* Путь к файлу с исходным рисунком */
    display: block; /* Ссылка как блочный элемент */
    width: 50px; /* Ширина рисунка в пикселах */
    height: 30px; /* Высота рисунка */
    }
    a.rotate2:hover {
    background-position: 0 -30px; /* Смещение фона */
    }

    Результат:

    И последний на сегодня способ, это когда одно изображение размещается под другим с помощью css правила position: absolute . В этом случае помещаем в контейнер div два изображения:




    И добавим css-стилей:

    Animate2{
    position:relative;
    margin:0 auto;/* устанваливаем блок div по центру страницы*/
    width:480px; /* Ширина */
    height: 360px; /* Высота */
    }
    .animate2 img {
    position:absolute; /* абсолютное позиционирование*/
    left: 0; /* выравниваем картинки по левому верхнему углу div-а*/
    top: 0; /* выравниваем картинки по левому верхнему углу div-а */
    }

    После добавления правил css, картинки будут размещены друг под другом. Теперь управляя прозрачностью картинок с помощью свойства opacity в обычном состоянии будем показывать вторую картинку, а при наведении курсора первую. Для этого в обычном состоянии делаем картинку с классом first полностью прозрачной, а при наведении курсора наоборот: картинка с классом second будет полностью прозрачной, а с классом first не прозрачной:

    Animate2 img.first { /* первая картинка полностью прозрачная */
    opacity:0;
    filter:alpha (opacity=0);
    }
    .animate2:hover img.first { /* при наведении курсора первая картинка становится не прозрачной */
    opacity:1;
    filter:alpha (opacity=100);
    }
    /* а вторая при наведении курсора становится прозрачной */
    opacity:0;
    filter:alpha (opacity=0);
    }

    Результат:

    Можно добиться плавности перехода добавив к последнему правилу свойство CSS transition:

    Animate2:hover img.second, .animate2 img.second:hover {
    opacity:0;
    filter:alpha (opacity=0);
    -moz-transition: all 2s ease;
    -webkit-transition: all 2s ease;
    -o-transition: all 2s ease;
    transition: all 2s ease;
    }

    И результат:

    А если добавить свойство transform:

    Animate2:hover img.second, .animate2 img.second:hover {
    opacity:0;
    filter:alpha (opacity=0);
    -moz-transform:scale (0, 1);
    -webkit-transform:scale (0, 1);
    -o-transform:scale (0, 1);
    -ms-transform:scale (0, 1);
    transform:scale (0, 1); /* уменьшаем ширину картинки до 0 */
    }

    Получится так:

    Комбинируя различные CSS свойства можно добиться различных hover эффектов при смене картинок во время наведения курсора мыши . Эти и другие примеры я поместил на этой странице , там же можно скачать исходники. На этом все, до новых встреч.

    Сегодня мы с Вами узнаем как сделать плавное изменение цвета блока с помощью CSS и JQuery . С помощью данного плагина можно добиться удивительно красивых результатов оформления. Например, можно сделать клёвое меню, которое будет плавно менять цвет при наведении, и поверьте, смотрится это очень красиво.

    JQuery

    Для начала между тегами и нужно поставить следующее:

    Затем опять же между тегами и копируем вот этот скрипт:

    $(document).ready(function(){ $(".Box").hover(function() { $(this).stop().animate({ backgroundColor: "#FF4500"}, 400); },function() { $(this).stop().animate({ backgroundColor: "#ffffff" }, 400); }); });

    Где .Box — это класс блока, который мы придумали выше в CSS.

    «#FF4500 » — цвет при наведении. 400 — скорость анимации при наведении.

    «#ffffff» — исходный цвет после убирания курсора. 400 — скорость анимации при убирании курсора.

    HTML

    После того когда Вы всё сделаете как написано выше, цвет блока плавно будет меняться . Чтобы такой блок вставить на страницу, нужно просто добавить следующее в нужное место:

    И блок появится.

    Важно

    Данный плагин может менять только цвет фона (бекграунд). Например к ссылкам или к тексту его прикрепить не получится. Цвет ссылок меняет другой плагин (скоро обязательно напишу как сделать).

    Если Вам захочется сделать чтобы блоки на странице были разного цвета, как у меня в , Вам нужно будет между тегами и поставить несколько скриптов подряд и соответственно не забыть поменять цвет на желаемый. Самое главное нужно поменять класс, например в нашем примере выше — класс Box , а следующий скрипт должен быть с другим классом, например Box1 , затем Box2 и так далее.

    Вот и всё, дорогие друзья. Если Вам что либо будет не понятно, обязательно спрашивайте в комментариях. До скорых встреч.

    ) она как правило изменяет свой вид (становится в фокусе). Чаще всего это простое изменение цвета или добавления подчеркивания. Также изменяется курсор на кисть руки. В этой статье мы рассмотрим подробнее как красиво реализовать изменение стиля ссылки при наведении курсора.

    Примеры с изменением вида ссылки при наведении Пример 1. Как изменить цвет и сделать подчеркивание при наведении a.class_A1 { /* Стиль ссылки по умолчанию */ color : blue ; text-decoration : none ; } a.class_A1:hover { /* Стиль ссылки при наведение */ color : red ; /* Изменяем цвет на красный Добавляем подчеркивание */ } При наведении ссылка станет красной и подчеркнутой: ссылка Пример 2. Как изменить фон ссылки при наведении a.class_A2 { color : blue ; text-decoration : none ; background : none ; padding : 2px ; } a.class_A2:hover { color : white ; background : blue ; } При наведении ссылка изменит фон на синий, а цвет ссылки станет белым: ссылка

    Преобразуется на странице в следующее:

    Пример 3. Как поменять курсор при наведении на ссылку

    По умолчанию у ссылок курсор при наведении имеет значение cursor :pointer . В следующем примере мы изменим его на другой.

    a.class_A3 { /* Стиль ссылки по умолчанию */ color : blue ; text-decoration : none ; cursor : default ; /* Курсор по умолчанию */ } a.class_A3:hover { /* Стиль ссылки при наведение */ color : red ; /* Изменяем цвет на красный */ text-decoration : underline ; /* Добавляем подчеркивание */ cursor : crosshair ; /* Изменяем курсор */ } При наведении ссылка станет красной и подчеркнутой, а курсор станет в виде плюса: ссылка

    Преобразуется на странице в следующее:

    Пример 4. Сглаженное изменение стилей ссылки

    С помощью свойства transition мы сгладим скорость изменения фона и цвета ссылки.

    a.class_A4 { color : blue ; text-decoration : none ; background : #B9D3EE ; padding : 4px ; font-weight : bold ; border-radius : 4px ; transition : background 1s ease , color 0.5s ease ; /*Для браузера Google Chrome и Firefox: */ -webkit-transition : background 1s ease , color 0.5s ease ; -moz-transition : background 1s ease , color 0.5s ease ; } a.class_A4:hover { color : white ; background : blue ; } При наведении ссылка изменит фон на синий, а цвет ссылки станет белым, при этом все это будет сглажено: ссылка

    Преобразуется на странице в следующее:

    Пример 5. Красивое подчеркивание ссылки a.class_A5 { color : blue ; text-decoration : none ; } a.class_A5:hover { color : red ; border-bottom : 2px dashed #8A2BE2 ; /* С помощью этого свойства задаем стиль подчеркивания */ } При наведении ссылка изменит цвет и появится необычное подчеркивание: ссылка

    Преобразуется на странице в следующее.