最主要的原因还是我对盒子模型理解的不够。
盒子大小最为重要的2个部分就是padding和内容content。
当我们设置width是在设置content的大小,百分比的时候它参照的是父元素的content的大小。
父元素content的大小(即width)为100px,子元素用百分比的时候100%就是100px。
上述联系下。
如果父元素width设置为100%刚好撑满整个设备屏幕,如果这个时候子元素width还是设置为100%;
同时,父元素用了padding,那就要出事了。会有横向滚动条。
元素的盒子去渲染的时候,是先确定下来content的大小,再去弄padding的大小。整个由盒子的内部向外部计算渲染。
如果content是100%了,它又要想办法去弄padding来满足你,那对不起了,来个横向滚动条把,或者整个元素的边界扩张了。
太晚了我想睡觉了。
总之,想用padding来限制内容大小或者子元素的时候,父元素不要设置width,如果width设置了就意味着content肯定是不变的,完全和我们的想法矛盾了,父元素自身设置好padding就行了,下面子元素的宽度设置为100%。