2 个回答

这个是规范决定的

对于块级替换元素

The used value of 'width' is determined as for inline replaced elements. Then the rules for non-replaced block-level elements are applied to determine the margins.

宽度还是按他是行内元素来计算的,但是margin是按块级元素来计算。默认auto一般是是其固有值,button元素的宽度可能就是其内字体宽度,加默认内边距加边框的宽度

而普通块级元素之所以有流体特性,是因为其宽度为auto时

'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' = width of containing block

块元素具备流体性(正常情况下)
button不是块元素所以不具备
display:block仅仅是让元素显示为块级元素,说白了就是为了换行
display:block不等于块元素,所以不能撑满。

个人观点

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