Jump to content
  • 0

Простейший макет, проблемы с height


m2141
 Share

Question

Т.к. в соседнем разделе не удалось мне решить мой вопрос, решила начать с нуля и посмотреть, где возникает проблема.

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

Вот собственно оно http://jsfiddle.net/bfTAC/

Интересно, что в Opera все отлично выглядит как надо

2843323.jpg

А вот в Хроме и Firefix'е - что попало

2858683.jpg

Если глянуть для интереса "инспектором" в Firefox, вот что говорит

2856635.jpg

Получается "контейнер" 100%, но почему то всего 220px. Хотя с body там же все нормально - 100% и 720px на весь экран.

Что я делаю не так? Уже тупняк какой-то начался, тяжело абстрагироваться :)

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Посмотрим ваш CSS код.

html, body, form
{
margin: 0;
padding: 0;
}

html
{
height:100%;
}

body
{
height:auto !important;
height:100%;
min-height:100%;
min-width:760px;
}

#container
{
background: #ccc;
width: 100%;
margin: auto;
min-height: 100%;
height: 100%;
overflow: auto;
}

#header
{
height: 100px;
background: #3366FF;
}

#content
{
background: #CC33FF;
}

#antifooter
{
height: 100px;
background: #000;
}

#footer
{
background: #B88A00;
height: 100px;
margin-top: -100px;
}?

Первая ошибка - вы задаете элементам свойства, которые уже заданы по умолчанию или ничего, по своей сути, не изменяют при данных условиях. Например width: 100%; margin: auto; overflow: auto; и т.д.

Изучите, какие CSS свойства применяются по умолчанию, и избавьте себя от необходимости явно их задавать.

Вторая ошибка - вы назначаете одно и тоже свойство одному элементу. Давайте подумаем, какое из этих свойств будет применено

body
{
height:auto !important;
height:100%;
min-height:100%;
min-width:760px;
}

применяется то правило, которое было задано последним, либо с пометкой !important, значит height:100%;, согласно вашему коду, является лишним.

Хотя, чтобы ваш макет заработал, нужно как раз убрать "height:auto !important", как это сказано ниже, а height:100%; оставить

Третья ошибка - не использовать HTML5. Браузеры уже достаточно давно принудительно рендерят страницу с использованием HTML5 парсера, и отучить их от этого нельзя. Следовательно, код можно упростить:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="new.css">
</head>

<body>
<div id="container">
<div id="header">
HEADER
</div>
<div id="content">
CONTENT
</div>
<div id="antifooter"></div>
</div>
<div id="footer">
FOOTER
</div>
</body>
</html>
?

а так же рекомендуется заменить <div id="header></div> на <header></header>, но это уже ваше дело. (так как новые HTML5 теги не поддерживают старые IE, а для поддержки нужно подключать на страницу скрипт)

Четвертая ошибка - попытка изобрести велосипед или пытаться реализовать "вредный совет". Существует куча готовых решений, как растянуть контент страницы на всю высоту окна браузера. Воспользуйтесь одним из них, например: http://jsfiddle.net/kUBAT/ посмотреть результат: http://jsfiddle.net/kUBAT/embedded/result/ (решение было подогнано под ваш код)

проверил на кроссбраузерность, работает в последних Google Chrome, Safari, Opera, Firefox, IE8+, возможно и в более ранних версиях, возможности проверить нет.

Можно найти полностью кроссбраузерное решение, вплодь до IE6 (но надо ли?)

P.S. не сверяйтесь первоначально по опере, в ней слишком много багов, чтобы она была эталоном. Используйте Google Chrome, либо Firefox (всегда последних версий)

Edited by NeoXidizer
Link to comment
Share on other sites

  • 0

Давайте обратимся к инспектору и узнаем, какое из этих свойств будет применено

применяется то правило, которое было задано последним, значит height:100%;.

В инспекторе ошибка, на самом деле применится height: auto !important; (из-за !important).

Первая ошибка - вы задаете элементам свойства, которые уже заданы по умолчанию. Например width: 100%; margin: auto; overflow: auto; и т.д.

Начальное значение свойства width - auto, overflow - visible.

Edited by troll
Link to comment
Share on other sites

  • 0

Первая ошибка - вы задаете элементам свойства, которые уже заданы по умолчанию. Например width: 100%; margin: auto; overflow: auto; и т.д.

Начальное значение свойства width - auto, overflow - visible.

нwidth:100%, в данном случае, не сыграет абсолютно никакой роли, как и oveflow, поэтому не вижу смысла их указывать

Link to comment
Share on other sites

  • 0

Спасибо всем!

Все понятно теперь, с этим height: auto !important. Проблемы были от непонимания...

На самом деле я занимаюсь под Битрикс и они в своем основном шаблоне так делают:

html, body, form
{
margin: 0;
padding: 0;
}

html
{
height:100%;
}

body
{
height:auto !important;
height:100%;
min-height:100%;
min-width:760px;

А у меня при некоторых переделках все это поплыло, вот и решила с самого начала на примере одной странички разобраться.

Как раз в основном использую Firefox, но тут уже в качестве эксперимента одновременно в 4 браузерах проверяла.

Остальные советы постараюсь разобрать .

Четвертая ошибка - попытка изобрести велосипед или пытаться реализовать "вредный совет". Существует куча готовых решений, как растянуть контент страницы на всю высоту окна браузера. Воспользуйтесь одним из них, например: http://jsfiddle.net/kUBAT/ посмотреть результат: http://jsfiddle.net/...mbedded/result/ (решение было подогнано под ваш код)

проверил на кроссбраузерность, работает в последних Google Chrome, Safari, Opera, Firefox, IE8+, возможно и в более ранних версиях, возможности проверить нет.

Можно найти полностью кроссбраузерное решение, вплодь до IE6 (но надо ли?)

Что-то не поняла... Вроде ведь так и хотела сделать по сути самой идеи, если бы не намудрила с заданием высоты всему подряд.

Или не вижу чего-то?)

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