gui*_*sen 14 html css css-selectors css3
我得到了一个输入,我用一个:focus
和:hover
.输入时:focus
,我不希望将:hover
鼠标悬停在输入上时触发样式.
我该怎么样呢?
我的css如下:
.form-control:hover {
border-color: #a9a9a9;
}
.form-control:focus {
box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 2px rgba(102,175,233,.6);
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 2px rgba(102,175,233,.6);
}
Run Code Online (Sandbox Code Playgroud)
ari*_*nmz 24
这个选择器有一个特定的CSS选择:not
器.它具有良好的兼容性:
a:hover:not(:focus) {
color: magenta;
}
a:focus:not(:hover) {
color: cyan;
}
Run Code Online (Sandbox Code Playgroud)
<a href="example.com">Stackoverflow</a>
Run Code Online (Sandbox Code Playgroud)
我还建议你优先考虑这个focus
事件,因为它比悬停状态更"静态",有这样的事情:
a:hover:not(:focus) {
color: magenta;
}
a:focus {
color: cyan;
}
Run Code Online (Sandbox Code Playgroud)
<a href="example.com">Stackoverflow</a>
Run Code Online (Sandbox Code Playgroud)
对于向后兼容的替代方案:
a:hover {
color: magenta;
}
a:focus {
color: cyan;
}
a:focus:hover {
color: cyan;
}
Run Code Online (Sandbox Code Playgroud)
<a href="example.com">Stackoverflow</a>
Run Code Online (Sandbox Code Playgroud)
简单来说:
你必须为每个国家(通常红色的hover
和蓝绿色的focus
)和一个两个,优先(视觉)的focus
状态:青色.