Jump to content
  • 0

Выравнивание дива по вертикали


Mytis
 Share

Question

Добрый день!

Есть проблема:

CSS:


#container
{
position: absolute;
width: 99%;
height: 99%;
min-width: 780px;
min-height: 580px;
}

#cell
{
position: relative;
top: 50%;
width: 700px;
height: 400px;
margin: -200px auto;
}

HTML:


<div id="container">
<div id="cell">
</div>
</div>

При отрисовке этого дела, слой с ID="CELL" как положено всегда посередине родителя. В браузерах FireFox и Opera при масштабировании окна, родитель уменьшается до минимального предела, после чего перестает это делать. Соот-но его центр всегда в разумных пределах, и дочерний слой, выровненный по этому центру отображается нормально. А вот в Chrome и IE8 при уменьшении размеров окна меньше, чем минимально допущенный размер слоя с ID="container" дочерний слой начинает уезжать за его верхнюю границу, словно его позиционирование и не относительное вовсе (причем он всегда по центру окна, будто у него position: absolute;)

Может есть какой-то более грамотный способ выровнять внутренний слой по вертикали, либо доработка уже существующего кода? Если что-то неграмотно написано, то всегда готов получить по шапке и выслушать советы уважаемых верстальщиков

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0

пустил в ход таблицы. Вместо вмещающего дива использовал - все работает, но вот Chrome отказывается применять min-height. Такие дела

Все же если у кого есть решение проблемы - не откажусь прочесть

Edited by Mytis
Link to comment
Share on other sites

  • 0

А чем например не устроил такой вариант?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
* { margin: 0; padding: 0;}
html,body { height: 100%;}
#container
{
position: relative;
width: 99%;
min-width: 780px;
min-height: 100%;
}

#cell
{
position: absolute;
top: 50%;
width: 700px;
background: red;
height: 400px;
left: 50%;
margin: -200px 0 0 -350px;
}
</style>
</head>

<body>
<div id="container">
<div id="cell">
</div>
</div>
</body>
</html>

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