Есть 2 техники, которые могут пригодиться для этого распространенного сценария. У каждого есть свои недостатки, но иногда они могут быть полезны.
Размер поля: рамка-граница включает отступы и ширину границы в ширину элемента.
Например, если вы установите ширину div с 20px отступами 20px и границей 1px равными 100px, фактическая ширина будет 142px, но с рамкой-рамкой отступы и поля будут внутри 100px.
.bb{
-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
-moz-box-sizing: border-box; /* Firefox, other Gecko */
box-sizing: border-box;
width: 100%;
height:200px;
padding: 50px;
}
Вот отличная статья: http://css -tricks.com / box-sizing / и вот скрипка http://jsfiddle.net/L3Rvw/
И еще есть позиция : абсолютная
.padded{
position: absolute;
top: 50px;
right: 50px;
left: 50px;
bottom: 50px;
background-color: #aefebc;
}
http://jsfiddle.net/Mw9CT/1/
Конечно, и то, и другое не идеально, размер окна не совсем подходит под вопрос, так как элемент на самом деле имеет ширину 100%, а не 100% - 100px (однако это будет дочерний div). И абсолютное позиционирование определенно не может использоваться в любой ситуации, но обычно это нормально, если установлена родительская высота.