CSS 关于子盒子设置margin,溢出父盒子的问题
问题分析:
通常情况下,一个盒子的width=border+margin+padding+width,然后当我的子盒子width设置100%自父盒子时,再设置margin-left或margin-right,就会发生盒子溢出现象。
解决方法:
方法一:给父盒子设置box-sizing: border-box,设置这个之后,padding之类的就会一起计算到当前的width里面。注意一点,这里的父盒子必须要给他设置一定的width,如果是由子盒子撑开,那么应该会不起作用。
方法二:在子盒子(子盒子设置了一定的宽度:width:100%)外面再套一个div,然后设置这个div的padding,这样就不会溢出了。
(可能存在错误,欢迎指出)
自己来纠错了:
最近了解到w3c盒模型和IE盒模型
默认使用的是w3c盒模型(box-sizing:content-box),当设置(box-sizing:border-box)时是IE盒模型。
w3c盒模型是整个width指的是content,也就是内容的宽度。打个比方就是盒子的容纳空间,并不包括纸的厚度之类的。
IE盒模型是整个width指的是border+padding+content,但是并不包括margin。