CSS - селектор первого ребенка сильнее, чем селектор класса

0

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

js скрипка

HTML

<ul class="start">
<li id="box" >move up onHover</li>
</ul>
<div id="button">hover</div>

CSS

.start li:first-child{

height:100px;
width:100px;
background: red;
opacity: 1;
transform: translate(0, 190px); 
transition: all 2.0s linear;

}

.change{
 opacity: 1;
 transform: translate(0, 0px);
 }

#button{
width: 80px;
height: 20px;
padding: 4px;
margin-left: 333px;
border:solid 1px black;
background: grey;
cursor: pointer;
color: white;
}

JS

    $('#button').hover(function() {
  $('#box').addClass('change');
})
Теги:

2 ответа

2
Лучший ответ

Это не то, что это сильнее, но нацеливание на родителя, а затем на LI более конкретное, поэтому вы должны быть столь же конкретны, когда добавляете новый класс

.start li.change

FIDDLE

  • 0
    спасибо, но это также плохо использовать "li.class", который я читал в stackoverflow
  • 0
    Это неплохо, если вам нужно переписать более специфические стили, и это не так уж плохо в CSS, но в селекторе jQuery это может вызвать дополнительную работу, но и в этом нет ничего плохого.
0

.start li:first-child переопределяет стиль .change

+ Изменить

.change{}

в

.start li.change{}

Обновлена скрипка.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню