Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Вложенные списки. Как?  (Прочитано 18389 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« : 27-04-2007 07:44 » 

Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>  <head>    <title>List</title>  </head>
  <body>
    <ul>      <li>PAPA</li>      <li>VASYA</li>      <li>SILA</li>      <li>MATEMATIKA</li>    </ul>
  </body>
</html>
Код 100% валидный

Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head> <title>List</title></head>
<body>
  <ul>
      <li>PAPA</li>
     <li>VASYA</li>
     <li>SILA</li>
     <li>MATEMATIKA</li>
       <ul> <li>U4IT</li>      <li>GOD</li> </ul>
  </ul>
  </body>
</html>
Уже не валидный

Как сделать валидным?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 27-04-2007 07:49 » new

В продолжение...
т.е. нужно сделать вложенность ненумерованных списков
впрочем, вложенные <ol>, как нумерованые, тоже плохо влияют на валидность.

может плюнуть?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 27-04-2007 09:25 » 

Открываем закрываем теги ...
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head> <title>List</title></head>
<body>
  <ul>
      <li>PAPA</li>
     <li>VASYA</li>
     <li>SILA</li>
     <li>MATEMATIKA
          <ul> <li>U4IT</li>      <li>GOD</li> </ul>
    </li>
  </ul>
  </body>
</html>
получаем счастье
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 27-04-2007 09:29 » 

Это у меня скорее всего глючат домашние валидаторы Жаль
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 27-04-2007 11:47 » 

Sla, нет, просто внимательнее надо быть Ага В блоки <ul> и <ol> можно вкладывать только <li>. Точно также, как в table можно вложить только <tr> и набор из необязательных групировочных тегов типа tbody.

Есть такая штука - DTD - она указывается в DOCTYPE. У тебя указана сокращеная версия и прямой ссылки на dtd нет, но ты можешь зайти на сайт w3c и почитать его. Вот в dtd указывается, какие теги в какие можно вкладывать и в каком количестве, какие атрибуты допустимы и какие значения могут иметь. Валидатор проверяет именно по dtd.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 28-04-2007 08:48 » 

если смотреть http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
то вложеннsе списки разрешены
<!ELEMENT ul (li)+>
<!ELEMENT li %Flow;>
<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">

На самом деле виновата невнимательность и копи+паст (нефик на зеркало пенять, коли рожа крива)

Вложенный список формируется рекурсивно и закрытие тэга <li> было до вызова рекурсии
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 28-04-2007 09:20 » 

Sla, угу. Только с формулировкой не согласен: в список можно сложить только элемент списка (li), а уже в него можно вкладывать другие списки. Ошибки ведь возникают из-за невнимания к таким мелочам.

Кстати, ты давал примеры HTML 4.01 Transitional, а DTD приводишь для XHTML 1.0 Transitional. Эти диалекты имеют много различий!
« Последнее редактирование: 28-04-2007 09:22 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 28-04-2007 09:38 » 

да просто я схватил первый попавшийся доктайп и проверил http://validator.w3.org/ код
а потом опять копи+паст Улыбаюсь
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 28-04-2007 09:58 » 

Кстати, ты давал примеры HTML 4.01 Transitional, а DTD приводишь для XHTML 1.0 Transitional. Эти диалекты имеют много различий!

http://www.w3.org/TR/html4/loose.dtd

<!ELEMENT UL - - (LI)+                 -- unordered list -->
<!ELEMENT LI - O (%flow;)*             -- list item -->
<!ENTITY % flow "%block; | %inline;">
<!ENTITY % block
     "P | %heading; | %list; | %preformatted; | DL | DIV | CENTER |
      NOSCRIPT | NOFRAMES | BLOCKQUOTE | FORM | ISINDEX | HR |
      TABLE | FIELDSET | ADDRESS">
<!ENTITY % list "UL | OL |  DIR | MENU">

Вот чего не понял это
UL - -     два минуса
LI - O    минус О
те необязательность закрытия тега?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 28-04-2007 12:18 » 

Честно говря - хз. Подручные документы такого не описывают.
DTD, как я понимаю, является частью SGML и соотв. является стандартом ISO, а у них на сайте без бабок хрен чего скачаешь.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 28-04-2007 12:56 » 

все равно не понятно
если первый минус обязательный параметр, а второй необязательное закрытие
например,
http://www.w3.org/TR/html4/loose.dtd

<!ELEMENT HTML O O (%html.content;)
то надо понимать
<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- document head -->
тоже обязательное
как и <body>
но тогда
<!ELEMENT TBODY    O O (TR)+           -- table body -->
хотя нигде не встречал об обязательности этого тега в таблицах
но если смотреть DOM, то TBODY  присутствует, даже если самого тэга нет

Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 28-04-2007 15:09 » 

Sla, обязательный - это потому что "О"? Ага

Обязательный - Mandatory.
Необязательный - Optional.

Т.ч. если это то, о чем ты думаешь, то быстрее оно означает "необязательный".
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines