-1

我一定是做错了什么,但我找不到原因。这是小提琴

为什么会这样:

#searchClubsForm input[type=text]:focus {
    background: blue;
}

但这不是吗?

#searchClubsForm input[type=text]:focus #searchClubsForm input[type=submit] {
    background: blue;
}
4

5 回答 5

7

好的,所以你要改变这个:

#searchClubsForm input[type=text]:focus #searchClubsForm input[type=submit] {
    background: blue;
}

对此:

#searchClubsForm input[type=text]:focus + input[type=submit] {
    background: blue;
}

这使用相邻的兄弟选择器在焦点时设置按钮样式。

http://fiddle.jshell.net/mMJZ8/2/

于 2013-08-29T17:16:11.573 回答
2

focus您可以在父元素上或父元素上设置子元素的样式hover,但input[type=submit]不是父元素的子元素,input[type=text]因此当前示例是不可能的。

您应该尝试使用相邻的兄弟选择器,如下所示:

#searchClubsForm input[type=text]:focus + input[type=submit] {
    background: blue;
}
于 2013-08-29T17:02:51.267 回答
1

您在两个选择器之间缺少逗号。您当前定位它的方式意味着您在输入中有一个输入,这是不可能的。

#searchClubsForm input[type=text]:focus, #searchClubsForm input[type=submit] {
    background: blue;
}
于 2013-08-29T17:01:58.623 回答
0

缺少一个逗号:

#searchClubsForm input[type=text]:focus, #searchClubsForm input[type=submit] {
    background: blue;
}
于 2013-08-29T17:01:53.387 回答
-4

您需要使用 Jquery 执行此操作:

$('#searchClubsForm input[type=text]').focus(function () {
    $('#searchClubsForm input[type=submit]').css({
        'background': 'blue'
    });
});
$('#searchClubsForm input[type=text]').blur(function () {
    $('#searchClubsForm input[type=submit]').css({
        'background': '#F0F0EE'
    });
});

http://fiddle.jshell.net/mMJZ8/3/

确保你有一个 js 文件

于 2013-08-29T17:16:42.090 回答