У меня есть эта разметка HTML:
<ul>
<li>
<input type="text">
</li>
<li>
<input type="password">
</li>
</ul>
Я бы хотел изменить стиль родительского li
через CSS всякий раз, когда вы фокусируетесь на текстовом поле ребенка. Есть ли способ сделать это с помощью :focus
селектора :focus
или другого селектора? Или мне нужно сделать это с помощью Javascript?
Чтобы расширить мой первоначальный комментарий: css не имеет родительских селекторов.
Если ваша цель состоит в том, чтобы выделить вклад, который имеет фокус, обходным путем было бы дать каждому входу толстую границу:
ul {list-style-type:none;}
input {border:20px solid green;}
input:focus {border:20px solid red;}
Лучший способ сосредоточиться на Ли, его лучше использовать изображение или менять цвета границы, это зависит от вашей идеи, что вы собираетесь использовать его.
Попытайтесь использовать это в своем файле css:
ul {list-style-type:none;}
input {border:10px solid yellow;}
input:focus {border:10px solid green;}
$( "input" ).focus(function() {
$( this ).parent().css( "list-style", "none" );
});
Я не знаю, как использовать css, чтобы выбрать родителя, когда его ребенок находится в фокусе. Но я знаю только в javascript, что вы можете это сделать.
для jQuery
$('input').on('focus', function(){
$(this).parent().css(/* the css you want to change */)
})
Надеюсь, это поможет.