Ли Ховер не работает

Я хочу навести li, но он не работает, я делал это раньше, и он работал, но я не знаю, почему он не работает сейчас Я установил цвет фона для li, я хочу, чтобы при наведении он менялся и еще один вопрос, я установил непрозрачность для нижнего колонтитула, но это также повлияло на цвет фона li!

body {
  background-image: url(background.jpg);
  background-repeat: no-repeat;
}

footer {
  width: 1350px;
  height: 200px;
  background-color: dimgray;
  border-radius: 10px;
  opacity: 0.7;
  position: absolute;
}

#li1 {
  display: inline-block;
  list-style-type: none;
  margin: 2px;
  padding: 20px;
  background-color: aqua;
  width: 100px;
  font-family: Calibri;
  font-weight: 700;
}

#ul1 {
  margin-left: 50px;
  margin-top: 60px;
  position: relative;
}

a {
  text-decoration: none;
  color: black;
  display: block;
  font-size: 20px;
  text-align: center;
}

li:hover {
  background-color: chartreuse;
}
<footer>
  <ul id = "ul1">
    <li id = "li1"><a href = "##">Home</a></li>
    <li id = "li1"><a href = "##">Categories</a></li>
    <li id = "li1"><a href = "##">languages</a></li>
    <li id = "li1"><a href = "##">Contries</a></li>
    <li id = "li1"><a href = "##">Cities</a></li>
    <li id = "li1"><a href = "##">Planets</a></li>
    <li id = "li1"><a href = "##">Seas</a></li>
    <li id = "li1"><a href = "##">Deserts</a></li>
  </ul>
</footer>

Примечание: идентификаторы должен должны быть уникальными

j08691 04.06.2018 16:41

Добавление background-color: aqua; в ваш селектор #li1 отменяет любые изменения, которые вы вносите в элемент li. ID имеет приоритет над элементом.

Chase Ingebritson 04.06.2018 16:42

спасибо, я нашел свою ошибку

Nima Bahar 04.06.2018 16:51
Улучшение производительности загрузки с помощью 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 страниц, которые помогут...
1
3
54
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Это связано с приоритетом CSS. Вы даете всем своим спискам одинаковый идентификатор - плохая идея. Вместо этого сделайте его классом или (как я сделал в этом фрагменте) не дайте им ни класса, ни идентификатора, ни стиля, используя "# ul1 li".

Во фрагменте ниже вы увидите, что наведение курсора работает:

body{

        background-image: url(background.jpg);
        background-repeat: no-repeat;
    }
    footer{

        width: 1350px;
        height: 200px;
        background-color:dimgray;
        border-radius: 10px;
        opacity: 0.7;

        position: absolute;
    }
    #ul1 li{
        display:inline-block;
        list-style-type: none;
        margin: 2px;
        padding: 20px;
        background-color:aqua;
        width: 100px;
        font-family:Calibri;
        font-weight: 700;

    }
    #ul1{
        margin-left: 50px;
        margin-top: 60px;
        position: relative;
    }
    a{
        text-decoration: none;
        color: black;
         display: block;
        font-size: 20px;
        text-align: center;


    }
    #ul1 li:hover{
        background-color:chartreuse;
    }
<footer>
<ul id = "ul1">
    <li><a href = "##">Home</a></li>
    <li><a href = "##">Categories</a></li>
    <li><a href = "##">languages</a></li>
    <li><a href = "##">Contries</a></li>
    <li><a href = "##">Cities</a></li>
    <li><a href = "##">Planets</a></li>
    <li><a href = "##">Seas</a></li>
    <li><a href = "##">Deserts</a></li>

    </ul>

</footer>

да, ошибка заключалась в установке одного и того же идентификатора для всех li, я заменил класс, и теперь он работает нормально

Nima Bahar 04.06.2018 16:53

Использовать

li:hover {
  background-color: chartreuse !important;
}

Чтобы отвергнуть ваш

background-color: aqua;

спасибо, сработало но в чем причина? Я делал это раньше так же, и это просто сработало

Nima Bahar 04.06.2018 16:45

@NimaBahar Это потому, что CSS имеет приоритет, вы устанавливаете цвет фона перед наведением курсора, поэтому вам нужно "принудительно" изменить с помощью !important, чтобы он переопределил ваш предыдущий фон. (Примите мой ответ, если это вам поможет)

Dessauges Antoine 04.06.2018 16:47

спасибо @DessaugesAntoine, ваше решение тоже возможно, но ошибка заключалась в установке одного и того же идентификатора для всех li, и она решена, в любом случае спасибо.

Nima Bahar 04.06.2018 16:55
Ответ принят как подходящий

Вы не можете установить одинаковый идентификатор для нескольких элементов. И я не уверен, что делает html, если вы установите ## как href в теге

Измените id attr на class attr в li следующим образом:

Class = "li1"

Его наведение будет работать

спасибо большое, я действительно новичок. Я забыл, что id должен быть уникальным :))

Nima Bahar 04.06.2018 16:50

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