Вы можете сделать это, используя box-sizing
, чтобы изменить значение width
так, чтобы оно включало отступ (и рамку - немного похоже на блочную модель в режиме Quirks, без других недостатков).
box-sizing
- это предложенный стиль CSS3, который, к сожалению, означает, что он не будет работать в старых и малоизвестных браузерах, и все еще требует префикса в некоторых браузерах.
.col{
float:left; padding: 10px;
box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;
}
Что еще более важно, он не работает в IE до IE8. Если вы не хотите компенсировать это, переводя эти браузеры в режим Quirks - и вы действительно не хотите этого делать - вы можете попробовать один из сценариев / вариантов исправления ошибок, который пытается реализовать box-sizing
в IE6-7.
Если этого недостаточно, вам придется вернуться к методу обертки, как цитирует Скотта. По крайней мере, это будет работать везде.
В любом случае, будьте осторожны с процентами, которые в сумме составляют 100%, и с разметкой жидкости. Если ширина пикселя не делится на проценты, которые вы используете, вы получите округление. WebKit обычно округляется вниз, что может оставить вас на один-два пикселя от полной ширины; IE6-7 будет округляться до ближайшего, который, если вам не повезет, может оставить вас на один или два пикселя больше, что приведет к неожиданному переносу ваших поплавков.