Немного старый вопрос, но стоит упомянуть об ошибке рендеринга в Firefox (все еще присутствующей по состоянию на январь '13), когда контур будет отображаться снаружи всех дочерних элементов, даже если они переполняют своего родителя (через отрицательные поля тени от ящиков и т. д.)
Вы можете исправить это с помощью:
.container {
position: relative;
}
.container:before {
content: '';
margin: 0;
padding: 0;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
outline: 1px solid #ff0000;
}
Очень жаль, что это все еще не исправлено. Я очень предпочитаю контуры во многих случаях, так как они не увеличивают размеры элемента, избавляя вас от необходимости учитывать ширину границы при настройке размеров элемента.
В конце концов, что проще?
.container {
width: 960px;
height: 300px;
outline: 3px solid black;
}
Или:
.container {
width: 954px;
height: 294px;
border: 3px solid black;
}