Показано с 1 по 8 из 8

Тема: Блок выходит за границы родителя.

  1. #1

    Регистрация
    22.02.2007
    Сообщений
    34
    Код:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    
    <html>
    <head>
    ****<title></title>
     * <style type="text/css">
     * * * html {
     * * * * * height: 100%;
     * * * }
    
     * * * body {
     * * * * * height: 100%;
     * * * * * padding: 0;
     * * * * * margin: 0;
     * * * }
    
     * * * #content {
     * * * * * min-height: 100%;
     * * * * * background-color: #FF4500;
     * * * }
    
     * * * * html #content {
     * * * * * height: 100%;
     * * * }
     * * * #menu{
     * *background-color: #00CED1;
     * *width: 500px;
     *}
     * </style>
    </head>
    
    <body>
    
     * * * *<div id="content">
     * *
     * *<div id="menu">Содержимое</div>
     * *
     * * * *</div>
    </body>
    </html>
    Блок MENU находится внутри блока CONTENT. Если окно просмотра меньше, по ширине, блока MENU, то этот блок выходит за границы CONTENT.
    Так должно быть? Почему?

  2. #2

    Регистрация
    15.11.2006
    Адрес
    Тольятти
    Сообщений
    2,698
    А почему так НЕ должно быть?) Нормальные браузеры в данной ситуации ведут себя именно так, как Вы им и предписываете.

    С одной стороны, по умолчанию для любого блока значение свойства overflow установлено в visible. Это означает, что в случае его переполнения, дочерние элементы будут выходить за его пределы.

    С другой стороны, если для блока content не задается явная ширина, то по умолчанию она будет равна 100% (как и для любого другого элемента в прямом потоке). В данном конкретном случае – 100% от ширины элемента body, которая равна 100% от ширины элемента html, которая в свою очередь равна ширине окна браузера. Поэтому красный фоновый цвет блока content распространяется только на ширину окна браузера. А для блока menu ширина указана явно – 500px, которые меньше или равны ширине окна браузера далеко не всегда...)


    Совет: задайте для блока content свойство min-width: 500px. А в общих случаях свойство min-width обычно задают для элемента body...

  3. #3

    Регистрация
    22.02.2007
    Сообщений
    34
    Возник следующий вопрос.
    Не все браузеры понимают min-width (если не использовать скрипт). Будет правильным вариант если, для CONTENT задам overflow: auto, а в качестве ограничения минимальной ширины, буду использовать вложенный в него блок (MENU) с нужной width?
    Или так

    body {overflow: auto;}

    а для ограничения минимальной ширины - блок с нужными размерами.

  4. #4

    Регистрация
    15.11.2006
    Адрес
    Тольятти
    Сообщений
    2,698
    То, что Вы написали, очень легко проверить на практике. И убедиться, что подобный вариант не сработает.

    Originally posted by AlexaP@Dec 24 2007, 00:13
    Будет правильным вариант если, для CONTENT задам overflow: auto
    Или так
    body {overflow: auto;}
    <div align='right'>[Только зарегистрированные пользователи могут видеть ссылки. ]
    [/quote]
    В результате:

    1. Если контента на странице будет больше, чем один «экран», Вы получите горизонтальный скролл не в окне браузера, а в блоке CONTENT, до которого придется «доскролливаться» вертикально...

    2. В IE будет два вертикальных скролла.

    <div class='quotetop'>Цитата</div>
    Не все браузеры понимают min-width (если не использовать скрипт).[/b]
    Давайте будем конкретнее. Свойства min/max-width/height не понимает только один современный браузер. И лучшего решения, чем minmax.js, на сегодняшний день не существует в принципе...

    P.S. Не изобретайте велосипед...)

  5. #5

    Регистрация
    22.02.2007
    Сообщений
    34
    Ну да, написал не подумав и не проверив.
    Велосипед я не изобретаю. Все пишут: делай так а не иначе. А причину не объясняют. Чтобы делать нужно понять.

  6. #6

    Регистрация
    15.11.2006
    Адрес
    Тольятти
    Сообщений
    2,698
    Originally posted by AlexaP@Dec 24 2007, 02:29
    Все пишут: делай так а не иначе. А причину не объясняют.
    <div align='right'>[Только зарегистрированные пользователи могут видеть ссылки. ]
    [/quote]
    Это где так пишут? И «все» – это кто?

  7. #7

    Регистрация
    22.02.2007
    Сообщений
    34
    Это где так пишут?
    Скорее всего, очень часто, попадаю на сайты из серии "Первый вор".


    Не будем о грустном.
    С наступающим Вас!

  8. #8

    Регистрация
    15.11.2006
    Адрес
    Тольятти
    Сообщений
    2,698
    Взаимно!

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 01.03.2009, 23:20
  2. Сдвигаем вложенный див, сдвигается фон родителя
    от Грин в разделе Вёрстка сайта
    Ответов: 3
    Последнее сообщение: 21.09.2007, 15:10
  3. Как удалить границы у SELECT ?
    от as111 в разделе Вёрстка сайта
    Ответов: 1
    Последнее сообщение: 15.07.2006, 00:21
  4. Границы в таблицах.
    от Queesesto в разделе Вёрстка сайта
    Ответов: 1
    Последнее сообщение: 22.11.2004, 15:58
  5. Границы в Photoshop
    от Ermol в разделе Растровая графика
    Ответов: 2
    Последнее сообщение: 19.08.2004, 16:02

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •