выпадающее меню css переопределяет свойства дочернего элемента li

#html #css

#HTML #css

Вопрос:

Прежде всего, я хотел бы добавить, что прошло некоторое время, около 3 лет, с тех пор, как я разработал выпадающее меню в CSS. У меня есть это выпадающее меню, но у меня следующая проблема. по-видимому, я не могу переопределить свойства элементов li / a моего подменю.

Я хотел бы сделать цвет шрифта элементов li a подменю таким же, как цвет элементов li a ul в меню, который является светло-серым (rgb (206,206,204) )

Не мог бы кто-нибудь, пожалуйста, взглянуть и указать мне, что я делаю неправильно? Вот ссылка на архив исходного кода с html, CSS и фоновыми изображениями:http://www.filedropper.com/001_17

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

1. Не собираюсь загружать ваш файл, я предлагаю создать скрипку.

2. я не создавал скрипку, поскольку, поправьте меня, если я ошибаюсь, я не смогу связать изображения с помощью css.

3. Нам не нужны изображения, чтобы заставить ваш выпадающий список работать, только код. И вы всегда можете разместить их онлайн (imgur) и просто обновить src в своей скрипке

4. Это может быть решением. в любом случае спасибо за ваше предложение. но изображения здесь очень важны из-за обрезки фона

Ответ №1:

Ваша проблема в этом правиле:

 div ul.menu li:hover a{

    background-color: rgb(73,144,241);

    background-color: rgba(73,144,241,0.05);

    color: rgb(255,255,255);

}
  

С этим правилом все <a> в нем <li> становятся белыми. Что вам нужно сделать, так это сделать, чтобы только прямые дочерние элементы стали белыми:

 div ul.menu li:hover > a{

        background-color: rgb(73,144,241);

        background-color: rgba(73,144,241,0.05);

        color: rgb(255,255,255);

}
  

Демонстрация JSFiddle

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

1. Спасибо! это не только решило мою проблему, но и фактически окончательно объяснило мне, для чего нужен оператор > в css. Мне действительно следовало закончить чтение этой книги по css3.