Масштабируемая картинка на фоне сайта или резиновый фон

Воскресенье, Март 22, 2009 16:00 WebMast
Рубрики: CSS, Web-developer, html

Масштабируемая картинка на фоне сайта или резиновый фон

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

Картинка на фоне должна сужаться и растягиваться по мере изменения окна браузера. Каркас из двух колонок. Минимальная ширина 1000px. Это все мы рассмотрим сегодня.

Задаем position absolute и картинке и самому контенту. Затем с помощью z-index помещает фон вниз, а все остальное наверх.

Делаем див, внутри которого будет лежать фоновая картинка.

<div id="fon">
<img src="fon.jpg" alt="" />
</div>
#fon{
height:100%;
width:100%;
z-index:1;
min-width:1000px;
max-width:1600px;
}
#fon img{
height:100%;
width:100%;
position:absolute;
}

Теперь див со всем остальным содержимым.

<div id="page">
<div class="sid">
<div class="trans"></div>
<div class="text">
Боковая колонка (sidebar)
</div>
</div>
<div class="note">
<div class="trans"></div>
<div class="text">
Страница (page)
</div>
</div>
<ul id="menu">
<li><a href="#">Главная</a></li>
<li style="border:0 !important;"><a href="#">О компании</a></li>
</ul>
</div>
#page{
position:absolute;
top:0;bottom:0;right:0;left:0;
z-index:100;
}
.note{
border:1px solid #ddd;
margin:2% 7% 0 0px;
width:55%;
float:right;
min-height:500px;
height:auto !important;
height:500px;
position:relative;
}
.trans{
background:#fff;
opacity:0.4;
position:absolute;
height:100%;
width:100%;
}
.text{
position:relative;
padding:10px;
}
.sid{
border:1px solid #ddd;
margin:2% auto 0 7%;
width:23%;
float:left;
position:relative;
min-height:500px;
height:auto !important;
height:500px;
}
ul#menu{
position:absolute;
bottom:5%;
left:10%;
font-size:px;
}
#menu li{
float:left;
list-style:none;
width:200px;
text-align:center;
border-right:1px solid #333;
}
#menu li a{
text-decoration:none;
color:#fff;
border-bottom:1px dashed transparent;
}
#menu li a:hover{
text-decoration:none;
color:#fff;
border-bottom:1px dashed #ddd;
}

Вот... Что у нас вышло, можно посмотреть тут: size-fon.html.

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

За картинку спасибо: http://www.htmllancer.tu2.ru/.

Вы можете оставить ответ, или trackback с Вашего собственного сайта.

27 комментариев “Масштабируемая картинка на фоне сайта или резиновый фон”

  1. booblik сообщил:

    Март 22nd, 2009 16:56

    Спасибо! Очень интересно было, как это сделано!


  2. Алексей сообщил:

    Март 22nd, 2009 18:05

    Прикольно! :-) Спасибо! :-)


  3. WebMast сообщил:

    Март 22nd, 2009 20:35

    Помните! Этот метод только для меня. Для вас его нужно затачивать... Например минимальную и максимальную ширину экрана.


  4. WOLF BESPREDEL сообщил:

    Март 23rd, 2009 3:11

    Спасибо, на днях испробую этот способ на практике... Но у меня в FF ссылки главная и о компании криво отображаться, т.е. накладываться на блоки. Думаю чтобы этого не было нужно отступ в CSS прописать от блоков...


  5. WebMast сообщил:

    Март 23rd, 2009 10:33

    У меня в фф нормально все отображается. Скорее всего это зависит от разрешения монитора. Да, пропиши отступы...


  6. SiteDev сообщил:

    Апрель 2nd, 2009 12:20

    В IE7, увы, блоки не прозрачны. Т.е. уже не кроссбраузерно получилось.


  7. WebMast сообщил:

    Апрель 2nd, 2009 18:54

    Прочитайте правильно статью, и вы найдете «Пример не является полностью автоматизированным». Вообще я добавил цвет на блоки специально, можно обойтись без них... Если кто-то не понимает css, то эта статья не для него.

    Чтобы сделать блоки прозрачными, найдите класс «trans» и пропишите для него хаки на прозрачность.


  8. Ольга сообщил:

    Апрель 8th, 2009 21:34

    Мне пригодилось, только опять пробоемы, у меня код сложнее, картинки вообще не видно стало.


  9. WebMast сообщил:

    Апрель 9th, 2009 7:04

    Ольга, можешь написать на нашем форуме!


  10. Nik ADA сообщил:

    Июнь 25th, 2009 18:46

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


  11. WebMast сообщил:

    Июль 13th, 2009 8:12

    Nik ADA, пропиши:

    #fon img{min-height: {x} ;}


  12. Дмитрий сообщил:

    Октябрь 2nd, 2009 11:01

    Спасибо. Но нельзя ли в Вашем примере зафиксировать фон?


  13. WebMast сообщил:

    Октябрь 3rd, 2009 7:54

    Дмитрий, нет. Здесь мы ставим картинку, а не фон. Этот пример подходит для сайтов с маленьким контентом.


  14. Дмитрий сообщил:

    Октябрь 5th, 2009 10:13

    А для сайтов с большим контентом у вас случайно нет примера? Давно ищу решения задачи, что бы при прокрутки текста, фон был фиксированным, а при уменьшении окна, резиновым ?


  15. WebMast сообщил:

    Октябрь 5th, 2009 18:03

    Дмитрий, если чесно, то я не знаю... У background можно фиксировать фон...


  16. Дмитрий сообщил:

    Октябрь 6th, 2009 17:00

    background у меня фиксируется, но когда окно уменьшается всё сжимается, кроме фона. Если что то попадётся, буду весьма признателен.


  17. Кирилл сообщил:

    Октябрь 7th, 2009 21:05

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


  18. WebMast сообщил:

    Октябрь 8th, 2009 9:30

    Кирилл, в смысле, как белый оступ... Поубирай где не нужно margin и padding.


  19. TIM21 сообщил:

    Октябрь 9th, 2009 19:10

    А можно на вашем сайте обсудить эту статью более подробно и задать вопросу НУБОВСКИЕ по постройке страницы?!


  20. WebMast сообщил:

    Октябрь 9th, 2009 20:21

    TIM21, напиши мне на icq. Номер найдешь на странице контактов...


  21. 2k сообщил:

    Ноябрь 20th, 2009 18:47

    а есть хак под ie 6 для этого?


  22. WebMast сообщил:

    Ноябрь 20th, 2009 18:56

    Что именно не работает на ИЕ6?


  23. 2k сообщил:

    Ноябрь 22nd, 2009 13:34

    вымещает весь контент собой, ниже.


  24. 2k сообщил:

    Ноябрь 22nd, 2009 13:35

    div id=fon фоновая картинка, а в остальных броузерах всё нормально


  25. WebMast сообщил:

    Ноябрь 23rd, 2009 19:08

    А скриншот посмотреть можно?


  26. pioner сообщил:

    Февраль 20th, 2010 2:34

    а можно ли вместо полупрозорых колонок белого цвета сделать полупрозорую картинку?


  27. WebMast сообщил:

    Февраль 20th, 2010 8:53

    pioner, конечно. В блок sid или note вставьте картинку и в стилях пропишите ей прозрачность.


Оставить комментарий

Я не робот!