На простой вопрос, можно ли с помощью position:fixed; создать полноценную web-страницу - большинство продвинутых верстальщиков без особых раздумий, дадут отрицательный ответ. И будут правы.
Собственно о трудностях прямого использования position:fixed; писал не однократно, ничего не изменилось, и ждать в этом смысле каких либо подвижек не приходится, скорее всего, фиксация блоков на web-странице так и останется экзотикой.
Как иллюстрация выше сказанному пара примеров.
html-код не сложен, тоже самое относится к стилям описывающими его поведение.
<body> <div id="content"> <div class="content">…</div> </div> <div id="fixed"> <div class="content">…</div> </div> <div class="fixed_scroll"></div> <div class="fixed_scroll no"></div> </body> * {margin:0;padding:0;} html,body {background-color:#669;height:100%;} html {overflow:hidden;} #content,#fixed { background-color:#666;border:#ccc 1px solid; color:#fff;position:fixed;top:0;bottom:0;z-index:10; overflow:hidden;padding:10px 0; } #content {right:278px;min-width:600px;max-width:74%;} #fixed {right:30px;width:240px;} .fixed_scroll { background-color:#666;position:fixed;top:3px; right:279px;bottom:3px;z-index:100;width:20px; } .no {right:31px;} .content {overflow:auto;height:100%;} *html #content, *html #fixed, *html .fixed_scroll {position:absolute;height:100%;} *html #content {width:74%;} *html .fixed_scroll {padding-bottom:10px;}
Идеология разметки заключается в следующем:
О недостатках подтверждающих, что подобного рода разметка относится к классу экзотики:
В следующем примере центральная колонка разбита на две части. Ей же указана фиксированная ширина, что несколько улучшает ситуацию по контролю над шириной оной, взамен добавляя головную боль – чем заполнить пустоту в левой части рабочей области браузера, как при изменении разрешения экрана монитора, так и в случае если диагональ монитора зашкаливает.
Не смотря на очевидные достоинства – минимум html-кода и css, вывод напрашивается сам собой, разметка web-страницы на основе position:fixed; чистой воды экзотика и для этих целей надо смотреть в сторону position:absolute;.
Не большое усложнение разметки в данном случае, полностью устраняет все недостатки присущие position:fixed;.
Одна из последних публикаций на тему и практическая реализация в действии.
В большинстве случаев подобного рода изыск нужен только для того, чтобы при отключенной графике на ее месте появлялся текст.
В основном это касается шапки сайта.
Ситуация выглядит следующим образом:
<body>
<div id="header">
<h1>
<a href="путь к главной сайта">Имя сайта</a>
<span onclick="location.href='путь к главной сайта'"></span>
</h1>
</div>
#header {
background:url(header.jpg) no-repeat;position:relative;
}
#header h1 {position:absolute;top:XXpx;left:XXpx;}
#header h1 a {font:bold XXpx Georgia;}
#header h1 span {
background:url(logo.png) no-repeat;
position:absolute;top:XXpx;left:XXpx;
}
Данный код лишь частный случай, все справедливо, если только logo.png имеет цвет подложки, совпадающий с header.jpg или в отсутствии header.jpg с его фоновой заливкой.
Скриншоты:
Нижний скриншот наглядно показывает проблему, если бы графический текст был бы выполнен на прозрачной подложке.
Возможно, решение существует и оно намного проще моего, но то, что удалось сделать за пару минут, полностью меня устроило и искать, что-либо не было необходимости.
Чип и Дейл, а вернее абсолютное позиционирование спешит на помощь.
<body>
<a class="title_site" href="путь к главной сайта">Имя сайта</a>
<div id="header">
<h1 onclick="location.href='путь к главной сайта'"></h1>
</div>
#header {
background:url(header.jpg) no-repeat;position:relative;
}
#header h1 {
background:url(logo.png) no-repeat;
position:absolute;top:XXpx;left:XXpx;
}
a.title_site {
font:bold XXpx Georgia;position:absolute;
top:XXpx;left:XXpx;
}
Для стилей в первом и во втором случае ряд параметров не указан, в частности это высота и ширина для logo.png и цвет фоновой заливки header’a.
Сильно сказано или нет судить трудно. Все познается в сравнении, но речь собственно не только об этом.
Очередной пост Мастера всколыхнул прошлое.
Хоть и давно дело было чувство не до умения осталось.
Вот так просто без внятного объяснения причин можно поступать, наверное, только в Раша.
Не будем злобствовать по поводу, нет и смысла искать кто прав кто виноват в создавшейся ситуации. В случаях, когда от тебя ничего не зависит, лучше всего поискать более радикальное решение.
В комментариях высказался на тему для тех, кто хочет полностью отказаться от контекстной рекламы, в пользу пересмотра визуального представления своих ресурсов.
Мастер Lasto поставил ряд вопросов ответ, на которые строго индивидуален для любого web-мастера.
Со своей стороны предлагаю давно пропагандируемую мной идею использования фиксированных блоков-колонок на web-странице.
Рациональное размещение многих элементов web-страницы – навигации в первую очередь, позволяет максимально приблизить доступ ко всем разделам ресурса.
Не буду вдаваться в технические тонкости предлагаемой разметки страницы.
Варианты можно посмотреть здесь в секции меню "Примеры разметки".
Дополнительная фишка - решение проблемы переполнения фиксированной колонки информацией, в этом случае ее можно прокручивать по вертикали.
Горизонтальный banner counters.php - width:494px;
| февраль, 2012 | ||||||
| пн | вт | ср | чт | пт | сб | вс |
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | ||||