Jump to content
  • 0

проблема с margin


Odrin
 Share

Question

вот простой пример - http://jsfiddle.net/keut3/

Почему так выходит? Ведь у вложенного дива (.panel) отступы должны браться относительно родителя (.phone)? А выходит, как будто margin задан body.

Как исправить?

Наверно, это как- то связанно с Margin Collapsing? Никогда его смысла не понимал...

Edited by Odrin
Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0
  On 3/1/2012 at 2:18 PM, psywalker said:

padding не катит, как видите. Нужно, что бы серый div отступал от родителя.

  On 3/1/2012 at 2:22 PM, DImas95 said:

Добавтье position: absolute; для .panel тогда будет так, как и предполагалось.

Считаю absolute плохим тоном. Использовать его надо только тогда, когда без него не обойтись. Для отступов существует margin. Только с какого он тут не работает и как надо сделать, чтоб работал?

Edited by Odrin
Link to comment
Share on other sites

  • 0
  On 3/2/2012 at 7:08 AM, sigma77 said:

Еще хуже =)

В общем сам разобрался =)

http://jsfiddle.net/keut3/4/

Помогла эта статья. Может кому еще пригодится.

Если в двух словах - как я и подумал, это "Margin Collapsing".

"Если у родительского элемента нет ограничивающих факторов( об этих факторах я напишу ниже ), то margin переходит от внутреннего элемента к внешнему, после чего выбирается по старой схеме этот margin ( если одноименные. то выбирается наибольший, для разноименный происходит сложение .)"

И решение:

"Внешнему элементу поставить border, например border:1px solid black;

Можно добавить padding, например padding:10px;

И последнее правило — overflow(любое значение, кроме visible)"

P.S. Статью однозначно в закладки)

Edited by Odrin
  • Like 1
Link to comment
Share on other sites

  • 0
  On 3/2/2012 at 9:11 AM, sigma77 said:

Чем?

Тем, что отступа между блоками нету. А мне именно это нужно.

  psywalker said:

Ну это уже вырожденный случай. И, как я уже писал выше, "И последнее правило — overflow(любое значение, кроме visible)". Да и еще +2 способа решения этой задачи =)

Link to comment
Share on other sites

  • 0
  On 3/2/2012 at 10:44 AM, Odrin said:
  On 3/2/2012 at 9:11 AM, sigma77 said:

Чем?

Тем, что отступа между блоками нету. А мне именно это нужно.

Ну а подумать и задать отступ нужному родителю, если уж я ошиблась, это разве сложно?

http://jsfiddle.net/keut3/17/

Link to comment
Share on other sites

  • 0
  On 3/2/2012 at 10:53 AM, sigma77 said:

Ну а подумать и задать отступ нужному родителю, если уж я ошиблась, это разве сложно?

http://jsfiddle.net/keut3/17/

Для этого Вы добавили в страницу еще 1 div. А это не есть хорошо.

Link to comment
Share on other sites

  • 0
  On 3/5/2012 at 2:28 PM, Odrin said:
  On 3/2/2012 at 10:53 AM, sigma77 said:

Ну а подумать и задать отступ нужному родителю, если уж я ошиблась, это разве сложно?

http://jsfiddle.net/keut3/17/

Для этого Вы добавили в страницу еще 1 div. А это не есть хорошо.

Ради качества я бы добавил хоть 10 дивов)

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