width:100%与width:auto区别

511 阅读1分钟

一、问题描述

在设置一个按钮样式时,发现样式子元素宽度超过给其的父元素宽度,造成样式错误,经查发现,是width:100%的问题,特此记录。

二、样式图片

1、width:100%

image.png

2、width:auto

image.png

3、盒模型

image.png

三、问题分析

submit按钮父元素给的宽度是310px,给submit子元素设置宽度为width:100%,则子元素宽度就是父级的宽度,整个content占满父级,添加子元素padding、margin后,子元素会撑开父元素!

四、width:100%与width:auto区别

  • width:auto: 根据设定对象的实际大小而自适应宽度。即将子元素的盒模型拉伸和父元素一样,

内容的宽度='margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right';

若设置或改变了padding和margin,则自适应调整子元素content的宽度。

  • width:100%: 子元素的content宽度为父级的width,并且随父级的width自动变化,增加子元素的padding和margin之后,会撑破父元素