首页 > 其他 > 详细

width:auto; 和 width:100%;的不同

时间:2014-06-27 17:00:03      阅读:403      评论:0      收藏:0      [点我收藏+]

width:auto;会将元素撑开至整个父元素width,但是会减去子节点自己的margin,padding或者border的大小。
width:100%;会强制将元素变成和父元素一样的宽,并且添加额外的空间到这个元素的width上。就是因为这个,会导致很多问题。

使用width:100%永远都不是一个好主意。这个属性容易让人产生你正在定义一个元素可视大小,其实,你是在对这个元素的状态做了巨大的改变。


块元素会填满其父元素的整个width,因为块元素默认的是width:auto;的。

See the Pen jGgIu by liqian (@liqian) on CodePen.

 



下面的例子里,黑色的边框(border)代表容器父元素。蓝色和绿色表示的是一个有着红色边框,边框宽为20个像素的子节点。(border:20px solid red;),不同点在于,蓝色的子节点是width:auto;,绿色的是width:100%;的。

See the Pen H2F - March 25, 2014 #1 by liqian (@liqian) on CodePen.

 

可以看到绿色的子节点伸出了父元素。这是因为绿色的子节点设置了width:100%;使得自己的width变得和父元素一样大小,但是这个width不包含子节点自己边框的大小。这样边框就到父元素外面了;
 
 
 

对于padding和margin也是同样的作用。

See the Pen H2F - March 25, 2014 #2 by liqian (@liqian) on CodePen.

 

 


无论多的宽度是padding,margin或者border,width:auto;都不会将子节点撑破父元素。

 

bubuko.com,布布扣
可以看出,width:100%是将盒模型中的content拉伸得和父元素一样,而width:auto;是将这个盒模型拉伸得和父元素一样。

 

很多CSS问题的解决办法不是添加更多的CSS,而是去掉那些有问题的CSS,这就得需要对类似width这样的CSS样式的副作用有深刻的认识。

 

 

原文地址:http://headertofooter.com/post/80699461723/the-difference-between-width-auto-and-width-100

 

width:auto; 和 width:100%;的不同,布布扣,bubuko.com

width:auto; 和 width:100%;的不同

原文:http://www.cnblogs.com/autocrat/p/3809907.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!