如何移除元素获得焦点时的蓝色矩形框?
嘿,我看你已经尝试用outline: none;来移除聚焦时的蓝色框了,不过可能是选择器优先级不够,或者有些浏览器还有额外的默认样式在捣乱。试试下面的代码,应该能完全达到你想要的效果:
/* 用ID选择器确保样式优先级足够,覆盖浏览器默认 */ #textarea:focus { outline: none; /* 可选:如果担心无障碍体验,换成自定义聚焦样式,比如: border-color: #999; */ } #textarea { position:absolute; top:10px; left:10px; right:10px; width:calc(100% - 20px); height:160px; display:inline-block; margin-top:-0.2em; /* 可以给文本域加个默认边框,避免移除outline后边框消失 */ border: 1px solid #ccc; }
对应的HTML保持不变:
<textarea id="textarea">yo</textarea>
这里特意用了#textarea:focus这个更具体的选择器,比你之前写的通用textarea:focus优先级更高,能确保覆盖浏览器自带的聚焦样式。另外提醒一句:完全移除聚焦提示可能会影响视力障碍用户的页面导航体验,所以如果不是必须完全隐藏,建议换成自定义的聚焦样式(比如注释里的浅灰色边框),这样既满足视觉需求,又不牺牲无障碍性~
内容的提问来源于stack exchange,提问作者1.21 gigawatts




