Html 删除鼠标向下突出显示的复选框

Html 删除鼠标向下突出显示的复选框,html,css,Html,Css,用鼠标按下标签后,复选框将高亮显示。我想消除这种影响。到目前为止,我在onMouseDown事件的偶数上尝试了preventDefault() (上方复选框高亮显示/变暗-对标签上鼠标向下事件的影响) 除此之外,点击标签后复选框的开/关行为不会受到影响 额外信息:我无法通过修改复选框的样式来实现这一点,因为下一步我只想对标签的一部分使用无高亮显示行为(标签内的链接) JSFiddle显示问题:您需要从标签和脚本中删除for=“,请参阅更新的fiddle 我不认为在所有浏览器/系统中都可以防止高

用鼠标按下标签后,复选框将高亮显示。我想消除这种影响。到目前为止,我在
onMouseDown
事件的偶数上尝试了
preventDefault()

(上方复选框高亮显示/变暗-对标签上鼠标向下事件的影响)

除此之外,点击标签后复选框的开/关行为不会受到影响

额外信息:我无法通过修改复选框的样式来实现这一点,因为下一步我只想对标签的一部分使用无高亮显示行为(标签内的链接)


JSFiddle显示问题:

您需要从标签和脚本中删除
for=“
,请参阅更新的fiddle


我不认为在所有浏览器/系统中都可以防止高亮显示。
preventDefault()可以在Firefox中正常工作,但不能在Chrome中正常工作

但这有什么意义?! 单击并保持几秒钟。只有在这种情况下,才能感知到样式的变化。
这与风格无关。不是吗

你写道:

额外信息:我无法通过修改复选框的样式来实现, 因为作为下一步
我只想使用无突出显示行为 对于标签内的链接…

解决方案1:

因此,您可以通过将标签拆分为多个部分来实现您的目标:

  • 链接前的标签
  • 链接
  • 链接后的标签
如果不想,单击链接时,复选框不会发生任何变化。如果需要,可以附加事件

就像这个代码:()

$('label[for=“startClientFromWebEnabled”]”)。鼠标向下(函数(e){
console.log('mouse down!!')
//删除Firefox中的突出显示,但不删除Chrome中的突出显示
e、 预防默认值();
e、 停止传播();
e、 停止即时复制();
返回false;
});
$('a')。单击(函数(e){
console.log('单击链接!!')
e、 预防默认值();
e、 停止传播();
e、 停止即时复制();
返回false;
});

(默认情况下)在
之后
(无违约)在
之后

您无法控制标签上鼠标向下的复选框的效果,因为这是操作系统生成的效果。为此,您需要使用CSS样式和字体(可能)更改复选框的外观

自定义CSS复选框:

正文{
背景:#e6;
}
h1{
边际上限:0;
}
.对照组{
显示:内联块;
宽度:200px;
高度:210px;
利润率:10px;
填充:30px;
文本对齐:左对齐;
垂直对齐:顶部;
背景:#fff;
盒影:0 1px2pRGBA(0,0,0,1);
}
.控制{
字号:18px;
位置:相对位置;
显示:块;
边缘底部:15px;
左侧填充:30px;
光标:指针;
}
.控制输入{
位置:绝对位置;
z指数:-1;
不透明度:0;
}
.控制指示器{
位置:绝对位置;
顶部:2个;
左:0;
宽度:20px;
高度:20px;
背景:#e6;
}
/*悬停和聚焦状态*/
.控制输入:焦点~.控制指示器{
背景:#ccc;
}
/*检查状态*/
.控制输入:选中~.控制指示灯,
.控制输入:选中~控制指示灯:悬停{
背景:#2aa1c0;
}
/*残疾状态*/
.控制输入:禁用~.控制指示灯{
指针事件:无;
不透明度:.6;
背景:#e6;
}
/*复选标记*/
.控制指示器:之后{
位置:绝对位置;
显示:无;
内容:'';
}
/*显示复选标记*/
.控制输入:选中~.控制指示灯:后{
显示:块;
}
/*复选框勾选*/
.control--复选框.control\u指示器:之后{
顶部:4px;
左:8px;
宽度:3倍;
高度:8px;
变换:旋转(45度);
边框:实心#fff;
边框宽度:0 2px 2px 0;
}
/*残疾蜱色*/
.control--复选框输入:禁用~.control\u指示器:之后{
边框颜色:#7b;
}

复选框
第一个复选框
第二个复选框
残废
禁用并检查

您是否尝试使用
大纲:无

input[type=checkbox] {
  outline: none;
}
像下面这样-

$('label[for=“startClientFromWebEnabled”]”)。鼠标向下(函数(e){
console.log('mouse down!!')
e、 预防默认值();
e、 停止传播();
e、 停止即时复制();
返回false;
});
输入[类型=复选框]{
大纲:无;
}

从Web启动客户端:

使用虚拟复选框,并在选中原始复选框时选中该虚拟复选框

$('startClientFromWebEnabled')。单击(函数(e){
$('#dummy').prop('checked',$('#startClientFromWebEnabled').is(“:checked”);
});
正文{
缩放:300%;
}

从Web启动客户端:

将标签更改为span,然后删除for=“startClientFromWebEnabled”

您说“下一步,我只想对标签的一部分使用无突出显示行为(特别是标签内的链接)。”

然后,您可以编辑跨度的各个部分,将其放入标签中,并对可单击的部分使用for=“startClientFromWebEnabled”

<td>
    <span><label for="startClientFromWebEnabled">[click]</label> Client Launch <label for="startClientFromWebEnabled">[click]</label> From Web:</span>
</td>
<td>
    <input type="checkbox" id="startClientFromWebEnabled" name="startClientFromWebEnabled" data-bind="checked: StartClientFromWebEnabled, enable: IsEditable" />
</td>

[单击]客户端启动[单击]从Web:

请分享相关的HTML和CSS。另外,你在哪个浏览器中看到了这个?没有css。我检查它在铬(55)。我用JSFIDLE更新了描述,显示了这个问题。我不确定我是否理解-我没有看到任何“突出显示”,只是在单击标签时选中了复选框-你想要这个吗?(在css中将指针事件设置为“无”将删除默认行为)。@nevermind请