dom设置float属性后,display属性怎么理解

在看float方面的文章,说是元素设置成float后会像inline元素一样产生包裹性,宽度会随内容宽度自适应。
这个可以通过例子验证:正确
同时,又有一句话说:元素一旦设置float属性的值不为none,则其display计算值就是block或者table,我们也可以通过下面的代码验证:

var span = document.createElement('span')
document.body.appendChild(span)
console.log('1.' + window.getComputedStyle(span).display)
span.style.cssFloat = 'left'
console.log('2.' + window.getComputedStyle(span).display)

但是我怎么老是觉得两者是矛盾的呢?既然设置float属性后,display计算值就是block,那么就不会产生包裹性啊?
为什么呢?是我理解错了吗?

阅读 3.5k
2 个回答

display计算值就是block,意思是可以像block一样设置宽高,并不是块元素

感觉display属性应该是变成inline-block比较靠谱,既能设置宽、高、margin、padding等属性,又不独占一行。我也纠结了好久这个问题。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进