CSS里padding和width的问题
最近遇到一个问题:padding在ie10+,chrome,ff上不占宽度,在IE9下面占宽度。试了很多办法无解,最后百度得知一解决方法。下面详细说明:
情况一
在一个block元素上使用padding后元素实际的宽度会增加,这是一个常识。
这本来是一个很浅显的道理,但许多初学者考虑的时候却觉得很怪异。
我这里按自己的解释来说明一番。
给个假设情况:一个width:10px的元素,padding:10px;
那么实际宽度就是width+padding-left+padding-right=30px;
假如说padding对宽度无影响,那么width是10px;但是padding在横向的宽度是20px;这样内边距padding>总宽width。
一个元素的内边距却大于这个元素的总宽,显然这是个悖论。
所以说作为内边距的padding是一定要加在宽度之上的。
情况二
使用不同的DOCTYPE 声明造成width的含义有所不同。
一般使用:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
用这句声明后,所有PADDING在不同浏览器上面占用宽度