Уменьшаю окно ,заголовок страницы уходит влево

Обсуждение вопросов клиентского программирования.

Модератор: Duncon

Hastalavista
Сообщения: 6
Зарегистрирован: 02 сен 2007, 14:45

У меня , как на любой нормальной веб-странице присутствует заголовок. :p
Для которого я применил фон. Фон заголовка заполняет полоской определенной толщины всю верхушку от левого до правого края страницы в броузере (на этом этапе всё нормально) .

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


Что посоветуете, если хочется, чтобы фон заголовка страницы занимал всю верхушку страницы, независимо от того развернуто окно во весь экран или уменьшено в размере?

Фон применил через background-color в файле css.
Указал ширину width:100%.
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Че-то не понятно ничего, показал бы наглядно.
Аватара пользователя
__Yuri__
Сообщения: 140
Зарегистрирован: 02 ноя 2006, 17:17
Контактная информация:

Логично, Вы же задали ширину заголовка 100% от окна.

В общем случае для осуществления Вашей задумки нужны познания в верстке с исползованием "резинового дизайна": самое простое использовать таблицы, дальше больше: JavaScript c отслеживанием событий window.onresize или window.onscroll, что в свою очередь потянет головняки с написанием отдельного кода под IE, FF, Opera, Safari и т.д., а также выскакиванием жизнерадостных сообщений IE, что страница содержит опасный код.

Вот проверенный на IE и FF вариант (хотя подозреваю, что есть решения изящней через "подстановки" width="&{..." и style="width:expression(document.body.scrollLeft... или типа того, но все это изящество, как правило, в ущерб универсальности, только голову забивать ненужными фактами):


<html>
<head>
<title></title>
</head>
<body style="margin:0px" onresize="document.getElementById('ddd').style.width=document.body.scrollLeft + document.body.clientWidth" onscroll="document.getElementById('ddd').style.width=document.body.scrollLeft + document.body.clientWidth">
<h1 id="ddd" style="background-color:green; width:100%"> резиновый </h1>
<h1 style="background-color:red; width:100%"> 100% </h1>
<table style="background-color:yellow; width: 1200px;">
<tr><td>слева</td><td align="right">справа</td></tr>
</table>
</body>
</html>
</html>
Hastalavista
Сообщения: 6
Зарегистрирован: 02 сен 2007, 14:45

Пожалуйста, показываю
http://www.hastalavista.jino-net.ru/

можно видеть что при уменьшении размеров окна ( нажать значок "свернуть в окно" )
появляется полоса прокрутки и если попробовать прокрутить сразу виден "эфект": на месте зелёной строки появляется пустое место ( белый цвет) :)
Аватара пользователя
__Yuri__
Сообщения: 140
Зарегистрирован: 02 ноя 2006, 17:17
Контактная информация:

почему-то в слово width пробелы вставились: wid th - это косяк движка форума, я не при делах
Hastalavista
Сообщения: 6
Зарегистрирован: 02 сен 2007, 14:45

__Yuri__, Так как Вы показали не проходит .
Во первых, я не хочу использовать таблицы. Вся структура сайта будет описана в CSS.
Во вторых:
Вот эта Ваша строчка <table style="background-color:yellow; width: 1200px;">
в ней указана ширина фиксированная в пикселях, а нужна "плавающая",чтобы содержимое было такого же размера как размер окна и при любых разрешениях экрана. Я на своём сайте вроде-бы указал плавающую ширину: width: 100% .
Но это работает при любых разрешениях если только не менять размер окна (браузера )


http://www.hastalavista.jino-net.ru/
Hastalavista
Сообщения: 6
Зарегистрирован: 02 сен 2007, 14:45

__Yuri__ , всё получилось.
Сейчас буду разбираться что значат термины:
onresize
onscroll
+ document.body.clientWidth :confused:
Аватара пользователя
__Yuri__
Сообщения: 140
Зарегистрирован: 02 ноя 2006, 17:17
Контактная информация:

Таблица с фиксированной шириной приведена для эмуляции ситуёвины с полосой прокрутки: делаете окно меньше 1200px - появляется полоса прокрутки снизу, двигаете ее вправо, при этом заголовок "100%" обрывается, а заголовок "резиновый дизайн" продолжается.

З.ы. Ваще, использование горизонтальной прокрутки - дурной тон.
Аватара пользователя
__Yuri__
Сообщения: 140
Зарегистрирован: 02 ноя 2006, 17:17
Контактная информация:

Hastalavista писал(а):__Yuri__ , всё получилось.
Сейчас буду разбираться что значат термины:
onresize
onscroll
+ document.body.clientWidth :confused:
onresize и onscroll - это события, которые генерятся браузером при изменении пользователем размера окна и прокручивании содержимого окна, соответственно.
на них нужно повесить обработчики этих событий - в данном случае это одна и та же строчка на JavaScript.
clientWidth - это ширина клиентской части окна, т.е. без бордюров и возможных панелей быстрого запуска.
Hastalavista
Сообщения: 6
Зарегистрирован: 02 сен 2007, 14:45

Получается, что если у человека отключен javascript , то у него это не сработает.
Не знаете ли Вы, как обойтись без JScript? :)
И еще. Этот метод работает только в IE. В FFox и Опере не worked.
Ответить