部分HTML元素默认是否应用伪类样式?求证输入框默认状态实现方式
输入框默认交互样式的实现机制
拿<input type="text">来说,它默认在hover时边框加深、focus时显示深色轮廓的效果,确实是通过浏览器默认样式表中的:hover和:focus伪类实现的,只是不同浏览器的具体规则有差异:
- hover状态:多数浏览器会在用户代理样式表中给
input:hover指定更深的边框色,比如Chrome的默认规则里,会把输入框边框从#dadce0调整为#9aa0a6。 - focus状态:浏览器会为
input:focus设置outline属性,比如Chrome默认是outline: 2px solid #1a73e8; outline-offset: 2px;,Firefox则用outline: 1px dotted ButtonText;这类不同的定义。
这些规则都属于浏览器自带的用户代理样式表范畴,本质就是通过伪类来绑定交互状态对应的样式变化。
内容的提问来源于stack exchange,提问作者Said Dumuzi
相关产品推荐
相关产品推荐

