2013-07-12 5 views
0

В последнее время у меня возникла проблема с изменением размера div после удаления границы.div изменяет размер при удалении границы

Уведомление это jsfiddle: http://jsfiddle.net/rALvd/1/

Если удалить черную рамку красный ДИВ больше не имеет запас 50px на верхней и нижней, но, как представляется, имеют гораздо больше пространства в нижней части.

Когда вы добавляете границу, красный div возвращается к соответствующим полям.

Вот код:

<div id="main_contact"> 
<div id="contact_contain"> 
    <div id="contact_form"> 
    </div> 
</div> 
</div> 

#main_contact { 
width: 100%; 
height: 450px; 
border: 1px solid black; 
} 

#contact_contain { 
position: relative; 
width: 100%; 
height: 350px; 
margin: 0 auto; 
background: url(homepage/contact.png) center center no-repeat; 
margin-top: 50px; 
border: 1px solid red; 
} 

ответ

0

Это нормальное поведение блочной модели. Если вы не хотите, чтобы размер изменялся, я предлагаю вам изменить цвет границы, чтобы соответствовать смежной области, чтобы она не была видна.

+0

Я использовал границу: 1px сплошной прозрачный. Я не знал, было ли это лучшей практикой или нет. – TheNameHobbs

+0

Конечно, все в порядке. –

+0

Это поведение называется [разворот границ] (http://reference.sitepoint.com/css/collapsingmargins). Есть и другие способы предотвратить это, например. путем установки 'display: table' или' overflow: auto' в внешний div (что позволяет установить [контекст форматирования нового блока] (http://www.w3.org/TR/CSS21/visuren.html#block-formatting)). И вы также можете использовать прокладку внешнего div вместо края внутренних прокладок, которые никогда не рушатся. –

Смежные вопросы