Jump to content
  • 0

Проблема отступов.


boompaw
 Share

Question

Добрый вечер.

Есть код:

<html>
<title>aaa</title>
<head>
<style type="text/css">

html body {
margin: 0;
width: 100%;
background-color: #000;
}

#main {
margin: auto;
width: 80%;
background-color: #fff;
}

#head {
height: 200px;
margin: 2%;
background-color: #888;
}

</style>
</head>
<body>


<div id="main">

<div id="head">

</div>

</div>


</body>
</html>

Отступы у head от main делаются только справа и слева, а сверху и снизу не делаются.

В связи с чем это происходит?

Помогите пожалуйста разобраться.

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0
Добрый вечер.

Есть код:

<html>
<title>aaa</title>
<head>
<style type="text/css">

html body {
margin: 0;
width: 100%;
background-color: #000;
}

#main {
margin: auto;
width: 80%;
background-color: #fff;
}

#head {
height: 200px;
margin: 2%;
background-color: #888;
}

</style>
</head>
<body>


<div id="main">

<div id="head">

</div>

</div>


</body>
</html>

Отступы у head от main делаются только справа и слева, а сверху и снизу не делаются.

В связи с чем это происходит?

Помогите пожалуйста разобраться.

Про doctype уже сказали, а так можно добавить в

#main { overflow: hidden;  }

. То что у тебя происходит называется схлопыванием внешних отступов. Здесь более подробно margin

Link to comment
Share on other sites

  • 0

Спасибо вам большое ребята.

Только учусь, поэтому такие вопросы глупые.

Про doctype уже сказали, а так можно добавить в
#main { overflow: hidden;  }

. То что у тебя происходит называется схлопыванием внешних отступов. Здесь более подробно margin

У меня вопрос созрел:

Каким образом overflow влияет в данном случае на решение проблемы?

Link to comment
Share on other sites

  • 0

Просто

overflow: hidden;

отсекает отступы друг у друга. Кстати это не ошибка браузеров, а описываемое поведении боксовой модели. Чтобы блок не вываливался из контейнера, можно родителю прописать

overflow: отличным от visible

или сделать абсолютное позиционирование, float.

Edited by runet
Link to comment
Share on other sites

  • 0

В том разделе, 9.4.1, написано примерно такое:

Float-ы, абсолютно позиционированные эл-ты, контейнеры блоков (такие как строчные блоки, ячейки и заголовки таблиц), не являющиеся блоками, и блоки с любым 'overflow', кроме 'visible' (кроме случаев, когда это свойство передается области просмотра браузера) образуют новые контексты форматирования блоков.

В контексте форматирования блоков, боксы выкладываются один за другим, по вертикали, начиная от верха блока-контейнера. Вертикальное расстояние между двумя соседними блоками определяется свойством 'margin'. Вертикальные 'margin'-ы между соседними блочными боксами в контексте форматирования блоков схлопываются.

а в разделе 8.3.1 Collapsing margins, третьим пунктом списка —

Вертикальные margin-ы элементов, образующих новые контексты форматирования (таких как float-ы и элементы с любым 'overflow', кроме 'visible') не схлопываются с их потомками, размещаемыми в потоке (т.е. как обычно).

Получается, что в таких блоках margin-ы схлопываются только у потомков друг с другом, но не у родителя с потомками...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy