HTML/ CSS изображение при наведении курсора мыши скрывает

#html #css #hover #image

#HTML #css #наведите #изображение

Вопрос:

У меня есть 2 изображения, на 1 показано слово «home», а на другом показано «home» с несколькими стрелками, указывающими на него сверху.. в основном, небольшая вещь, чтобы оживить мой веб-сайт, над которым я работаю в рамках своих исследований.

Каков был бы самый простой способ перехода от пустого изображения к изображению стрелки? без использования модного JavaScript? мне не нравится javascript, и я бы предпочел его не использовать.

Мой HTML:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="styles/styles.css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>This is my website :D</title>
</head>
<body>
    <div id="banner"><img id="logo" src="images/logo.png" />
        <div id="menucontainer">
            <div class="menulink" id="menu1"><a href="index.html"><img border="0" id="arrow1" src="images/arrow1blank.png" /><img border="0" id="arrow1popup" src="images/arrow1.png"  /></a></div>
            <div class="menulink" id="menu2"><a href="#">About Us</a></div>
            <div class="menulink" id="menu3"><a href="#">Services</a></div>
            <div class="menulink" id="menu4"><a href="#">Account</a></div>
        </div>
    </div>
</body>
</html>
  

и CSS:

 #banner {
    background-color:#000000;
    height:100px;
    position:absolute;
    top:0;
    left:0;
    right:0;
}
#logo {
    position:absolute;
    left:350px;
}
#menucontainer {
    position:relative;
    left:750px;
    top:0px;
    right:350px;
    height:100px;
}
#menu1 {
    float:left;
    text-align:center;
    width:120px;
    height:100px;
}
#menu2 {
    float:left;
    width:120px;
    text-align:center;
    height:100px;
}
#menu3 {
    float:left;
    text-align:center;
    width:120px;
    height:100px;
}
#menu4 {
    float:left;
    width:120px;
    text-align:center;
    height:100px;
}
  

Заранее спасибо, ребята 🙂

Ответ №1:

Есть много способов сделать это, но sprites css — лучший. Уменьшает количество запросов, не требует перезагрузки изображения при наведении курсора, поэтому при медленных соединениях вы не получите эту 1-секундную черную область во время загрузки перевернутого изображения.

Это популярная концепция, вы найдете множество руководств по ней, подобных этому.

Все дело в изображении 🙂

Комментарии:

1. Согласен. Вы можете использовать такие ресурсы, как spritegen.website-performance.org которые генерируют изображения css-код для вас.

2. я бы предпочел не генерировать код, поскольку это обман -.-

3. jsfiddle.net/DCrrm/4 .. надеюсь, вы не слишком обидитесь: для этого я использовал 2 генератора cooltext.com для изображений и spritegen.website-performance.org чтобы сгенерировать спрайт .. css полностью создан человеком .. я думаю 🙂

4. @Gobble45: Код CSS в спрайтовых меню очень прост. Изображение спрайта по существу имеет 2 или 3 версии пункта меню (по умолчанию, при наведении, активный), а код CSS добавляет необходимые псевдоклассы, необходимые для отображения различных частей изображения.

Ответ №2:

Просто добавьте этот фрагмент, который будет работать.

 .menulink:hover { background-img:url('images/arrow1blank.png'); }
.menulink:hover a { display:none; }
  

Комментарии:

1. Я пробовал это, но это не скрывает исходные изображения… что мне использовать, чтобы скрыть их для начала? поэтому у меня нет 2 изображений, занимающих место..

2. Затем вам нужно также отобразить: нет исходного изображения при наведении курсора

Ответ №3:

Попробуйте это:

 .menulink       img#arrow1popup { display: none;   }
.menulink:hover img#arrow1popup { display: inline; }
.menulink:hover img#arrow1      { display: none;   }
  

Комментарии:

1. Подождите, неважно!!! ЭТО СРАБОТАЛО .. я изменил идентификатор arrow1popup на arrow1, а arrow1 на arrow1blank