За последние 24 часа нас посетили 40933 программиста и 1283 робота. Сейчас ищут 1286 программистов ...

Высота всех блоков 100%

Тема в разделе "HTML и CSS", создана пользователем Freakmeister, 9 июл 2011.

  1. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Нужно выравнить высоту блоков по высоте окна браузера, если высота содержимого в нём меньше окна браузера, либо по высоте содержимого, если оно больше окна браузера. Надеюсь, все сейчас поняли, что я тут написал. :D

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

    Шаг 1:
    Сделал пробную пустую вёрстку:
    HTML:
    1. <style type='text/css'>
    2. <!--
    3. * {
    4. padding: 0;
    5. margin: 0;
    6. }
    7.  
    8. html {
    9. height: 100%;
    10. }
    11.  
    12. body {
    13. height: 100%;
    14. border: 5px solid red;
    15. }
    16.  
    17. -->
    18.  
    19. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    20. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    21.  
    22.         <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    23.         <meta name="author" content="MESMERiZE" />
    24.  
    25.         <title>Untitled 1</title>
    26. </head>
    27.  
    28. text text text text text text text text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text text text text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text text text text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text text text text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text text text text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text text text text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text text text text text text text text text text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text text text text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text text text text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text text text text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text text text text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text texttext text text text text text text text text text text texttext
    29. </body>
    30. </html>
    [​IMG] [​IMG]

    Как видите, при развёрнутом окне всё нормально, но если его сузить и опустить прокрутку вниз, то видно что body имеет высоту окна браузера, а не своего содержимого.

    Шаг 2:
    Выяснил опытным путём, что если в html прописать height: 100%, а в body прописать min-height: 100%, то всё выглядит идеально - при развёрнутом окне, body обтикает окно браузера, как показано выше, а при суженном окне браузера - обтекает текст.

    [​IMG]

    Шаг 3:
    Добавил в body ещё один блок с id="wrapper", в который засунул весь текст. Его CSS выглядит так:

    #wrapper {
    min-height: 100%;
    border: 5px solid green;
    }

    [​IMG] [​IMG]

    Как видите, тут уже всё совсем не идеально. Мне пока не удалось заставить #wrapper принять форму body, так что наращивать ещё элементов пока не стал. Если прописать для #wrapper height: 100%, то выглядит это так:

    [​IMG] [​IMG]

    Я в отчаянии. :( Нужна помощь.
     
  2. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    хз, чувак, могу только расстроить - в свое время подобную задачу так и не решил.

    просто сделал фон у body такой же как у wrapper, а footer привязал к низу. может у тебя тоже такое возможно?
     
  3. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Не возможно, потому что я затеял делать резиновый футер, привязанный к резиновой половине контента. Абсолютное позиционирование здесь не прокатит. Проблема с высотой на самом деле достаточно обширно-применимая и часто-запрашиваемая, поэтому хотелось бы разобраться с ней раз и навсегда. Надеюсь на коллективный разум.
     
  4. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Нагуглил тут интересное решение с кучей хаков: http://blog.sjinks.pro/test/3col/3col_h100.html
    Осталось вкурить как оно работает и приладить к своему проекту...