Автор Тема: Проблема с представлением "дерева" (вложенные списки и т.п.)  (Прочитано 5916 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Вроде простейшая задачка, но никак не могу корректно решить. Есть дерево (каталог и т.п.), которое отображается примерно следующим образом ("-" - пробелы; "#" - маркер):

# Заголовок 1 (уровень 1)
--# Подзаголовок 2 (уровень 2)
----# Подзаголовок 3 (уровень 3)
------# Подзаголовок 4 (уровень 4)
------# Подзаголовок 5 (уровень 4)
------# Подзаголовок 6 с о-о-о-о-о-очень
длинным названием (уровень 4)
------# Подзаголовок 7 (уровень 4)
------# Подзаголовок 8 (уровень 4)

Вместо пробелов может быть gif-распорка определенной ширины или что-то еще - не принципиально. Все это запихивается в относительно узкий столбец таблицы и возникает проблема с длинными названиями. Хотелось бы так:

# Заголовок 1 (уровень 1)
--# Подзаголовок 2 (уровень 2)
----# Подзаголовок 3 (уровень 3)
------# Подзаголовок 4 (уровень 4)
------# Подзаголовок 5 (уровень 4)
------# Подзаголовок 6 с о-о-о-о-о-очень
------- длинным названием (уровень 4)
------# Подзаголовок 7 (уровень 4)
------# Подзаголовок 8 (уровень 4)

Все, что сейчас приходит в голову, либо отказывается работать в Netscape, либо подразумевает неоправданно сложный (или несовсем корректный) алгоритм...

Если использовать вложенные списки (что кажется логичным), то проблемы такие: нужен нулевой отступ слева, вместо стандартного маркера нужен (желательно) определенный символ и, наконец, в Netscape должно работать.

Если использовать таблицы, то Netscape, как положено, плевать хотел на "нежелательный" (по спецификации) атрибут "width".

Вроде должно быть какое-то простое решение. Может, кто подскажет?
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Цитировать
Если использовать таблицы

Не надо этого делать

    1
  • 1.0.1
      1.2
    • 1.2.1
    • 1.2.2
        1.2.0.1
      • 1.2.1.1

    • 1.2.3

  • 1.3


Типа того
AS IS...

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
ThE0ReTiC
Не получается в Netscape управлять размером отступа слева - нужно намного компактнее, чем стандартные списки (см. выше проблемы со списками).
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн MadDog

  • Главный Металликолог
  • Ветеран
  • *****
  • Сообщений: 679
  • +0/-0
  • 2
    • Просмотр профиля
Согласен с  ThE0ReTiC, что в данном случае глупо использовать таблицы.

YA
А разве через стили сложно задать необходимый отступ слева и даже расстояние между строк?
So let it be written
So let it be done I\'m creeping death

Оффлайн USE

  • Любитель
  • Ветеран
  • *****
  • Сообщений: 720
  • +0/-0
  • 2
    • Просмотр профиля
Цитировать
Не получается в Netscape управлять размером отступа слева - нужно намного компактнее, чем стандартные списки (см. выше проблемы со списками)

есть такая штука CSS называется. при помощи свойств margin-left, margin-top, margin-bottom можно установить именно те расстояния которые тебе нужны. или же line-height... много способов, даже неправильных :)
Не ходите, дети, без «Мозиллы» дальше localhost!

Оффлайн Metaller

  • Мелкое злобное существо
  • Ветеран
  • *****
  • Сообщений: 538
  • +0/-0
  • 2
    • Просмотр профиля
    • http://michael.pp.ru
Цитировать
margin-left, margin-top, margin-bottom

ТОлько приходится для каждого броузера свой стиль прописывать. НН хоть и понимает эти стили для списков, но отображает их на редкость криво....  насчет оперы не знаю, честно говоря....  
Если код генерится скриптом, я бы делал с помощью таблиц.
Everybody\'s Got A Ticket To Ride Except For Me And My Lightning...

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Цитировать
есть такая штука CSS называется
[OFF]Правда, что ли?[/OFF]

Я уже два раза написал, что не получается изменить отступ в Netscape. Если вложенные списки, то в том и вопрос, что дописать:








Конкретным опытом кто-нибудь может поделиться?
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн Metaller

  • Мелкое злобное существо
  • Ветеран
  • *****
  • Сообщений: 538
  • +0/-0
  • 2
    • Просмотр профиля
    • http://michael.pp.ru
у меня работает
    но работает, мягко скажем, непредсказуемо и глючно....
Everybody\'s Got A Ticket To Ride Except For Me And My Lightning...

Оффлайн USE

  • Любитель
  • Ветеран
  • *****
  • Сообщений: 720
  • +0/-0
  • 2
    • Просмотр профиля
Metaller
Цитировать
Если код генерится скриптом, я бы делал с помощью таблиц.

кривовато немного. они для этого не предназначены. я сам понимаю, пробовал работать с этими свойствами, правда намучался с разными броузерами в том числе и с IE. в конце концов, надо писать не под броузеры, а под стандарты имхо. мозилла - пример тому.

YA
Цитировать
Правда, что ли?

[OFF]не стоит это так воспринимать, не в обиду было сказано. сорри, если это нанесло тебе такой удар...[/OFF]
Цитировать
Конкретным опытом кто-нибудь может поделиться?

как заломать нетскейп, сорри не подскажу, потому что забыл что такой броузер есть :)
Не ходите, дети, без «Мозиллы» дальше localhost!

Оффлайн USE

  • Любитель
  • Ветеран
  • *****
  • Сообщений: 720
  • +0/-0
  • 2
    • Просмотр профиля
Цитировать
у меня работает
    но работает, мягко скажем, непредсказуемо и глючно

почему ты не проставляешь единицы измерения? пикселы, пункты и тп.
Не ходите, дети, без «Мозиллы» дальше localhost!

Оффлайн Metaller

  • Мелкое злобное существо
  • Ветеран
  • *****
  • Сообщений: 538
  • +0/-0
  • 2
    • Просмотр профиля
    • http://michael.pp.ru
Цитировать
надо писать не под броузеры, а под стандарты

Люди-то пользуются не стандартами, а браузерами, к сожалению... :)

Цитировать
они для этого не предназначены

Изначально, таблицы, вообще для верстки не предназначались, а оказалось, что удобно....
Everybody\'s Got A Ticket To Ride Except For Me And My Lightning...

Оффлайн Metaller

  • Мелкое злобное существо
  • Ветеран
  • *****
  • Сообщений: 538
  • +0/-0
  • 2
    • Просмотр профиля
    • http://michael.pp.ru
Цитировать
почему ты не проставляешь единицы измерения? пикселы, пункты и тп.

Я проставляю. Просто тут забыл. :)
Everybody\'s Got A Ticket To Ride Except For Me And My Lightning...

Оффлайн USE

  • Любитель
  • Ветеран
  • *****
  • Сообщений: 720
  • +0/-0
  • 2
    • Просмотр профиля
Цитировать
Люди-то пользуются не стандартами, а браузерами, к сожалению

не могу противоречить :) вот если бы пользовались нормальными - тогда было бы проще на много.
Цитировать
Изначально, таблицы, вообще для верстки не предназначались, а оказалось, что удобно

вот некоторое время назад я попробовал пользоваться div\'ами - очень удобно, даже можно сказать удобнее в несколько раз. код компактнее и читабельнее получается. правда при использовании дивов можно наткнуться тоже на некоторые подводные камни, разбросанные теми же изготовителями броузеров, в частности IE.
Не ходите, дети, без «Мозиллы» дальше localhost!

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
Есть хак, чтобы писать под НН отдельные стили:
http://richinstyle.com/masterclass/crossbrowser.html
Но я, честно говоря, забил бы на НН вовсе. Или затребовал за совместимость с ним совсем отдельных денег  ;) $)
•••Jah\'d never let us down!•••

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
А если каждый пункт писать в отдельную таблицу в два столбца - не получится то, что надо?
TANSTAAFL

 

Sitemap 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