Почему мои наведенные изображения не выравниваются в HTML

У меня есть два изображения для каждой кнопки на моем сайте: одно — базовая версия кнопки, а другое — при наведении на нее курсора.

изображение при наведении на мою кнопку «блог» отображается поверх кнопки над ней. (на изображении ниже я сделал кнопку прозрачной на 50%, чтобы вы могли видеть проблему) (https://i.sstatic.net/Hn98U1Oy.png)

(я знаю, что этот код не очень хорош, я начал изучать только 4 дня назад и пока только создаю этот тестовый сайт)

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

.buttonlinks {
    width: 300px;
    height: 30px;
    position: relative;
}

.buttonlinks img{
    width: 100%;
    height: 100%;
}

.aboutmehover {
    position: absolute;
    left:0;
    top:0;
    opacity: 0;
    transition: all .3s ease-in-out;
}

.aboutmehover:hover {
    opacity:1;
}

.bloghover {
        position:absolute;
    top:0;
    left:0;
    opacity: 0;
    transition: all .3s ease-in-out;
}

.bloghover:hover {
    opacity:1;
}

.interestshover {
            position: absolute;
    left:0;
    top:15;
    opacity: 0;
    transition: all .3s ease-in-out;
}

.interestshover:hover {
       opacity:1; 
}
<!doctype html>
<html lang = "en">
    <head>
    </head>
    <body>

            <!-- Left Section -->
            <div class = "column left" style = "background-color: rgba(125, 77, 77, 0)">
                <div class = "buttonlinks">
                    <!-- LEFT SIDE BUTTON LINKS -->
                    <a href = "otherpages/about-me.html"><img src = "buttons/about-me.png" alt = "About Me Button"/></a>
                    <a href = "otherpages/about-me.html"
                        ><img class = "aboutmehover" src = "buttons/about-me-hover.png" alt = "About Me Button"/></a>
                    <a href = "otherpages/blog.html"><img src = "buttons/blog.png" alt = "About Me Button" /></a>
                    <a href = "otherpages/blog.html"><img class = "bloghover" src = "buttons/blog-hover.png" /></a>
                    <a href = "buttons/interests.png"><img src = "buttons/interests.png"></a> 
                    <img class = "interestshover" src = "buttons/interests-hover.png">
                    
                </div>
            </div>
            <div class = "column null" style = "background-color: rgba(125, 77, 77, 0)">
                <p></p>
            </div>

    </body>
</html>

Публикуя код, используйте минимальный воспроизводимый пример и обращайте особое внимание на слово «минимальный». Я также не вижу в вашем коде кнопок, только несколько якорей с изображениями, которые здесь не запускаются. Также обратите внимание, что ваши якоря полностью недоступны (не следует использовать изображения с текстом в качестве кнопок).

tacoshy 01.07.2024 10:29

У вас нет причин иметь два a hrefs для каждого штата. Сохраните один a href и попробуйте изменить background-image вот так stackoverflow.com/questions/18813299/…

Izanagi 01.07.2024 10:36

Прежде чем сделать это, я попробовал изменить фоновое изображение, но это не сработало. попробую еще раз, спасибо

MetalZS 01.07.2024 10:59
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
3
97
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как я уже говорил в своем предыдущем комментарии, вам не нужно хранить два a href и переключаться между ними, поэтому вот один пример, основанный на вашем коде, который использует один тег a href, который переключает изображения в зависимости от того, наводит на них пользователь или нет.

.buttonlinks {
    width: 300px;
    height: 30px;
    position: relative;
}

.buttonlinks img{
    width: 100%;
    height: 100%;
}

#about-me{
  display:block;
  background-image: url('https://placehold.co/100x50?text=About-Me');
  height: 50px;
   width: 100px;
}

#about-me:hover{
  background-image: url('https://placehold.co/100x50?text=About-Me-Hover');
}

#blog{
  display:block;
  background-image: url('https://placehold.co/100x50?text=Blog');
  height: 50px;
   width: 100px;
}

#blog:hover{
  background-image: url('https://placehold.co/100x50?text=Blog-Hover');
}

#interests{
  display:block;
  background-image: url('https://placehold.co/100x50?text=Interests-Me');
  height: 50px;
   width: 100px;
}

#interests:hover{
  background-image: url('https://placehold.co/100x50?text=Interests-Hover');
}
<html lang = "en">
    <head>
    </head>
    <body>
      <div class = "column left" style = "background-color: rgba(125, 77, 77, 0)">
        <div class = "buttonlinks">
          <a href = "otherpages/about-me.html" id = "about-me"></a>
          <a href = "otherpages/blog.html" id = "blog"></a>
          <a href = "buttons/interests.html" id = "interests"></a> 
        </div>
      </div>
      <div class = "column null" style = "background-color: rgba(125, 77, 77, 0)">
        <p></p>
      </div>
    </body>
</html>

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

MetalZS 01.07.2024 13:40

Не могли бы вы создать jsfiddle.net и поделиться со мной кодом, чтобы я мог лучше понять проблему?

Izanagi 01.07.2024 13:45

Понятно, это потому, что изображение, которое вы предоставляете, меньше контейнера a href, поэтому оно повторяется, заполняя пустое пространство. Посмотрите это: w3schools.com/cssref/css3_pr_background-size.php

Izanagi 01.07.2024 14:35

Что вы также можете сделать, так это установить a hrefs размером 300 на 50 пикселей, чтобы соответствующим образом настроить изображение.

Izanagi 01.07.2024 14:37

Другие вопросы по теме