首页 > 网站 > WEB开发 > 正文

宽度的100%和auto的区别

2024-04-27 14:25:42
字体:
来源:转载
供稿:网友
宽度的100%和auto的区别前段时间做项目,发现分不清width设为100%和auto的区别,实在是太水了,就查了点资料,做个总结,有不对的地方欢迎大家指出。

width:auto块级元素默认的宽度值。看一下MDN上的解释:The browser will calculate and select a width for the specified element.大意是浏览器会自己选择一个合适的宽度值,那么怎么计算呢?我的理解是:被包含元素的margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' = width of containing block。(1)如果margin-left' + 'border-left-width' + 'padding-left' + 'padding-right' + 'border-right-width' + 'margin-right'比较大,就减小width的值,如果比较小呢,就增大width的值,使其满足(1)式。下面看个demo验证一下:http://jsfiddle.net/guoheng/7mj05cns/ 当增加子元素的margin可以直观的看到width在缩小,验证了我的看法。

width:100%我的理解是,设置为100%之后,它的宽度就是父级的width,并且随着父级的width自动变化,增加子元素的padding和margin之后,它的width还是不变的,这是与设置为auto的区别。可以看下这个demo验证:http://jsfiddle.net/guoheng/eo7L3fg7/可以看到给子元素添加padding或者margin之后会使子元素突破父级元素。一般auto使用的多,因为这样灵活,而100%使用比较少,因为在增加padding或者margin的时候,容易使其突破父级框,破环布局。

参考http://www.456bereastreet.com/archive/201112/the_difference_between_widthauto_and_width100/

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表