auto是自适应的意思,auto是很多尺寸值的默认值,也就是由浏览器自动计算。块级元素中margin、border、padding以及content宽度之和构成父元素width。使用auto属性后,父元素宽度发生变化,该元素的宽度也会随之变化。
css中的auto是自动适应的意思,而在css中auto往往都是默认值。
下图中auto的值就是margin、border、padding以及content宽度之和:
但是当该元素被设为浮动时,该元素的width就变成了内容的宽度了,由内容撑开,也就是所谓的有了包裹性。
overflow | position:absolute | float:left/right都可以产生包裹性,替换元素也同样具有包裹性。
*|position:relavtive|相对定位 占原来的位置,不能实现模式的转化,即不具有包裹性。
所以在具有包裹性的元素上不可以利用width : auto;来让元素宽度自适应浏览器宽。如下图所示
示例:
HTML代码:
css代码:
#inner {
margin: auto;
width: 250px;
height: 125px;
background-image: linear-gradient(45deg, #84ECEF 10%, #F8F62F 60%, #FDC018);
}
#outer {
height: 500px;
width: 500px;
background: #1F1D20;
background-image: linear-gradient(#757575 1px, transparent 1px),
linear-gradient(90deg, #757575 1px, transparent 1px);
background-size: 25px 25px;
}
效果图: