2014-01-14 2 views
1

У меня возникают проблемы с моим контейнером div, который вы увидите ниже. Он содержит очень простой график, который повторяется вертикально. Я хочу, чтобы фоновое изображение расширялось с содержимым, но это не так. Когда я расширяю окно браузера, фоновое изображение расширяется, чтобы заполнить страницу по вертикали, как и должно ... но когда я прокручиваю, нижняя часть фона, которая была первоначально ниже складки, пуста, когда я прокручиваю вниз.Контейнер DIV background image не расширяется с контентом

Я также включил html, тело, поскольку я не уверен, где проблема.

CLICK HERE TO SEE THE PAGE I AM HAVING TROUBLE WITH

Спасибо !!!

html,body { 
    background-color: #999; 
    background-image: url(../images/bg.jpg); 
    background-position: top; 
    background-repeat: repeat; 
    color: #fff; 
    font-family: Tahoma, Geneva, sans-serif; 
    font-size: 12px; 
    height: 100%; 
    line-height: 18px; 
    margin: 0; 
    padding: 0; 
} 

#container { 
    background-color: #000; 
    background-image: url(../images/bg_container.gif); 
    background-position: left top; 
    background-repeat: repeat-y; 
    display: block; 
    height: 100%; 
    margin: 0 auto; 
    max-width: 1200px; 
    min-width: 860px; 
    padding: 0 3px 0 3px; 
    position: relative; 
} 
+0

Можете ли вы дать скрипку? – jason

+0

Хорошо, это моя первая скрипка. На самом деле нужно было это сделать. Мои извинения. Я дизайнер, а не программист ... но все в порядке с HTML и CSS. Надеюсь, это то, что вам нужно. http://jsfiddle.net/R8aZS/ – AtomCrayon

ответ

1

Проблема здесь заключается в использовании position:absolute на DIV id="triathlete" тогда ваш главный контейнер не принимает в уходе за пространство этого элемента. Решение, которое вы можете попробовать это:

  • В вашем HTML изменить порядок между двумя элементами, у вас есть:

    <div id="triathlete"></div> 
    <div id="mainBody"></div> 
    

    Изменить эти элементы, как это:

    <div id="mainBody"></div> 
    <div id="triathlete"></div> 
    
  • Тогда удалить position:absolute:

    #triathlete { 
        background-image: url(../images/image_triathlete.png); 
        background-position: top; 
        background-repeat: no-repeat; 
        display: block; 
        left: 3px; 
        margin: 0; 
        padding: 87px 30px 0 30px; 
        /*position: absolute; Remove this 
        top: 363px;*/ 
        width: 150px; 
        z-index: 3; 
    } 
    
  • И изменить height для контейнера min:

    #container { 
        min-height:100%; 
    } 
    

Demo

+0

Я не могу вас благодарить! Я провел более 2 часов прошлой ночью, пытаясь понять это самостоятельно! – AtomCrayon

+0

@AtomCrayon Нет проблем, мой друг рад помочь вам. Я также являюсь графическим дизайнером, так как рекомендую избегать использования «position: Absolute», чтобы в большинстве случаев использовать все макеты для использования float и inline-блоков. – DaniP

+0

Я обязательно отвечу на этот совет. Его время заняться некоторыми навыками CSS3! – AtomCrayon

0

Если это не работает (по любой причине), или вы чувствуете, как его реализация дает вам слишком много или головная боль, вот быстрое и грязное исправление с использованием jQuery:

setInterval(function() { 
    $("#container").css("height",$(document).height()); 
},50); 

Это будет автоматически в масле изменить размер вашего контейнера div, чтобы охватить все его содержимое, даже если они абсолютно расположены.

Отметив, что это не тот способ решить подобную проблему, но может помочь вам, если у вас нет времени сделать это правильно.

+0

Ничего себе, спасибо за это тоже. Для этого текущего сайта я работаю, я просто могу сделать это так один раз. Я должен был закончить этот сайт за выходные! – AtomCrayon

Смежные вопросы