Jump to content
  • 0

height 100% и шапка


AnyaRayne
 Share

Question

Здравствуйте!

Сталкнулась с такой проблемой:

<html>
<style>
html body {
margin: 0;
padding: 0;
height: 100%;
}
</style>
<body>
<div style="height: 80px; width: 100%; background: #fa0">header</div>
<div style="float: left; height: 100%; width: 150px; background: #0fa;">object tree</div>
<div style="height: 100%; background: #a0f;">container</div>
</body>
</html>

Суть ее в том, что появляется скролл на 80px, то есть на высоту шапки.

Как от него избавиться и сделать object tree и container нормальной высоты (100%-80px).

Заранее спасибо.

Link to comment
Share on other sites

Recommended Posts

  • 0

Да :D

Теперь не от балды. То что вы хотите сделать просто так не возможно. Используйте абсолютное позиционирование, в котором див будет начинаться не сразу сверху а на 80px ниже..

Link to comment
Share on other sites

  • 0

AnyaRayne

А можно вопрос, Вы это "от балды" написали?

Ты на моего дружище не гони, он знает, что делает :D

Слушай, а вот такой вариант, странный конеш, но зацени всё равно: Я короче сделал отступ -80пикселов, поднял какбы нижний контейнер, в него запихнул ещё один контейнер, а ему уже назначил отступы верхние и т. д. :)

<!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>Ivan Matveev - Gallery</title>


<style>
*{ margin: 0; padding: 0;}
html{
margin: 0;
padding: 0;
height: 100%;
}
body{ height: auto; min-height: 100%; height: 100%;}
</style>
</head>

<body>
<div style="height: 80px; width: 100%; background: #fa0; position: relative; z-index: 2;">header</div>
<div style="min-height: 100%; width: 150px; background: #0fa; margin-top: -80px;">
<div style="margin-top: 100px;">object tree</div>

</div>


</body>
</html>

Link to comment
Share on other sites

  • 0

Я конечно извиняюсь, может у меня копипаст сломался, но по моему Вы, psywalker, тоже "от балды" написали :D

Пример работает только в IE и не содержит третьего блока.

Под IE у меня тоже есть рабочий вариант, и по моему он проще и красивее...

<html>
<style>
html body {
margin: 0;
padding: 0 0 80px 0;
height: 100%;
overflow: hidden;
}
</style>
<body>
<div style="height: 80px; width: 100%; background: #fa0;">header</div>
<div style="float: left; height: 100%; width: 150px; background: #0fa; overflow: auto;">object tree<div style="height: 2000px;"></div></div>
<div style="height: 100%; background: #a0f; overflow: auto;">container<div style="height: 2000px;"></div></div>
</body>
</html>

А вот как такое же заставить остальные браузеры показывать?

Edited by AnyaRayne
Link to comment
Share on other sites

  • 0
<html>
<style>
html body {

- стили, как-то чаще, в head прописывают, тогда их браузеры лучше понимают...

Не суть важно... даже если объявить стиль после </html>, он все равно отработает как и в <head>...

Если кому интересно, решение здесь

Link to comment
Share on other sites

  • 0
Это не решение, в рамках данной задачи, это взятка преподу.)

Использовать js не спортивно, с ним всё делается элементарно.

За неимением лучшего, на мой взгляд, это самое красивое решение... Найду лучше - поделюсь :D

Link to comment
Share on other sites

  • 0

шапку абсолют на верх, в вашем контейнере ещё один блок с марджином сверху равным шапки.

То что вы хотите сделать просто так не возможно. Используйте абсолютное позиционирование, в котором див будет начинаться не сразу сверху а на 80px ниже..

вот я уже писал решение, чем оно не подходит?

Link to comment
Share on other sites

  • 0

эм, что проверять скажите мне? если вы не умеете верстать это ваше дело..

сколько сайтов так построено и все работают.. а у вас нет.. если вы не умеете бороться со колапсом то вам стоит поучится..

То что вы хотите сделать просто так не возможно. Используйте абсолютное позиционирование, в котором див будет начинаться не сразу сверху а на 80px ниже..

Этот пример вообще 100% работает, и не надо напрягаться даже.

Link to comment
Share on other sites

  • 0

Проблема в скролбарах, о Великий Гений Некородизайна. Попробуй сверстай так чтоб в нижней части был нормальный скрол и ты весьма удивишься. Это при взгляде по-диагонали всё просто.

Link to comment
Share on other sites

  • 0

Была какая то задача про скрол? причём тут он если нужен сайт в 100% у которого основной блок не скролится..(такова была задача).

Пример 1.

<div id="header"></div>
<div id="conteiner"></div>
<style type="text/css">
#header {height: 80px;}
#conteiner {position: absolute;top: 80px; left: 0; bottom: 0; right: 0;}
</style>

Пример 2.

<div id="header"></div>
<div id="conteiner">
<div id="content"></div>
</div>
<style type="text/css">
#header {height: 80px; float: left; width: 100%;}
#conteiner {height: 100%; width: 100%;}
#content {padding-top: 80px;}
</style>

Этот вариант и со скролом как вы хотели.

Edited by Nekromancer
Link to comment
Share on other sites

  • 0

Nekromancer, извините, а Вы что курили? Где это можно достать? Я тоже хочу!

Можно попросить Вас воздержаться от коментариев по теме, пока не "отпустит" :D

То, что Вы продемонстрировали - ни в коей мере не решает поставленную задачу.

Второй пример, приведенный мной откройте в IE, и тогда увидите, что я хотела сделать.

Link to comment
Share on other sites

  • 0

Слушай, некро, ты здесь могёшь гнать, что хочешь ибо на халяву, но будь это реальной работой - ты бы шёл на три буквы за элементарное непонимание тех. задания заказчика. Поверь мне, некоторые дают задания куда менее информативно, это же поняли все, кроме тебя, делай выводы.

Edited by AjiTae
Link to comment
Share on other sites

  • 0
Да я открыл, в чём проблема? вы спросили как сделать слой на 100%-80px я вам сделал, а что будет внутри слоя - ваши проблемы.

Я же в конкретном примере объяснила, что именно хочу от этого слоя. То, что Вы продемонстрировали я и сама могла сделать, не тратя время на придурь какого-то псевдоспециалиста.

Хочу Вас попросить впредь, если решите помогать, то хотябы удостоверьтесь, что поняли о чем идет речь...

Link to comment
Share on other sites

  • 0
Суть ее в том, что появляется скролл на 80px, то есть на высоту шапки.

Как от него избавиться и сделать object tree и container нормальной высоты (100%-80px).

Заранее спасибо.

Я вашу проблему решил 15 раз уже.

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<style type="text/css">
html, body {margin: 0;padding: 0;height: 100%;}
#header {height: 80px;}
#conteiner {position: absolute;top: 80px; left: 0; bottom: 0; right: 0;}
</style>
</head>
<body>
<div id="header"><div style="height: 80px; width: 100%; background: #fa0;">header</div></div>
<div id="conteiner"><div style="float: left; height: 100%; width: 150px; background: #0fa; overflow: auto;">object tree<div style="height: 2000px;"></div></div>
<div style="height: 100%; background: #a0f; overflow: auto;">container<div style="height: 2000px;"></div></div></div>
</body>
</html>

http://htmlbook.ru/html/!doctype.html

Edited by Nekromancer
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