Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Вёрстка веб-сайтов > Ох уж эти слои !!!


Автор: Black 1.6.2005, 02:40
Значит задача элементарная на первый взгляд.
Есть три слоя. Хочется сделать вот такую структуру (см. прикрепленный рисунок):

Первый слой (под цифрой 1) и третий (под цифрой три)
имеют фиксированный размер, пусть будет 300px.

Предположим, что имеем экран размером: 1024x768
Рабочая область окна: 1024px - 24px = 1000 px (24 пикселя уходит на полосу прокрутки браузера)

Вопрос: как растянуть второй слой (под цифрой два) до 400px
(1000px - (300px * 2)) = 400px

Ответ: указать ему 400 px. Хорошо, а если у пользователя другое разрешение экрана...
Как тогда поступить??? Причем полоса прокрутки браузера в разных браузерах разная (т.е. занимает разное кол-во px).

А вот если использовать JavaScript, то можно определить рабочую область экрана, но она всегда указывается не считая размера полосы прокрутки. Т.е. нам будет вернуто 1024px.
Поэтому трудно будет высчитать нужные размеры второго слоя. Да и если пользователь выключит JavaScript, что тогда???

Хотелось бы найти способ, который бы заставил браузер пользователя растянуть второй слой на всю имеющуюся длину между
первый и третим слоями. При этом не использовать JavaScript.

Вот простой код странички:

Код

<html>
<head>
<style>

.left { border: black solid 1px; float:left; width: 300px; padding-right:10px; }
.center { border: black solid 1px; float: left; }
.right { border: black solid 1px; float:right; width: 300px; padding-left:10px;  }

</style>
</head>

<body>

<div class='left'>1 слой (здесь 300px)</div>
<div class='center'>2 слой (здесьб неизвестно сколько px, зависит от разрешения экрана пользователя)</div>
<div class='right'>3 слой (здесь тоже 300px)</div>

</body>
</html>



Может быть я чего-то не понимаю по работе со слоями, но уже целый день пытаюсь это сделать и не получается.
Вообщем хотелось бы такой стиль:

Код

.center { float: left; width:(100%-600px);


Жалко что такая запись ошибочна :-)

Если бы это были таблицы то все элементарно:

Код

<table width='100%'>
<tr>

<td width='300'> Тут 300px </td>
<td width='100%'> Хочу 100% - хочу и получу</td>
<td width='300'> Тут тоже 300px </td>

</tr>
</table>


Вообщем, я думаю вы поняли мою проблему. Расписал вроде бы подробно.
Надеюсь вместе нам получится найти решение.

smile

Автор: skalex 1.6.2005, 07:52
Почему не хотите использовать таблицы ?

Автор: Black 1.6.2005, 08:50
Mace
1) Слои технология будущего, хотелось бы ее изучить и уметь применять.

2) Да и вообще, как круто будет, если твой сайт сделан полностью на слоях !!!

3) Хочу придержаться рекомендаций W3C: контент страницы необходимо отделять от физического оформления. Таблицы не предназначены быть макетом для дизайна. Таблицы необходимы для вывода табличных данных.

Хотя никто и не запрещает использовать TABLE

Автор: skalex 1.6.2005, 08:57
К сожалению при верстке от слоев я пока не получаю той гибкости, которые могут дать таблицы. К тому же очень капризная вещь в плане кроссбраузерности. Естественно я не отговариваю Вас изучать и применять слои. Наверняка решение Вашей проблемы существует.

Автор: Cheba 1.6.2005, 10:03
http://www.stunicholls.myby.co.uk/layouts/3cols.html.
Не разберешся - поможем.

Автор: GoodBoy 1.6.2005, 17:16
Цитата(PHP @ 1.6.2005, 09:50)
1) Слои технология будущего, хотелось бы ее изучить и уметь применять.

2) Да и вообще, как круто будет, если твой сайт сделан полностью на слоях !!!

1 - бред!!!

2 - бред!!!

Автор: Black 1.6.2005, 22:39
GoodBoy
не бред :-)

Как говорит W3C - необходимо отделять контент страницы от таблиц, таблицы не для каркаса сайта, а для вывода табличных данных.
Сайт W3C - сделан на div'ах

А Cheba получает плюс.

Я сделал сайт на слоях и все работает, причем даже лучше чем на таблицах.

P.S: Каждое слово W3C имеет силу Божьей Заповеди !!!
Вы должны смотреть на всех, кто не использует XHTML, CSS и DIV, как на еретиков, которых надо сжечь на костре и чем раньше, тем лучше !!!

Слова не мои, а из одной статьи. Правда немного в другом контексте.

Автор: dm9 2.6.2005, 02:08
Цитата(Cheba @ 1.6.2005, 11:03)
Прекрасный пример.
Не разберешся - поможем.


Помоги...

Попробуй вставить в среднюю ячейку картинку пикселей на 400 в ширину и поизменяй размер окна (поуменьшай) в разных браузерах. Тот же глюк на hunter.vingrad.ru. Эх, не всё хорошо в этих слоях...

Автор: Black 2.6.2005, 12:48
dm9
да я уже разобрался.

Cheba хорошую ссылку дал. В закладки ее положил и на диск копию сохранил.

А hunter.vingrad.ru тоже хорошо сделан. У меня в FF 1.0.4 нормально отображается.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)