码迷,mamicode.com
首页 > 其他好文 > 详细

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

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

标签:class   code   http   java   tar   ext   

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%;的不同

标签:class   code   http   java   tar   ext   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!