Заголовок сообщения: Блоки расширяют страницу в бок Добавлено: 25 Август 2005, 14:33:36
Здравствуйте, опять-таки давно не появлялся, вот вопрос:
Допустим, я решил сделать сайт который мотается по горизонтали (не спрашивайте зачем, это пример).
теперь нужно сделать так, чтобы контентом разбитым в столбики расширялась страница по горизонтали.
Т.е. имеем неограниченное число столбиков, с переменной шириной (т.е. нестатичной) и так чтобы каждый новйы располагался справа от предыдущего.
На таблицах это сделать легко, таблица имеет свойство расширять страницу по горизонтали, если ни одна даже ширина не указана, только контетом в ячейках. Но с таким подходом мы теряем много плюшек с позиционированием, position:relative к ячейкам присваевается некорректно и прочее-прочее. Да и не стоит вопрос о таблицах.
На цсс, есть несколько вариантов, но все они ен подходят по разным причинам:
-вариант, блоки абсолютно позиционируются от левого края. Но нам нужно знать ширину каждого блока-колонки, вычислять ее и .., вообщем, куча ненужных расчетов.
-вариант с float:left не срабатывает, потому что блоки не влезающие по ширине будут переноситься на следующую строку.
-поставить html { overflow:hidden } а для body {width:6000px;} чтобы иметь возможность флоатить блоки неограниченно вправо, не срабатывает в некоторых браузерах, кое где не появлояется прокрутка и прочее.
было еще несколько идей, уже не помню, вообщем пришлось сверстат на таблицах, а этого делать я не люблю
У кого-нибудь есть идеи?
_________________ критиковать человека не имеет смыла, потому что критика заставляет его защищаться и, как правлио искать оправданий. критиковать человека опасно, так как критика наносит удар его гордости, задевает чувство собственной значитмости и обижает его. (Дейл Карнеги)
вайт спейс один раз пробовал, но помоему с ним были проблемы. ща еще потыкаюсь
_________________ критиковать человека не имеет смыла, потому что критика заставляет его защищаться и, как правлио искать оправданий. критиковать человека опасно, так как критика наносит удар его гордости, задевает чувство собственной значитмости и обижает его. (Дейл Карнеги)
Просто вайт-спейс не работает, как и прост инлайновые элементы.
Но вкупе получается как нужно.
Но, возникает куча новых проблем.
Вложенный блочный элемент в такой блок пихнуть невозможно (он его расширит до ширины auto).
_________________ критиковать человека не имеет смыла, потому что критика заставляет его защищаться и, как правлио искать оправданий. критиковать человека опасно, так как критика наносит удар его гордости, задевает чувство собственной значитмости и обижает его. (Дейл Карнеги)
Последний раз редактировалось Inviz 25 Август 2005, 15:29:59, всего редактировалось 1 раз.
да да, я так и сделал, постваил к body вайтспейсинг. Пост выше обновил. т.е. инлайновое решение не дает гибкости
_________________ критиковать человека не имеет смыла, потому что критика заставляет его защищаться и, как правлио искать оправданий. критиковать человека опасно, так как критика наносит удар его гордости, задевает чувство собственной значитмости и обижает его. (Дейл Карнеги)
afair, у Кирсанова и Алексея Андреева внутренние страницы выполнены с горизонтальным скроллом. Но, надо смотреть, какой там код. Может, и таблицы. Которые могут быть лучшим, в данном варианте, выходом...
tentoys, таблицы, таблицы. Ещё журнал "Салон" можно вспомнить, не знаю как сейчас у них. Но на самом деле вопрос чисто теоретический, бо горизонтальный скролл это выкидыш. Если б предлагать это как некий ход году в 1995-м - тогда можно было б рассуждать. Сейчас это бессмыслено, ни один пользователь не станет искать горизонтально расположеный контент.
_________________ критиковать человека не имеет смыла, потому что критика заставляет его защищаться и, как правлио искать оправданий. критиковать человека опасно, так как критика наносит удар его гордости, задевает чувство собственной значитмости и обижает его. (Дейл Карнеги)
Inviz, вот видишь! А спрашивал! Я не понял, а зачем первый вариант? Он как не работал, так и не работает. А со вторым всё естественно, нельзя чередовать блок с инлайном.
<html> <body> <div style="white-space:nowrap;display:inline;overflow:scroll;"> …. а вот тут размещаем вcе остальные дивы … <div> </body> </html>
Т.е. не работает.
Еще задачка, которая меня мучает долго долго.
Нужно чтобы ширина дива стремилась к нулю, но нуля достичь ей мешал бы контент. Как у инлайнового элемента, то есть. Но иметь все свойста блоков при этом. без использования float и прочих извращителей потока. Тогда и эту искомую задачу можно решить будет.
_________________ критиковать человека не имеет смыла, потому что критика заставляет его защищаться и, как правлио искать оправданий. критиковать человека опасно, так как критика наносит удар его гордости, задевает чувство собственной значитмости и обижает его. (Дейл Карнеги)
Inviz, нифига не понял! Задачу ещё раз подробнее плз! Ширина это контент + отступы (padding) + границы (border) + поля (magin) Что должно стремиться к нулю?
чтобы ширина блока была равна ширине цифры 1 или количеству контента внутри
_________________ критиковать человека не имеет смыла, потому что критика заставляет его защищаться и, как правлио искать оправданий. критиковать человека опасно, так как критика наносит удар его гордости, задевает чувство собственной значитмости и обижает его. (Дейл Карнеги)
Inviz, тоже мне, бином Ньютона! Контейнеру ставишь width: 0% и всё работает. Теперь засады: фон будет отображаться только в ИЕ. Теперь засовываем в контейнер span и даём фон ему - теперь работает в мозиллах, но не работает в Опере. Итого: Опера ближе всего к стандартам и нех их нарушать!
Акела, а почему не работает в Опере -- где тут нарушение: в том, что у спана, инлайнового элемента, прописан фон? Чего-то не въезжаю, может, переработал...
с извращениями-то поддерживает. А это не совсем вариант, когда не в полной мере правильно работает блок.
Вариант с width и maxwidth можно сделать, но в ие он не будет стремиться к нулю.
_________________ критиковать человека не имеет смыла, потому что критика заставляет его защищаться и, как правлио искать оправданий. критиковать человека опасно, так как критика наносит удар его гордости, задевает чувство собственной значитмости и обижает его. (Дейл Карнеги)
Последний раз редактировалось Inviz 25 Август 2005, 17:58:43, всего редактировалось 1 раз.
tentoys,
по ссылке - фиксированное решение. Т.е. ширина уже известа и количество.
_________________ критиковать человека не имеет смыла, потому что критика заставляет его защищаться и, как правлио искать оправданий. критиковать человека опасно, так как критика наносит удар его гордости, задевает чувство собственной значитмости и обижает его. (Дейл Карнеги)
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.