为何给div设置display: unset会使其显示为inline?
解答
核心误区是混淆了CSS属性的初始值和浏览器默认样式:
display属性的全局初始值是inline——这是所有元素在没有任何样式(包括浏览器自带样式)时的默认表现,属于CSS规范定义的属性本身的初始状态。div默认显示为block,是浏览器的用户代理样式表(UA样式)给<div>元素设置的样式,并非display属性的初始值。
当给div设置display: unset时,因为display是非继承属性,所以会触发initial行为,应用display: inline,直接覆盖了浏览器UA样式里的block设置,这就是测试结果显示inline的原因。
如果想让div恢复到浏览器默认的block表现,应该用display: revert——它会优先回退到用户代理样式表中定义的值,只有当UA样式里没有对应设置时,才会表现得和unset一致。
内容的提问来源于stack exchange,提问作者Sam R.
相关产品推荐
相关产品推荐

