使用css的文本输入控件不会丢失“;焦点“;风格

使用css的文本输入控件不会丢失“;焦点“;风格,css,input,hover,focus,styling,Css,Input,Hover,Focus,Styling,我有一个标准的输入文本框,我使用css和psuedo类元素Hover和Focus设计了它的样式。我使用的css非常简单: .riTextBox:hover, .riTextBox:focus { border: solid 1px #F1C15F; } .riTextBox { border: solid 1px #7394BE; border-radius: 3.5px; } 除了文本框中有文本并且是用鼠标选中的,并且当你选择文本时,你离开文本框的边界(鼠标按钮仍然

我有一个标准的输入文本框,我使用css和psuedo类元素Hover和Focus设计了它的样式。我使用的css非常简单:

.riTextBox:hover,
.riTextBox:focus
{
    border: solid 1px #F1C15F;
}

.riTextBox
{
    border: solid 1px #7394BE;
    border-radius: 3.5px;
}

除了文本框中有文本并且是用鼠标选中的,并且当你选择文本时,你离开文本框的边界(鼠标按钮仍然向下),然后鼠标移到文本框外的某个地方,所有这些都工作得很好。您会注意到文本框边框仍然高亮显示,好像它从未失去焦点

文本框的onselect事件似乎与onblur冲突,但我不确定。请参见此处重现这一令人沮丧的问题:


谢谢你能提供的任何帮助

这个答案有点晚了,但它解决了你的问题。只需删除与悬停事件耦合的焦点事件。原始的悬停边框仍将保持在焦点上(当用户单击框时),但当用户移开鼠标时,悬停样式将消失,即使鼠标按钮仍处于按下状态

.riTextBox
{
    border: solid 1px #7394BE;
    border-radius: 3.5px;
}

.riTextBox:hover
{
    border: solid 1px #F1C15F;
}

“文本框边框仍然高亮显示,好像它从未失去焦点”这是因为它没有失去焦点;如果鼠标出现在元素之外(当然是Chromium 12/Ubuntu 11.04和内存中的IE 7和8/Win XP),它只会取消元素中的点击,而不是将焦点转移到另一个元素。感谢David的回复。是的,你是对的。我的措辞很糟糕。我想实现的是,当这种情况发生时,文本框将失去其突出显示样式。