Показать сообщение отдельно
  #1 (permalink)  
Старый 29.06.2013, 23:17
Профессор
Отправить личное сообщение для lancer Посмотреть профиль Найти все сообщения от lancer
 
Регистрация: 30.01.2008
Сообщений: 230

relative position - не работает процентное смещение + вопрос про высоту html и body
Здравствуйте, Уважаемые.

Лично я использую FF для просмотра этих вопросов как один из браузеров, которому можно больше всего доверять в плане соответствия стандартам.

При абсолютном и релативном позиционировании указание любого из смещения, top например, может быть либо в пикселях, либо в процентах. При указании в пикселях происходит смещение на данное растояние от родительского окна.

Вопрос 1. Это происходит от окна браузера, html или body?
При указании в процентах происходит то же смещение, что и в случае с px, но на расстояние выраженное в процентах от размера смещаемого блока, например для top:20% это будет 0.2 * высоту блока. Во всяком случае так сообщает справка(читаем абзац начинающийся с жирного "Возможны отрицательные координаты").

Вопрос 2.1. Какое смещение имеется ввиду при записи top:0, пиксельное или процентное?
Вопрос 2.2. В моем примере процентное смещение вообще не работает, почему?

(привожу код здесь и готовый пример в архиве)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>тест</title>
<meta name="description" content="" />
<meta name="keywords" content="" />

<!--————————————————————————css————————————————————————-->
<style>
/*————————————————————————reset————————————————————————*/
* {margin:0; padding:0;}
img, fieldset, input{border:0;}
ul,ol{list-style:none;}
a{outline:none;}

/*————————————————————————wraps————————————————————————*/
/* только при height:100% у обоих корневых боксов они будут занимать высоту страницы */
html{border: 5px solid #fc00ff; height: 100%;} /* pink */
body{background:#838383; border: 5px solid #2c2c2c; float:left; width:100%; height: 100%;} /* black */

#wrapper{border: 5px solid #00d8ff; overflow: hidden; min-height: 100%; position: relative;} /* blue */
#footer{height: 100px; border: 2px solid #c29929; top: 30%; position: relative;} /* yellow */
</style>

<!--————————————————————————js—————————————————————————-->
<script type="text/javascript" src="js/jquery-2.0.2.min.js"></script>
<script type="text/javascript" src="js/base.js"></script>

<body>
	<div id="wrapper">
		<div id="footer"></div>
	</div>
</body>
</html>


Вопрос 3. (на примере того же кода, что и в вопросе 2). Разное поведение высоты элементов внутри body с min-height:100% и height:100%. Если мы запишем так: html{height:100%} body{min-height:100%} wrapper{min-height:100%}, то body займет всю высоту окна, а wrapper проигнорирует cвой min-height:100%. Если же body зададим явную высоту height:100%, то высоту окна займет и wrapper. Почему если у body min-height:100%, а не height:100%, то wrapper c height:100% или min-height:100% не занимает всю высоту body(до конца окна)
Вложения:
Тип файла: zip positioning_per_percents_and_what_is_0.zip (38.9 Кб, 1 просмотров)

Последний раз редактировалось lancer, 01.07.2013 в 01:57.
Ответить с цитированием